Parcourir la source

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>
tags/v0.11.1
Robin Rosenberg il y a 13 ans
Parent
révision
2058f9272b

+ 5
- 0
org.eclipse.jgit/src/org/eclipse/jgit/api/CherryPickCommand.java Voir le fichier

JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported); JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported);
RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId()); RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId());


newHead = headCommit;

// loop through all refs to be cherry-picked // loop through all refs to be cherry-picked
for (Ref src : commits) { for (Ref src : commits) {
// get the commit to be cherry-picked // get the commit to be cherry-picked
merger.setBase(srcParent.getTree()); merger.setBase(srcParent.getTree());


if (merger.merge(headCommit, srcCommit)) { if (merger.merge(headCommit, srcCommit)) {
if (AnyObjectId.equals(headCommit.getTree().getId(), merger
.getResultTreeId()))
continue;
DirCacheCheckout dco = new DirCacheCheckout(repo, DirCacheCheckout dco = new DirCacheCheckout(repo,
headCommit.getTree(), repo.lockDirCache(), headCommit.getTree(), repo.lockDirCache(),
merger.getResultTreeId()); merger.getResultTreeId());

+ 5
- 0
org.eclipse.jgit/src/org/eclipse/jgit/api/RevertCommand.java Voir le fichier

JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported); JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported);
RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId()); RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId());


newHead = headCommit;

// loop through all refs to be reverted // loop through all refs to be reverted
for (Ref src : commits) { for (Ref src : commits) {
// get the commit to be reverted // get the commit to be reverted
merger.setBase(srcCommit.getTree()); merger.setBase(srcCommit.getTree());


if (merger.merge(headCommit, srcParent)) { if (merger.merge(headCommit, srcParent)) {
if (AnyObjectId.equals(headCommit.getTree().getId(), merger
.getResultTreeId()))
continue;
DirCacheCheckout dco = new DirCacheCheckout(repo, DirCacheCheckout dco = new DirCacheCheckout(repo,
headCommit.getTree(), repo.lockDirCache(), headCommit.getTree(), repo.lockDirCache(),
merger.getResultTreeId()); merger.getResultTreeId());

Chargement…
Annuler
Enregistrer