Example usage for org.eclipse.jgit.lib Repository Repository

List of usage examples for org.eclipse.jgit.lib Repository Repository

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Repository Repository.

Prototype

protected Repository(BaseRepositoryBuilder options) 

Source Link

Document

Initialize a new repository instance.

Usage

From source file:com.smartitengineering.version.impl.jgit.JGitImpl.java

License:Open Source License

public void init() throws IOException {
    if (initialized) {
        throw new IllegalStateException("Impl already initialized");
    }//w w  w  .  j  ava 2  s . com
    if (StringUtils.isBlank(getReadRepositoryLocation()) || StringUtils.isBlank(getWriteRepositoryLocation())) {
        throw new IllegalStateException("Repository location not set!");
    }
    File writeRepoDir = new File(getWriteRepositoryLocation());
    writeRepository = new Repository(writeRepoDir);
    if (!writeRepoDir.exists()) {
        writeRepository.create();
    }
    writeRepository.close();
    File readRepoDir = new File(getReadRepositoryLocation());
    readRepository = new Repository(readRepoDir);
    if (!readRepoDir.exists()) {
        readRepository.create();
    }
    readRepository.close();
    executorService = Executors.newFixedThreadPool(getConfig().getConcurrentWriteOperations());
    initialized = true;
}

From source file:com.smartitengineering.version.impl.jgit.JGitImpl.java

License:Open Source License

protected synchronized void reInitReadRepository() throws IOException {
    readRepository.close();//from   ww  w . java 2s  . c  o m
    readRepository = new Repository(new File(getReadRepositoryLocation()));
}

From source file:com.sonatype.sshjgit.core.gitcommand.AbstractGitCommand.java

License:Apache License

@Override
protected final void run(String[] args) throws IOException, Failure {
    String projectName = parseCommandLine(args);
    if (projectName.endsWith(".git")) {
        // Be nice and drop the trailing ".git" suffix, which we never keep
        // in our database, but clients might mistakenly provide anyway.
        ////from ww w  .j  ava  2  s .c o m
        projectName = projectName.substring(0, projectName.length() - 4);
    }
    if (projectName.startsWith("/")) {
        // Be nice and drop the leading "/" if supplied by an absolute path.
        // We don't have a file system hierarchy, just a flat namespace in
        // the database's Project entities. We never encode these with a
        // leading '/' but users might accidentally include them in Git URLs.
        //
        projectName = projectName.substring(1);
    }
    if (!projectName.matches(VALID_PROJECTNAME_REGEX)) {
        // Disallow dangerous project names which for example attempt to
        // traverse directories backwards with ../../
        // Unicode attacks is another example of things we filter out.
        // Only way to safely avoid all these (and future) attacks, are
        // by only allowing a known safe set of names.  
        throw new Failure(2, "Disallowed project name. Valid project "
                + "names are for example 'project1', 'subdir/project2' and " + "'subdir/subsubdir/project3'.");
    }

    // TODO: Should we have a locking mechanism, so no two clients can work with the same repo at the same time? Is it handled by JGit internally already?
    repo = new Repository(new File(projectName));
    final RepositoryConfig repositoryConfig = repo.getConfig();
    if (!repositoryConfig.getFile().exists()) {
        // TODO: Check so any of the parent directories in the path leading up to this location, doesn't already contain a repo.
        SecurityUtils.getSubject().checkPermission("gitrepo:new:" + getRepoNameAsPermissionParts(repo));
        repo.create();
    }

    try {
        runImpl();
    } finally {
        repo.close();
    }
}

From source file:org.eclipse.egit.core.synchronize.GitSyncInfoTest.java

License:Open Source License

