Example usage for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder

List of usage examples for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder

Introduction

In this page you can find the example usage for org.eclipse.jgit.storage.file FileRepositoryBuilder FileRepositoryBuilder.

Prototype

FileRepositoryBuilder

Source Link

Usage

From source file:org.commonjava.gitwrap.BareGitRepository.java

License:Open Source License

protected BareGitRepository(final File gitDir, final boolean create, final File workDir) throws IOException {
    this.gitDir = gitDir;
    this.workDir = workDir;

    final FileRepositoryBuilder builder = new FileRepositoryBuilder();
    builder.setGitDir(gitDir);//from w ww.j av  a 2 s.c om
    if (workDir != null) {
        builder.setWorkTree(workDir);
    }

    builder.setup();

    repository = new FileRepository(builder);

    if (create && !gitDir.exists()) {
        final File objectsDir = new File(gitDir, "objects");
        final File refsDir = new File(gitDir, "refs");

        refsDir.mkdirs();
        objectsDir.mkdirs();

        repository.create(workDir == null);
        final FileBasedConfig config = repository.getConfig();

        config.setInt("core", null, "repositoryformatversion", 0);
        config.setBoolean("core", null, "filemode", true);
        config.setBoolean("core", null, "bare", workDir == null);
        config.setBoolean("core", null, "logallrefupdates", true);
        config.setBoolean("core", null, "ignorecase", true);

        config.save();
    }

    git = new Git(repository);
}

From source file:org.commonjava.gitwrap.BareGitRepositoryTest.java

License:Open Source License

@Test
public void cloneBare_NoBranch() throws IOException, GitWrapException, URISyntaxException {
    final File gitDir = new File(".git");
    if (gitDir.exists()) {
        final FileRepositoryBuilder builder = new FileRepositoryBuilder();
        builder.setGitDir(gitDir);//www. j ava 2  s.c  o m
        builder.setup();

        final FileRepository repository = new FileRepository(builder);
        final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin");

        testGitDir = File.createTempFile("git-clone.", ".git");
        testGitDir.delete();

        BareGitRepository.setProgressMonitor(new TextProgressMonitor());

        final BareGitRepository clone = BareGitRepository.cloneBare(config.getURIs().get(0).toString(),
                "origin", testGitDir);

        System.out.println(clone.getGitDir());

        System.out.println();

        final FetchResult fetchResult = clone.getLatestFetchResult();
        for (final Ref ref : fetchResult.getAdvertisedRefs()) {
            System.out.println(ref.getName());
        }

        System.out.println();

        for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) {
            System.out.println(update.getLocalName() + " -> " + update.getRemoteName());
        }
    }
}

From source file:org.commonjava.gitwrap.GitRepositoryTest.java

License:Open Source License

@Test
public void cloneNonBare_NoBranch() throws IOException, GitWrapException, URISyntaxException {
    final File gitDir = new File(".git");
    if (gitDir.exists()) {
        final FileRepositoryBuilder builder = new FileRepositoryBuilder();
        builder.setGitDir(gitDir);/* w  w w  .j  a  v  a 2 s .c  o m*/
        builder.setup();

        final FileRepository repository = new FileRepository(builder);
        final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin");

        final File workDir = File.createTempFile("git-clone", "");
        workDir.delete();

        final File newGitDir = new File(workDir, ".git");

        GitRepository.setProgressMonitor(new TextProgressMonitor());

        final GitRepository clone = GitRepository.cloneWithWorkdir(config.getURIs().get(0).toString(), "origin",
                newGitDir, false);

        System.out.println(clone.getGitDir());

        System.out.println();

        final FetchResult fetchResult = clone.getLatestFetchResult();
        for (final Ref ref : fetchResult.getAdvertisedRefs()) {
            System.out.println(ref.getName());
        }

        System.out.println();

        for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) {
            System.out.println(update.getLocalName() + " -> " + update.getRemoteName());
        }
    }
}

From source file:org.commonjava.gitwrap.GitRepositoryTest.java

License:Open Source License

