From 32dc1b5c50a506a4130c989e8cdf9ef6817e2616 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Mon, 28 May 2012 16:03:04 +0400 Subject: [PATCH] IDEA-86695 Git cherry-pick changes not committed - trying to debug Don't silently ignore the fact of invalid CheckinEnvironment or empty list to commit, but log an error. --- .../checkin/GitCheckinEnvironment.java | 1 + .../history/browser/GitCherryPicker.java | 25 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java b/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java index 0f4237443533..88873bd2a6a1 100644 --- a/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java +++ b/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java @@ -142,6 +142,7 @@ public class GitCheckinEnvironment implements CheckinEnvironment { @NotNull NullableFunction parametersHolder, Set feedback) { List exceptions = new ArrayList(); Map> sortedChanges = sortChangesByGitRoot(changes, exceptions); + log.assertTrue(!sortedChanges.isEmpty(), "Trying to commit an empty list of changes: " + changes); if (GitFileSeparatorConverter.convertSeparatorsIfNeeded(myProject, mySettings, sortedChanges, exceptions)) { for (Map.Entry> entry : sortedChanges.entrySet()) { Set files = new HashSet(); diff --git a/plugins/git4idea/src/git4idea/history/browser/GitCherryPicker.java b/plugins/git4idea/src/git4idea/history/browser/GitCherryPicker.java index d938c0d03099..c391836019fb 100644 --- a/plugins/git4idea/src/git4idea/history/browser/GitCherryPicker.java +++ b/plugins/git4idea/src/git4idea/history/browser/GitCherryPicker.java @@ -497,21 +497,20 @@ public class GitCherryPicker { final Collection committingDocs = markCommittingDocs(); try { CheckinEnvironment ce = myPlatformFacade.getVcs(myProject).getCheckinEnvironment(); - if (ce != null && ce instanceof GitCheckinEnvironment) { - try { - ((GitCheckinEnvironment)ce).reset(); - List exceptions = ce.commit(myChanges, myCommitMessage); - VcsDirtyScopeManager.getInstance(myProject).filePathsDirty(ChangesUtil.getPaths(myChanges), null); - if (exceptions != null && !exceptions.isEmpty()) { - VcsException exception = exceptions.get(0); - handleError(exception); - } - } - catch (Throwable e) { - LOG.error(e); - handleError(e); + LOG.assertTrue(ce != null && ce instanceof GitCheckinEnvironment, "Invalid CheckinEnvironment: " + ce); + try { + ((GitCheckinEnvironment)ce).reset(); + List exceptions = ce.commit(myChanges, myCommitMessage); + VcsDirtyScopeManager.getInstance(myProject).filePathsDirty(ChangesUtil.getPaths(myChanges), null); + if (exceptions != null && !exceptions.isEmpty()) { + VcsException exception = exceptions.get(0); + handleError(exception); } } + catch (Throwable e) { + LOG.error(e); + handleError(e); + } } finally { unmarkCommittingDocs(committingDocs);