[vcs-log] use getShortPresentation method instead of getName for presentation purposes; use toExactString for commit

This commit is contained in:
Julia Beliaeva
2016-03-26 19:55:46 +03:00
parent 03df92ae40
commit 48e20cf60c
13 changed files with 34 additions and 19 deletions
@@ -22,6 +22,7 @@ import com.intellij.openapi.vcs.changes.issueLinks.IssueLinkRenderer;
import com.intellij.ui.ColoredTreeCellRenderer;
import com.intellij.ui.SimpleTextAttributes;
import com.intellij.vcs.log.VcsFullCommitDetails;
import com.intellij.vcs.log.util.VcsUserUtil;
import org.jetbrains.annotations.NotNull;
import javax.swing.tree.DefaultMutableTreeNode;
@@ -53,7 +54,7 @@ public class CommitNode extends DefaultMutableTreeNode implements CustomRendered
public String getTooltip() {
String hash = DvcsUtil.getShortHash(getUserObject().getId().toString());
String date = DvcsUtil.getDateString(getUserObject());
String author = getUserObject().getAuthor().getName();
String author = VcsUserUtil.getShortPresentation(getUserObject().getAuthor());
String message = IssueLinkHtmlRenderer.formatTextWithLinks(myProject, getUserObject().getFullMessage());
return String.format("%s %s by %s\n\n%s", hash, date, author, message);
}
@@ -61,7 +61,7 @@ public class MyCommitsHighlighter implements VcsLogHighlighter {
@NotNull
@Override
public String fun(VcsUser user) {
return VcsUserUtil.getNameInStandardForm(user.getName());
return VcsUserUtil.getNameInStandardForm(VcsUserUtil.getShortPresentation(user));
}
};
Set<String> allUserNames = ContainerUtil.newHashSet(ContainerUtil.map(myDataManager.getAllUsers(), nameToString));
@@ -23,6 +23,7 @@ import com.intellij.vcs.log.VcsLogUserFilter;
import com.intellij.vcs.log.VcsUser;
import com.intellij.vcs.log.data.VcsLogDataManager;
import com.intellij.vcs.log.data.VcsLogUiProperties;
import com.intellij.vcs.log.util.VcsUserUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -94,7 +95,7 @@ class UserFilterPopupComponent extends MultipleValueFilterPopupComponent<VcsLogU
return ContainerUtil.map(myDataManager.getAllUsers(), new Function<VcsUser, String>() {
@Override
public String fun(VcsUser user) {
return user.getName();
return VcsUserUtil.getShortPresentation(user);
}
});
}
@@ -46,6 +46,7 @@ import com.intellij.vcs.log.data.VisiblePack;
import com.intellij.vcs.log.ui.VcsLogColorManager;
import com.intellij.vcs.log.ui.render.VcsRefPainter;
import com.intellij.vcs.log.ui.tables.GraphTableModel;
import com.intellij.vcs.log.util.VcsUserUtil;
import net.miginfocom.swing.MigLayout;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -440,8 +441,8 @@ class DetailsPanel extends JPanel implements ListSelectionListener {
long authorTime = commit.getAuthorTime();
long commitTime = commit.getCommitTime();
String authorText = commit.getAuthor().getName() + formatDateTime(authorTime);
if (!commit.getAuthor().equals(commit.getCommitter())) {
String authorText = VcsUserUtil.getShortPresentation(commit.getAuthor()) + formatDateTime(authorTime);
if (!VcsUserUtil.isSamePerson(commit.getAuthor(), commit.getCommitter())) {
String commitTimeText;
if (authorTime != commitTime) {
commitTimeText = formatDateTime(commitTime);
@@ -449,7 +450,7 @@ class DetailsPanel extends JPanel implements ListSelectionListener {
else {
commitTimeText = "";
}
authorText += " (committed by " + commit.getCommitter().getName() + commitTimeText + ")";
authorText += " (committed by " + VcsUserUtil.getShortPresentation(commit.getCommitter()) + commitTimeText + ")";
}
else if (authorTime != commitTime) {
authorText += " (committed " + formatDateTime(commitTime) + ")";
@@ -38,6 +38,7 @@ import com.intellij.vcs.log.ui.VcsLogUiImpl;
import com.intellij.vcs.log.ui.actions.IntelliSortChooserPopupAction;
import com.intellij.vcs.log.ui.filter.VcsLogClassicFilterUi;
import com.intellij.vcs.log.util.BekUtil;
import com.intellij.vcs.log.util.VcsUserUtil;
import net.miginfocom.swing.MigLayout;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -276,7 +277,7 @@ public class MainFrame extends JPanel implements DataProvider, Disposable {
.map2Array(details, CommittedChangeListForRevision.class, new Function<VcsFullCommitDetails, CommittedChangeListForRevision>() {
@Override
public CommittedChangeListForRevision fun(@NotNull VcsFullCommitDetails details) {
return new CommittedChangeListForRevision(details.getSubject(), details.getFullMessage(), details.getCommitter().getName(),
return new CommittedChangeListForRevision(details.getSubject(), details.getFullMessage(), VcsUserUtil.getShortPresentation(details.getCommitter()),
new Date(details.getCommitTime()), details.getChanges(),
convertToRevisionNumber(details.getId()));
}
@@ -57,6 +57,7 @@ import com.intellij.vcs.log.ui.VcsLogUiImpl;
import com.intellij.vcs.log.ui.render.GraphCommitCell;
import com.intellij.vcs.log.ui.render.GraphCommitCellRender;
import com.intellij.vcs.log.ui.tables.GraphTableModel;
import com.intellij.vcs.log.util.VcsUserUtil;
import gnu.trove.TIntHashSet;
import gnu.trove.TIntProcedure;
import org.jetbrains.annotations.NonNls;
@@ -442,7 +443,7 @@ public class VcsLogGraphTable extends JBTable implements DataProvider, CopyProvi
balloonText = "Jump to <b>\"" +
StringUtil.shortenTextWithEllipsis(details.getSubject(), 50, 0, "...") +
"\"</b> by " +
details.getAuthor().getName() +
VcsUserUtil.getShortPresentation(details.getAuthor()) +
DetailsPanel.formatDateTime(details.getAuthorTime());
}
return balloonText;
@@ -14,6 +14,7 @@ import com.intellij.vcs.log.data.VisiblePack;
import com.intellij.vcs.log.impl.VcsLogUtil;
import com.intellij.vcs.log.ui.VcsLogUiImpl;
import com.intellij.vcs.log.ui.render.GraphCommitCell;
import com.intellij.vcs.log.util.VcsUserUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -116,9 +117,8 @@ public class GraphTableModel extends AbstractTableModel {
case COMMIT_COLUMN:
return new GraphCommitCell(data.getSubject(), myDataPack.getRefs().refsToCommit(data.getId(), data.getRoot()));
case AUTHOR_COLUMN:
String authorString = data.getAuthor().getName();
if (authorString.isEmpty()) authorString = data.getAuthor().getEmail();
return authorString + (data.getAuthor().equals(data.getCommitter()) ? "" : "*");
String authorString = VcsUserUtil.getShortPresentation(data.getAuthor());
return authorString + (VcsUserUtil.isSamePerson(data.getAuthor(), data.getCommitter()) ? "" : "*");
case DATE_COLUMN:
if (data.getAuthorTime() < 0) {
return "";
@@ -44,7 +44,12 @@ public class VcsUserUtil {
}
@NotNull
public static String getName(@NotNull VcsUser user) {
public static String getShortPresentation(@NotNull VcsUser user) {
return getName(user);
}
@NotNull
private static String getName(@NotNull VcsUser user) {
if (!user.getName().isEmpty()) return user.getName();
String emailNamePart = getNameFromEmail(user.getEmail());
if (emailNamePart != null) return emailNamePart;
@@ -50,6 +50,7 @@ import com.intellij.util.ui.UIUtil;
import com.intellij.vcs.log.VcsFullCommitDetails;
import com.intellij.vcs.log.VcsUser;
import com.intellij.vcs.log.VcsUserRegistry;
import com.intellij.vcs.log.util.VcsUserUtil;
import com.intellij.vcsUtil.VcsFileUtil;
import com.intellij.vcsUtil.VcsUtil;
import git4idea.GitUtil;
@@ -657,7 +658,7 @@ public class GitCheckinEnvironment implements CheckinEnvironment {
return ContainerUtil.map(userRegistry.getUsers(), new Function<VcsUser, String>() {
@Override
public String fun(VcsUser user) {
return user.getName() + " <" + user.getEmail() + ">";
return VcsUserUtil.toExactString(user);
}
});
}
@@ -694,7 +695,7 @@ public class GitCheckinEnvironment implements CheckinEnvironment {
Object data = list.getData();
if (data instanceof VcsFullCommitDetails) {
VcsFullCommitDetails commit = (VcsFullCommitDetails)data;
String author = String.format("%s <%s>", commit.getAuthor().getName(), commit.getAuthor().getEmail());
String author = VcsUserUtil.toExactString(commit.getAuthor());
myAuthorField.setText(author);
myAuthorDate = new Date(commit.getAuthorTime());
}
@@ -39,6 +39,7 @@ import com.intellij.util.containers.ContainerUtil;
import com.intellij.vcs.log.Hash;
import com.intellij.vcs.log.VcsFullCommitDetails;
import com.intellij.vcs.log.VcsLog;
import com.intellij.vcs.log.util.VcsUserUtil;
import git4idea.GitLocalBranch;
import git4idea.GitPlatformFacade;
import git4idea.GitVcs;
@@ -153,7 +154,7 @@ public class GitCherryPicker extends VcsCherryPicker {
}
else if (conflictDetector.hasHappened()) {
boolean mergeCompleted = new CherryPickConflictResolver(myProject, myGit, myPlatformFacade, repository.getRoot(),
commit.getId().asString(), commit.getAuthor().getName(),
commit.getId().asString(), VcsUserUtil.getShortPresentation(commit.getAuthor()),
commit.getSubject()).merge();
if (mergeCompleted) {
@@ -227,7 +228,7 @@ public class GitCherryPicker extends VcsCherryPicker {
@NotNull List<GitCommitWrapper> successfulCommits) {
NotificationListener resolveLinkListener = new ResolveLinkListener(myProject, myGit, myPlatformFacade, repository.getRoot(),
commit.getCommit().getId().toShortString(),
commit.getCommit().getAuthor().getName(),
VcsUserUtil.getShortPresentation(commit.getCommit().getAuthor()),
commit.getSubject());
String description = commitDetails(commit)
+ "<br/>Unresolved conflicts remain in the working tree. <a href='resolve'>Resolve them.<a/>";
@@ -26,6 +26,7 @@ import com.intellij.util.ui.GridBag;
import com.intellij.util.ui.RadioButtonEnumModel;
import com.intellij.util.ui.UIUtil;
import com.intellij.vcs.log.VcsFullCommitDetails;
import com.intellij.vcs.log.util.VcsUserUtil;
import com.intellij.xml.util.XmlStringUtil;
import git4idea.repo.GitRepository;
import git4idea.repo.GitRepositoryManager;
@@ -119,7 +120,7 @@ public class GitNewResetDialog extends DialogWrapper {
private static String getTargetText(@NotNull VcsFullCommitDetails commit) {
String commitMessage = StringUtil.escapeXml(StringUtil.shortenTextWithEllipsis(commit.getSubject(), 20, 0));
return String.format("<code><b>%s</b> \"%s\"</code> by <code>%s</code>",
commit.getId().toShortString(), commitMessage, commit.getAuthor().getName());
commit.getId().toShortString(), commitMessage, VcsUserUtil.getShortPresentation(commit.getAuthor()));
}
@NotNull
@@ -28,6 +28,7 @@ import com.intellij.util.text.DateFormatUtil;
import com.intellij.util.ui.ColumnInfo;
import com.intellij.util.ui.ListTableModel;
import com.intellij.util.ui.UIUtil;
import com.intellij.vcs.log.util.VcsUserUtil;
import git4idea.GitCommit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -202,7 +203,7 @@ public class GitCommitListPanel extends JPanel implements TypeSafeDataProvider {
}
private static String getAuthor(GitCommit commit) {
return commit.getAuthor().getName();
return VcsUserUtil.getShortPresentation(commit.getAuthor());
}
private static String getTime(GitCommit commit) {
@@ -24,6 +24,7 @@ import com.intellij.util.containers.MultiMap;
import com.intellij.vcs.log.*;
import com.intellij.vcs.log.impl.VcsLogFilterCollectionImpl;
import com.intellij.vcs.log.ui.filter.VcsLogUserFilterImpl;
import com.intellij.vcs.log.util.VcsUserUtil;
import git4idea.test.GitSingleRepoTest;
import git4idea.test.GitTestUtil;
import junit.framework.TestCase;
@@ -118,7 +119,7 @@ public class GitUserFilterTest extends GitSingleRepoTest {
@NotNull Collection<? extends String> expectedHashes,
@NotNull StringBuilder errorMessageBuilder) throws VcsException {
VcsLogUserFilter userFilter =
new VcsLogUserFilterImpl(singleton(user.getName()), Collections.emptyMap(), allUsers);
new VcsLogUserFilterImpl(singleton(VcsUserUtil.getShortPresentation(user)), Collections.emptyMap(), allUsers);
List<String> actualHashes = getFilteredHashes(userFilter);
List<String> expected = ContainerUtil.reverse(ContainerUtil.newArrayList(expectedHashes));