Fire WorkingTreeModifiedEvent if cherry-pick failed with conflicts
Otherwise the paths modified by a cherry-pick with conflicts won't be reported as modified via WorkingTreeModifiedEvents. Change-Id: I875b67c0d2f68efdf90a9c32b80a2e074ed3570d Signed-off-by: Matthias Sohn <matthias.sohn@sap.com> Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
This commit is contained in:
parent
d44a30a27f
commit
cda3b2b492
|
@ -58,6 +58,8 @@
|
|||
import org.eclipse.jgit.api.errors.JGitInternalException;
|
||||
import org.eclipse.jgit.api.errors.MultipleParentsNotAllowedException;
|
||||
import org.eclipse.jgit.dircache.DirCache;
|
||||
import org.eclipse.jgit.events.ChangeRecorder;
|
||||
import org.eclipse.jgit.events.ListenerHandle;
|
||||
import org.eclipse.jgit.junit.RepositoryTestCase;
|
||||
import org.eclipse.jgit.lib.ConfigConstants;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
|
@ -324,6 +326,25 @@ public void testCherryPickConflictMarkers() throws Exception {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCherryPickConflictFiresModifiedEvent() throws Exception {
|
||||
ListenerHandle listener = null;
|
||||
try (Git git = new Git(db)) {
|
||||
RevCommit sideCommit = prepareCherryPick(git);
|
||||
ChangeRecorder recorder = new ChangeRecorder();
|
||||
listener = db.getListenerList()
|
||||
.addWorkingTreeModifiedListener(recorder);
|
||||
CherryPickResult result = git.cherryPick()
|
||||
.include(sideCommit.getId()).call();
|
||||
assertEquals(CherryPickStatus.CONFLICTING, result.getStatus());
|
||||
recorder.assertEvent(new String[] { "a" }, ChangeRecorder.EMPTY);
|
||||
} finally {
|
||||
if (listener != null) {
|
||||
listener.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCherryPickOurCommitName() throws Exception {
|
||||
try (Git git = new Git(db)) {
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
import org.eclipse.jgit.api.errors.WrongRepositoryStateException;
|
||||
import org.eclipse.jgit.dircache.DirCacheCheckout;
|
||||
import org.eclipse.jgit.errors.MissingObjectException;
|
||||
import org.eclipse.jgit.events.WorkingTreeModifiedEvent;
|
||||
import org.eclipse.jgit.internal.JGitText;
|
||||
import org.eclipse.jgit.lib.AnyObjectId;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
|
@ -188,6 +189,9 @@ public CherryPickResult call() throws GitAPIException, NoMessageException,
|
|||
repo.writeCherryPickHead(srcCommit.getId());
|
||||
repo.writeMergeCommitMsg(message);
|
||||
|
||||
repo.fireEvent(new WorkingTreeModifiedEvent(
|
||||
merger.getModifiedFiles(), null));
|
||||
|
||||
return CherryPickResult.CONFLICT;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue