diff --git a/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java b/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java index 1469c6eaea0a..d1433436fcc5 100644 --- a/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java +++ b/plugins/git4idea/src/git4idea/checkin/GitCheckinEnvironment.java @@ -40,6 +40,7 @@ import git4idea.commands.GitFileUtils; import git4idea.commands.GitSimpleHandler; import git4idea.config.GitConfigUtil; import git4idea.config.GitVcsSettings; +import git4idea.history.GitUsersComponent; import git4idea.i18n.GitBundle; import git4idea.ui.GitConvertFilesDialog; import org.jetbrains.annotations.NonNls; @@ -121,7 +122,7 @@ public class GitCheckinEnvironment implements CheckinEnvironment { @Nullable public RefreshableOnComponent createAdditionalOptionsPanel(CheckinProjectPanel panel, PairConsumer additionalDataConsumer) { - return new GitCheckinOptions(); + return new GitCheckinOptions(myProject, panel.getRoots()); } /** @@ -600,8 +601,10 @@ public class GitCheckinEnvironment implements CheckinEnvironment { /** * A constructor + * @param project + * @param roots */ - GitCheckinOptions() { + GitCheckinOptions(Project project, Collection roots) { myPanel = new JPanel(new GridBagLayout()); final Insets insets = new Insets(2, 2, 2, 2); GridBagConstraints c = new GridBagConstraints(); @@ -618,7 +621,11 @@ public class GitCheckinEnvironment implements CheckinEnvironment { c.gridy = 1; c.weightx = 1; c.fill = GridBagConstraints.HORIZONTAL; - myAuthor = new JComboBox(mySettings.getCommitAuthors()); + final Set authors = getUsersList(project, roots); + authors.addAll(Arrays.asList(mySettings.getCommitAuthors())); + final ArrayList authorsList = new ArrayList(authors); + Collections.sort(authorsList); + myAuthor = new JComboBox(authorsList.toArray(new Object[authorsList.size()])); myAuthor.insertItemAt("", 0); myAuthor.setSelectedItem(""); myAuthor.setEditable(true); @@ -627,6 +634,15 @@ public class GitCheckinEnvironment implements CheckinEnvironment { myPanel.add(myAuthor, c); } + private Set getUsersList(final Project project, final Collection roots) { + final GitUsersComponent component = GitUsersComponent.getInstance(project); + final Set result = new HashSet(); + for (VirtualFile root : roots) { + result.addAll(component.getUsersList(root)); + } + return result; + } + /** * {@inheritDoc} */