diff options
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java | 5 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java index 2a57b11ac9..153c10000f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java @@ -114,6 +114,8 @@ public class CherryPickCommand extends GitCommand<RevCommit> { JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported); RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId()); + newHead = headCommit; + // loop through all refs to be cherry-picked for (Ref src : commits) { // get the commit to be cherry-picked @@ -137,6 +139,9 @@ public class CherryPickCommand extends GitCommand<RevCommit> { merger.setBase(srcParent.getTree()); if (merger.merge(headCommit, srcCommit)) { + if (AnyObjectId.equals(headCommit.getTree().getId(), merger + .getResultTreeId())) + continue; DirCacheCheckout dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java index 26403edfda..57c69cc08a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java @@ -113,6 +113,8 @@ public class RevertCommand extends GitCommand<RevCommit> { JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported); RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId()); + newHead = headCommit; + // loop through all refs to be reverted for (Ref src : commits) { // get the commit to be reverted @@ -136,6 +138,9 @@ public class RevertCommand extends GitCommand<RevCommit> { merger.setBase(srcCommit.getTree()); if (merger.merge(headCommit, srcParent)) { + if (AnyObjectId.equals(headCommit.getTree().getId(), merger + .getResultTreeId())) + continue; DirCacheCheckout dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); |