private static RevCommitsPair resolveRevCommitsPair(Repository repo) { RevCommitsPair revCommitIteratorPair; try (RevWalk revWalk = new RevWalk(repo); Git git = new Git(repo)) { final Iterator<RevCommit> first; final Iterator<RevCommit> second; final ObjectId headId = repo.resolve(Constants.HEAD); final RevCommit headCommit = revWalk.parseCommit(headId); if (isMergeCommit(headCommit)) { final RevCommit firstParent = headCommit.getParent(0); final RevCommit secondParent = headCommit.getParent(1); first = git.log().add(firstParent).call().iterator(); second = git.log().add(secondParent).call().iterator(); } else { first = git.log().call().iterator(); second = Collections.emptyIterator(); } revCommitIteratorPair = new RevCommitsPair(new OmitMergeCommitsIterator(first), new OmitMergeCommitsIterator(second)); } catch (GitAPIException | IOException ignored) { revCommitIteratorPair = new RevCommitsPair(); } return revCommitIteratorPair; }
this.remoteRepo.create(true); this.gitForPush = Git.cloneRepository().setURI(this.remoteRepo.getDirectory().getAbsolutePath()).setDirectory(cloneDir).call(); this.gitForPush.commit().setMessage("First commit").call(); this.gitForPush.push().setRemote("origin").setRefSpecs(this.masterRefSpec).call(); + ConfigurationKeys.GIT_MONITOR_REPO_URI, this.remoteRepo.getDirectory().getAbsolutePath()) .addPrimitive(GitFlowGraphMonitor.GIT_FLOWGRAPH_MONITOR_PREFIX + "." + ConfigurationKeys.GIT_MONITOR_REPO_DIR, TEST_DIR + "/git-flowgraph") .addPrimitive(GitFlowGraphMonitor.GIT_FLOWGRAPH_MONITOR_PREFIX + "." + ConfigurationKeys.GIT_MONITOR_POLLING_INTERVAL, 5)
this.git = Git.open(repoDirFile); String uri = this.git.getRepository().getConfig().getString("remote", REMOTE_NAME, "url"); this.git = Git.cloneRepository() .setDirectory(repoDirFile) .setURI(this.repoUri) this.lastProcessedGitHash = lastLog.getName();
public void initialize() throws IOException { if (!gitRepo.getDirectory().exists()) { gitRepo.create(); } else { cleanAndResetToMaster(); } }
private MergeResult merge(Git git, String label) { try { MergeCommand merge = git.merge(); merge.include(git.getRepository().findRef("origin/" + label)); MergeResult result = merge.call(); if (!result.getMergeStatus().isSuccessful()) { this.logger.warn("Merged from remote " + label + " with result " + result.getMergeStatus()); } return result; } catch (Exception ex) { String message = "Could not merge remote for " + label + " remote: " + git .getRepository().getConfig().getString("remote", "origin", "url"); warn(message, ex); return null; } }
ObjectId oldHeadTree = git.getRepository().resolve(this.lastProcessedGitHash + "^{tree}"); this.git.fetch() .setRemote(REMOTE_NAME) .setCredentialsProvider(getCredentialsProvider()) .call(); this.git.reset().setMode(ResetCommand.ResetType.HARD).setRef(REMOTE_NAME + "/" + this.branchName).call(); ObjectId head = this.git.getRepository().resolve("HEAD"); ObjectId headTree = this.git.getRepository().resolve("HEAD^{tree}"); ObjectReader reader = this.git.getRepository().newObjectReader(); CanonicalTreeParser oldTreeIter = new CanonicalTreeParser(); oldTreeIter.reset(reader, oldHeadTree);
public static void main(String[] args) throws IOException, GitAPIException { final File path; try (Repository repository = CookbookHelper.createNewRepository()) { try (Git git = new Git(repository)) { path = repository.getWorkTree(); System.out.println("Repository at " + path); git.add().addFilepattern("file1.txt").call(); RevCommit rev1 = git.commit().setAuthor("test", "test@test.com").setMessage("Commit Log 1").call(); System.out.println("Rev1: " + rev1); Iterable<RevCommit> gitLog = git.log().call(); for (RevCommit logMessage : gitLog) { System.out.println("Before revert: " + logMessage.getName() + " - " + logMessage.getFullMessage()); gitLog = git.log().call(); for (RevCommit logMessage : gitLog) { System.out.println("After revert: " + logMessage.getName() + " - " + logMessage.getFullMessage());
public static void main(String[] args) throws IOException, GitAPIException { final File localPath; try (Repository repository = CookbookHelper.createNewRepository()) { localPath = repository.getWorkTree(); try (Git git = new Git(repository)) { File tempFile = new File(repository.getDirectory().getParentFile(), fileName); if(!tempFile.createNewFile()) { throw new IOException("Could not create temporary file " + tempFile); git.add().addFilepattern(fileName).call(); git.commit().setMessage("Added untracked file " + fileName + "to repo").call(); git.checkout().addPath(fileName).call();
try (RevWalk rw = new RevWalk(repo)) { RepositoryState state = repo.getRepositoryState(); if (!state.canCommit()) throw new WrongRepositoryStateException(MessageFormat.format( if (all && !repo.isBare()) { try (Git git = new Git(repo)) { git.add() .addFilepattern(".") //$NON-NLS-1$ .setUpdate(true).call(); Ref head = repo.exactRef(Constants.HEAD); if (head == null) throw new NoHeadException( ObjectId headId = repo.resolve(Constants.HEAD + "^{commit}"); //$NON-NLS-1$ if (headId == null && amend) throw new WrongRepositoryStateException( DirCache index = repo.lockDirCache(); try (ObjectInserter odi = repo.newObjectInserter()) { if (!only.isEmpty()) index = createTemporaryIndex(headId, index, rw); RefUpdate ru = repo.updateRef(Constants.HEAD); ru.setNewObjectId(commitId); if (!useDefaultReflogMessage) { repo.writeMergeCommitMsg(null);
private static void createCommit(Repository repository, Git git, String fileName, String content) throws IOException, GitAPIException { // create the file File myFile = new File(repository.getDirectory().getParent(), fileName); FileUtils.writeStringToFile(myFile, content, "UTF-8"); // run the add git.add() .addFilepattern(fileName) .call(); // and then commit the changes RevCommit revCommit = git.commit() .setMessage("Added " + fileName) .call(); System.out.println("Committed file " + myFile + " as " + revCommit + " to repository at " + repository.getDirectory()); } }
Ref headRef = repo.exactRef(Constants.HEAD); if (headRef == null) { if (orphan) { if (startPoint == null && startCommit == null) { Result r = repo.updateRef(Constants.HEAD).link( r.name())); this.status = CheckoutResult.NOT_TRIED_RESULT; return repo.exactRef(Constants.HEAD); branch = repo.resolve(name); if (branch == null) throw new RefNotFoundException(MessageFormat.format( RevTree headTree = headCommit == null ? null : headCommit.getTree(); DirCacheCheckout dco; DirCache dc = repo.lockDirCache(); try { dco = new DirCacheCheckout(repo, headTree, dc, newCommit.getTree()); dco.setFailOnConflict(!force); dco.setProgressMonitor(monitor); Ref ref = repo.findRef(name); if (ref != null && !ref.getName().startsWith(Constants.R_HEADS)) ref = null; String toName = Repository.shortenRefName(name); RefUpdate refUpdate = repo.updateRef(Constants.HEAD, ref == null);
public static void main(String[] args) throws IOException, GitAPIException { try (Git git = new Git(repository)) { git.tagDelete().setTags("tag_for_testing").call(); Ref tag = git.tag().setName("tag_for_testing").call(); System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); ObjectId id = repository.resolve("HEAD^"); try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(id); tag = git.tag().setObjectId(commit).setName("tag_for_testing").call(); System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); tag = git.tag().setName("tag_for_testing").setAnnotated(true).call(); System.out.println("Created/moved tag " + tag + " to repository at " + repository.getDirectory()); git.tagDelete().setTags("tag_for_testing").call(); walk.dispose();
localPath = repository.getWorkTree(); try (Git git = new Git(repository)) { File file1 = new File(repository.getDirectory().getParent(), "testfile"); FileUtils.writeStringToFile(file1, "some text", "UTF-8"); File file2 = new File(repository.getDirectory().getParent(), "testfile2"); FileUtils.writeStringToFile(file2, "some text", "UTF-8"); git.add() .addFilepattern("testfile") .call(); git.add() .addFilepattern("testfile2") .call(); git.commit() .setMessage("Added testfiles") .call(); Collection<RevCommit> stashes = git.stashList().call(); for(RevCommit rev : stashes) { System.out.println("Found stash: " + rev + ": " + rev.getFullMessage()); System.out.println("StashDrop returned: " + call); ObjectId applied = git.stashApply().setStashRef(stash.getName()).call(); System.out.println("Applied 2nd stash as: " + applied);
private static AbstractTreeIterator prepareTreeParser(Repository repository, String ref) throws IOException { // from the commit we can build the tree which allows us to construct the TreeParser Ref head = repository.exactRef(ref); try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(head.getObjectId()); RevTree tree = walk.parseTree(commit.getTree().getId()); CanonicalTreeParser treeParser = new CanonicalTreeParser(); try (ObjectReader reader = repository.newObjectReader()) { treeParser.reset(reader, tree.getId()); } walk.dispose(); return treeParser; } } }
public static void main(String[] args) throws IOException, GitAPIException { final File localPath; try (Repository repository = CookbookHelper.createNewRepository()) { localPath = repository.getWorkTree(); try (Git git = new Git(repository)) { Ref changes = git.branchCreate().setName("changes").call(); System.out.println("Result of creating the branch: " + changes); Ref checkout = git.checkout().setName("changes").call(); System.out.println("Result of checking out the branch: " + checkout); checkout = git.checkout().setName("master").call(); System.out.println("Result of checking out master: " + checkout); ObjectId mergeBase = repository.resolve("changes");
public Repository createCommit(File srcFolder, String applicationName) throws IOException, GitAPIException { Repository repository = repositoryService.createRepository(new Repository().setName(applicationName)); String cloneUrl = repository.getCloneUrl(); InitCommand init = new InitCommand(); init.setDirectory(srcFolder); init.setBare(false); Git git = init.call(); StoredConfig config = git.getRepository().getConfig(); config.setString("remote", "origin", "url", cloneUrl); config.save(); UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(accessToken, ""); git.add().addFilepattern(".").call(); git.commit().setMessage(COMMIT_MESSAGE).call(); git.push().setCredentialsProvider(user).call(); return repository; } }
private static AbstractTreeIterator prepareTreeParser(Repository repository, String objectId) throws IOException { // from the commit we can build the tree which allows us to construct the TreeParser //noinspection Duplicates try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(repository.resolve(objectId)); RevTree tree = walk.parseTree(commit.getTree().getId()); CanonicalTreeParser treeParser = new CanonicalTreeParser(); try (ObjectReader reader = repository.newObjectReader()) { treeParser.reset(reader, tree.getId()); } walk.dispose(); return treeParser; } }
public static void main(String[] args) throws IOException { try (Repository repository = CookbookHelper.openJGitCookbookRepository()) { Ref head = repository.exactRef("refs/heads/master"); System.out.println("Found head: " + head); // a RevWalk allows to walk over commits based on some filtering that is defined try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(head.getObjectId()); System.out.println("Found Commit: " + commit); // You can also get the commit for an (abbreviated) SHA walk.reset(); ObjectId id = repository.resolve("38d51408bd"); RevCommit commitAgain = walk.parseCommit(id); System.out.println("Found Commit again: " + commitAgain); walk.dispose(); } } } }
@Test public void shouldCleanAndResetToMasterDuringInitialization() throws Exception { configRepo.checkin(goConfigRevision("v1", "md5-1")); configRepo.createBranch(ConfigRepository.BRANCH_AT_REVISION, configRepo.getCurrentRevCommit()); configRepo.git().checkout().setName(ConfigRepository.BRANCH_AT_REVISION).call(); assertThat(configRepo.git().getRepository().getBranch(), is(ConfigRepository.BRANCH_AT_REVISION)); new ConfigRepository(systemEnvironment).initialize(); assertThat(configRepo.git().getRepository().getBranch(), is("master")); assertThat(configRepo.git().branchList().call().size(), is(1)); }
writeRewrittenHashes(); ObjectReader or = repo.newObjectReader(); throw new JGitInternalException( JGitText.get().cannotResolveUniquelyAbbrevObjectId); RevCommit commitToPick = walk.parseCommit(ids.iterator().next()); if (shouldPick) { if (monitor.isCancelled()) return null; // continue rebase process on pick command case REWORD: String oldMessage = commitToPick.getFullMessage(); String newMessage = interactiveHandler .modifyCommitMessage(oldMessage); try (Git git = new Git(repo)) { newHead = git.commit().setMessage(newMessage).setAmend(true) .setNoVerify(true).call(); rebaseState.createFile(AMEND, commitToPick.name()); return stop(commitToPick, Status.EDIT); case COMMENT: List<RebaseTodoLine> steps = repo.readRebaseTodo( rebaseState.getPath(GIT_REBASE_TODO), false); RebaseTodoLine nextStep = steps.size() > 0 ? steps.get(0) : null;