@Before
public void setUp() throws Exception {
    super.setUp();
    IProject iProject = project.project;
    if (!gitDir.exists())
        new Repository(gitDir).create();

    new ConnectProviderOperation(iProject, gitDir).execute(null);
    repo = RepositoryMapping.getMapping(iProject).getRepository();

    GitSynchronizeData data = new GitSynchronizeData(repo, "", "", true);
    GitSynchronizeDataSet dataSet = new GitSynchronizeDataSet(data);
    comparator = new GitResourceVariantComparator(dataSet, null);
}

From source file:org.eclipse.egit.core.test.internal.mapping.T0002_HistoryTest.java

License:Open Source License

@Before
public void setUp() throws Exception {
    super.setUp();

    project.createSourceFolder();/*w w w  . j  a  va2  s. c  om*/
    gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(),
            Constants.DOT_GIT);
    thisGit = new Repository(gitDir);
    workDir = thisGit.getWorkDir();
    thisGit.create();
    objectWriter = new ObjectWriter(thisGit);

    tree = new Tree(thisGit);
    Tree projectTree = tree.addTree("Project-1");
    File project1_a_txt = createFile("Project-1/A.txt", "A.txt - first version\n");
    addFile(projectTree, project1_a_txt);
    projectTree.setId(objectWriter.writeTree(projectTree));
    File project1_b_txt = createFile("Project-1/B.txt", "B.txt - first version\n");
    addFile(projectTree, project1_b_txt);
    projectTree.setId(objectWriter.writeTree(projectTree));
    tree.setId(objectWriter.writeTree(tree));
    Commit commit = new Commit(thisGit);
    commit.setAuthor(new PersonIdent(jauthor, new Date(0L), TimeZone.getTimeZone("GMT+1")));
    commit.setCommitter(new PersonIdent(jcommitter, new Date(0L), TimeZone.getTimeZone("GMT+1")));
    commit.setMessage("Foo\n\nMessage");
    commit.setTree(tree);
    ObjectId commitId = objectWriter.writeCommit(commit);

    tree = new Tree(thisGit);
    projectTree = tree.addTree("Project-1");
    addFile(projectTree, project1_a_txt);

    File project1_b_v2_txt = createFile("Project-1/B.txt", "B.txt - second version\n");
    addFile(projectTree, project1_b_v2_txt);
    projectTree.setId(objectWriter.writeTree(projectTree));
    tree.setId(objectWriter.writeTree(tree));
    commit = new Commit(thisGit);
    commit.setAuthor(new PersonIdent(jauthor, new Date(0L), TimeZone.getTimeZone("GMT+1")));
    commit.setCommitter(new PersonIdent(jcommitter, new Date(0L), TimeZone.getTimeZone("GMT+1")));
    commit.setMessage("Modified");
    commit.setParentIds(new ObjectId[] { commitId });
    commit.setTree(tree);
    commitId = objectWriter.writeCommit(commit);

    RefUpdate lck = thisGit.updateRef("refs/heads/master");
    assertNotNull("obtained lock", lck);
    lck.setNewObjectId(commitId);
    assertEquals(RefUpdate.Result.NEW, lck.forceUpdate());

    ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir);
    operation.execute(null);
}

From source file:org.eclipse.egit.core.test.op.T0001_ConnectProviderOperationTest.java

License:Open Source License

@Test
public void testNewRepository() throws CoreException, IOException {

    File gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(),
            Constants.DOT_GIT);/*ww w.j  a  v a  2 s. c o m*/
    Repository repository = new Repository(gitDir);
    repository.create();
    repository.close();
    ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir);
    operation.execute(null);

    assertTrue(RepositoryProvider.isShared(project.getProject()));

    assertTrue(gitDir.exists());
}

From source file:org.eclipse.egit.core.test.op.T0001_ConnectProviderOperationTest.java

License:Open Source License

