From 7d9d5fe1c2c2a021aad4e18e4d2104a21fc188eb Mon Sep 17 00:00:00 2001 From: Jens Baumgart Date: Mon, 28 Nov 2011 11:24:25 +0100 Subject: Disable amend if the repository does not contain a commit The amend toggle is disabled in commit dialog and staging view if the repository does not contain a commit. Depends on JGit change http://egit.eclipse.org/r/4674 Change-Id: Ibac8a3efe7ad6fed2ba867e240bd288b98667c02 Signed-off-by: Jens Baumgart Signed-off-by: Matthias Sohn --- .../src/org/eclipse/egit/ui/internal/commit/CommitHelper.java | 7 +++++++ .../src/org/eclipse/egit/ui/internal/commit/CommitUI.java | 3 +-- .../src/org/eclipse/egit/ui/internal/staging/StagingView.java | 11 +++-------- 3 files changed, 11 insertions(+), 10 deletions(-) (limited to 'org.eclipse.egit.ui/src') diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitHelper.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitHelper.java index 653d6e6b94..1d17688206 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitHelper.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitHelper.java @@ -216,6 +216,13 @@ public class CommitHelper { return previousCommit; } + /** + * @return true if amending is allowed + */ + public boolean amendAllowed() { + return previousCommit != null && repository.getRepositoryState().canAmend(); + } + /** * @param repository * @return info related to the HEAD commit diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java index 16c277eee1..467da37a5a 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/commit/CommitUI.java @@ -72,8 +72,6 @@ public class CommitUI { private Set files; - private boolean amendAllowed = true; - private boolean amending; private Shell shell; @@ -153,6 +151,7 @@ public class CommitUI { commitHelper.getCannotCommitMessage()); return; } + boolean amendAllowed = commitHelper.amendAllowed(); if (files.isEmpty()) { if (amendAllowed && commitHelper.getPreviousCommit() != null) { boolean result = MessageDialog.openQuestion(shell, diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java index 5c3293ec57..c7c73f6af3 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java @@ -1245,7 +1245,7 @@ public class StagingView extends ViewPart { } amendPreviousCommitAction.setChecked(commitMessageComponent .isAmending()); - amendPreviousCommitAction.setEnabled(amendAllowed(helper)); + amendPreviousCommitAction.setEnabled(helper.amendAllowed()); } private void loadExistingState(CommitHelper helper, @@ -1262,7 +1262,7 @@ public class StagingView extends ViewPart { commitMessageComponent.setCommitter(oldState.getCommitter()); commitMessageComponent.setHeadCommit(getCommitId(helper .getPreviousCommit())); - boolean amendAllowed = amendAllowed(helper); + boolean amendAllowed = helper.amendAllowed(); commitMessageComponent.setAmendAllowed(amendAllowed); if (!amendAllowed) { commitMessageComponent.setAmending(false); @@ -1291,7 +1291,7 @@ public class StagingView extends ViewPart { commitMessageComponent.setCommitter(helper.getCommitter()); commitMessageComponent.setHeadCommit(getCommitId(helper .getPreviousCommit())); - commitMessageComponent.setAmendAllowed(amendAllowed(helper)); + commitMessageComponent.setAmendAllowed(helper.amendAllowed()); commitMessageComponent.setAmending(false); commitMessageComponent.setSignedOff(false); commitMessageComponent.setCreateChangeId(false); @@ -1299,11 +1299,6 @@ public class StagingView extends ViewPart { commitMessageComponent.enableListers(true); } - private boolean amendAllowed(CommitHelper commitHelper) { - return !commitHelper.isMergedResolved() - && !commitHelper.isCherryPickResolved(); - } - private boolean userEnteredCommmitMessage() { if (commitMessageComponent.getRepository() == null) return false; -- cgit v1.2.3