@Test
public void cloneNonBare_BranchMasterToNakedRefname() throws IOException, GitWrapException, URISyntaxException {
    final File gitDir = new File(".git");
    if (gitDir.exists()) {
        final FileRepositoryBuilder builder = new FileRepositoryBuilder();
        builder.setGitDir(gitDir);/*  ww w. j  a v a2s.  co m*/
        builder.setup();

        final FileRepository repository = new FileRepository(builder);
        final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin");

        workDir = File.createTempFile("git-clone", "");
        workDir.delete();

        final File newGitDir = new File(workDir, ".git");

        GitRepository.setProgressMonitor(new TextProgressMonitor());

        final GitRepository clone = GitRepository.cloneWithWorkdir(config.getURIs().get(0).toString(), "origin",
                newGitDir, false);

        clone.createBranch(Constants.HEAD, "test-branch");

        System.out.println(clone.getGitDir());

        System.out.println();

        final FetchResult fetchResult = clone.getLatestFetchResult();
        for (final Ref ref : fetchResult.getAdvertisedRefs()) {
            System.out.println(ref.getName());
        }

        System.out.println();

        for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) {
            System.out.println(update.getLocalName() + " -> " + update.getRemoteName());
        }
    }
}

From source file:org.commonjava.indy.subsys.git.GitManager.java

License:Apache License

public GitManager(final GitConfig config) throws GitSubsystemException {
    this.config = config;
    rootDir = config.getContentDir();//ww w  . ja v a  2 s. c o  m
    final String cloneUrl = config.getCloneFrom();

    boolean checkUpdate = false;
    if (cloneUrl != null) {
        logger.info("Cloning: {} into: {}", cloneUrl, rootDir);
        if (rootDir.isDirectory()) {
            checkUpdate = true;
        } else {
            final boolean mkdirs = rootDir.mkdirs();
            logger.info("git dir {} (mkdir result: {}; is directory? {}) contains:\n  {}", rootDir, mkdirs,
                    rootDir.isDirectory(), join(rootDir.listFiles(), "\n  "));
            try {
                Git.cloneRepository().setURI(cloneUrl).setDirectory(rootDir).setRemote("origin").call();
            } catch (final GitAPIException e) {
                throw new GitSubsystemException("Failed to clone remote URL: {} into: {}. Reason: {}", e,
                        cloneUrl, rootDir, e.getMessage());
            }
        }
    }

    final File dotGitDir = new File(rootDir, ".git");

    logger.info("Setting up git manager for: {}", dotGitDir);
    try {
        repo = new FileRepositoryBuilder().readEnvironment().setGitDir(dotGitDir).build();
    } catch (final IOException e) {
        throw new GitSubsystemException("Failed to create Repository instance for: {}. Reason: {}", e,
                dotGitDir, e.getMessage());
    }

    String[] preExistingFromCreate = null;
    if (!dotGitDir.isDirectory()) {
        preExistingFromCreate = rootDir.list();

        try {
            repo.create();
        } catch (final IOException e) {
            throw new GitSubsystemException("Failed to create git repo: {}. Reason: {}", e, rootDir,
                    e.getMessage());
        }
    }

    String originUrl = repo.getConfig().getString("remote", "origin", "url");
    if (originUrl == null) {
        originUrl = cloneUrl;
        logger.info("Setting origin URL: {}", originUrl);

        repo.getConfig().setString("remote", "origin", "url", originUrl);

        repo.getConfig().setString("remote", "origin", "fetch", "+refs/heads/*:refs/remotes/origin/*");
    }

    String email = repo.getConfig().getString("user", null, "email");

    if (email == null) {
        email = config.getUserEmail();
    }

    if (email == null) {
        try {
            email = "indy@" + InetAddress.getLocalHost().getCanonicalHostName();

        } catch (final UnknownHostException e) {
            throw new GitSubsystemException("Failed to resolve 'localhost'. Reason: {}", e, e.getMessage());
        }
    }

    if (repo.getConfig().getString("user", null, "email") == null) {
        repo.getConfig().setString("user", null, "email", email);
    }

    this.email = email;

    git = new Git(repo);

    if (preExistingFromCreate != null && preExistingFromCreate.length > 0) {
        addPaths(new ChangeSummary(SYSTEM_USER, "Committing pre-existing files."), preExistingFromCreate);
        commit();
    }

    if (checkUpdate) {
        pullUpdates();
    }
}