@Test
public void testNewUnsharedFile() throws CoreException, IOException, InterruptedException {

    project.createSourceFolder();/*w ww  .j a  va 2s  .  com*/
    IFile fileA = project.getProject().getFolder("src").getFile("A.java");
    String srcA = "class A {\n" + "}\n";
    fileA.create(new ByteArrayInputStream(srcA.getBytes()), false, null);

    File gitDir = new File(project.getProject().getWorkspace().getRoot().getRawLocation().toFile(),
            Constants.DOT_GIT);
    Repository thisGit = new Repository(gitDir);
    thisGit.create();
    Tree rootTree = new Tree(thisGit);
    Tree prjTree = rootTree.addTree(project.getProject().getName());
    Tree srcTree = prjTree.addTree("src");
    FileTreeEntry entryA = srcTree.addFile("A.java");
    ObjectWriter writer = new ObjectWriter(thisGit);
    entryA.setId(writer.writeBlob(fileA.getRawLocation().toFile()));
    srcTree.setId(writer.writeTree(srcTree));
    prjTree.setId(writer.writeTree(prjTree));
    rootTree.setId(writer.writeTree(rootTree));
    Commit commit = new Commit(thisGit);
    commit.setTree(rootTree);
    commit.setAuthor(new PersonIdent("J. Git", "j.git@egit.org", new Date(60876075600000L),
            TimeZone.getTimeZone("GMT+1")));
    commit.setCommitter(commit.getAuthor());
    commit.setMessage("testNewUnsharedFile\n\nJunit tests\n");
    ObjectId id = writer.writeCommit(commit);
    RefUpdate lck = thisGit.updateRef("refs/heads/master");
    assertNotNull("obtained lock", lck);
    lck.setNewObjectId(id);
    assertEquals(RefUpdate.Result.NEW, lck.forceUpdate());

    ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir);
    operation.execute(null);

    final boolean f[] = new boolean[1];
    new Job("wait") {
        protected IStatus run(IProgressMonitor monitor) {

            System.out.println("MyJob");
            f[0] = true;
            return null;
        }

        {
            setRule(project.getProject());
            schedule();
        }
    };
    while (!f[0]) {
        System.out.println("Waiting");
        Thread.sleep(1000);
    }
    System.out.println("DONE");

    assertNotNull(RepositoryProvider.getProvider(project.getProject()));

}

From source file:org.eclipse.egit.core.test.T0003_AdaptableFileTreeIteratorTest.java

License:Open Source License

@Before
public void setUp() throws Exception {
    super.setUp();

    repository = new Repository(gitDir);
    repositoryRoot = repository.getWorkDir();
    repository.create();//from w ww. j  a v  a 2 s  .co m

    file = new File(project.getProject().getLocation().toFile(), "a.txt");
    final FileWriter fileWriter = new FileWriter(file);
    fileWriter.write("aaaaaaaaaaa");
    fileWriter.close();

    final ConnectProviderOperation operation = new ConnectProviderOperation(project.getProject(), gitDir);
    operation.execute(null);
}

From source file:org.nbgit.Git.java

License:Open Source License

public Repository getRepository(File root) {
    Repository repo = repos.get(root);//from   w  w w. j  ava2s .c o  m

    if (repo == null) {
        final File gitDir = new File(root, Constants.DOT_GIT);
        try {
            repo = new Repository(gitDir);
            repos.put(root, repo);
        } catch (IOException ex) {
        }
    }

    return repo;
}

From source file:org.nbgit.junit.RepositoryTestCase.java

License:Open Source License

@Override
protected void setUp() throws Exception {
    super.setUp();
    clearWorkDir();/* w  ww .  j a  va2s.co  m*/
    SystemReader.setInstance(new MockSystemReader(new File(gitDir, "userconfig")));
    dataDir = new File(dataRoot, getName());
    workDir = new File(getWorkDir(), "repo");
    gitDir = new File(workDir, ".git");
    repository = new Repository(gitDir);
    repository.create();
    loggerMessages = new ArrayList<String>();
    logger = MockOutputLogger.create(loggerMessages);
    time = TIME_INITIAL;

    copyRepositoryFiles("default", repository);
    repository.getConfig().load();
}