Do not cherry-pick or revert commit more than once

Instead just return success. In the case that no commit has been
cherry-picked or reverted, just return the old HEAD.
    
Bug: 333814
Change-Id: I67db2b77b52c43932436d22a8daa5a6556423484
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
This commit is contained in:
Robin Rosenberg 2011-01-10 08:47:14 +01:00
parent 7cd812940d
commit 2058f9272b
2 changed files with 10 additions and 0 deletions

View File

@ -114,6 +114,8 @@ public RevCommit call() throws GitAPIException {
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 RevCommit call() throws GitAPIException {
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());

View File

@ -113,6 +113,8 @@ public RevCommit call() throws GitAPIException {
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 RevCommit call() throws GitAPIException {
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());