From source file:org.craftercms.studio.impl.v1.deployment.EnvironmentStoreGitBranchDeployer.java

License:Open Source License

private Repository openGitRepository(Path repositoryPath) throws IOException {
    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    Repository repository = builder.setGitDir(repositoryPath.toFile()).readEnvironment().findGitDir().build();
    return repository;
}

From source file:org.craftercms.studio.impl.v1.repository.git.GitContentRepositoryHelper.java

License:Open Source License

/**
 * Opens a git repository//from ww w .j  a va 2 s  . c o m
 *
 * @param repositoryPath path to repository to open (including .git)
 * @return repository object if successful
 * @throws IOException
 */
public Repository openRepository(Path repositoryPath) throws IOException {
    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    Repository repository = builder.setGitDir(repositoryPath.toFile()).readEnvironment().findGitDir().build();
    return repository;
}

From source file:org.dstadler.jgit.helper.CookbookHelper.java

License:Apache License

public static Repository openJGitCookbookRepository() throws IOException {
    FileRepositoryBuilder builder = new FileRepositoryBuilder();
    return builder.readEnvironment() // scan environment GIT_* variables
            .findGitDir() // scan up the file system tree
            .build();/*  w ww  . j av a 2s.  c  o m*/
}

From source file:org.dstadler.jgit.unfinished.PushToRemoteRepository.java

License:Apache License

public static void main(String[] args) throws IOException, GitAPIException {
    // prepare a new folder for the cloned repository
    File localPath = File.createTempFile("TestGitRepository", "");
    if (!localPath.delete()) {
        throw new IOException("Could not delete temporary file " + localPath);
    }/*from   www.  ja v a  2 s  . c  om*/

    // then clone
    System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
    try (Git result = Git.cloneRepository().setURI(REMOTE_URL).setDirectory(localPath).call()) {
        // prepare a second folder for the 2nd clone
        File localPath2 = File.createTempFile("TestGitRepository", "");
        if (!localPath2.delete()) {
            throw new IOException("Could not delete temporary file " + localPath2);
        }

        // then clone again
        System.out.println("Cloning from file://" + localPath + " to " + localPath2);
        try (Git result2 = Git.cloneRepository().setURI("file://" + localPath).setDirectory(localPath2)
                .call()) {
            System.out.println("Result: " + result2);

            // now open the created repository
            FileRepositoryBuilder builder = new FileRepositoryBuilder();
            try (Repository repository = builder.setGitDir(localPath2).readEnvironment() // scan environment GIT_* variables
                    .findGitDir() // scan up the file system tree
                    .build()) {
                try (Git git = new Git(repository)) {
                    git.push().call();
                }

                System.out.println("Pushed from repository: " + repository.getDirectory()
                        + " to remote repository at " + REMOTE_URL);
            }
        }
    }
}

From source file:org.dstadler.jgit.unfinished.TrackMaster.java

License:Apache License

public static void main(String[] args) throws IOException, GitAPIException {
    // prepare a new folder for the cloned repository
    File localPath = File.createTempFile("TestGitRepository", "");
    if (!localPath.delete()) {
        throw new IOException("Could not delete temporary file " + localPath);
    }/*from   w  w  w  .  j  a  v a2s.c  o m*/

    // then clone
    System.out.println("Cloning from " + REMOTE_URL + " to " + localPath);
    try (Git result = Git.cloneRepository().setURI(REMOTE_URL).setDirectory(localPath).call()) {
        System.out.println("Result: " + result);

        // now open the created repository
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        try (Repository repository = builder.setGitDir(localPath).readEnvironment() // scan environment GIT_* variables
                .findGitDir() // scan up the file system tree
                .build()) {
            try (Git git = new Git(repository)) {
                git.branchCreate().setName("master")
                        // ?!? .setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM)
                        .setStartPoint("origin/master").setForce(true).call();
            }

            System.out.println("Now tracking master in repository at " + repository.getDirectory()
                    + " from origin/master at " + REMOTE_URL);
        }
    }
}