diff options
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse/egit/ui')
-rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java | 7 | ||||
-rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java | 11 |
2 files changed, 12 insertions, 6 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java index b21f4b6b49..4a1830d484 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FileDiff.java @@ -70,12 +70,13 @@ public class FileDiff extends WorkbenchAdapter { String rightPath = right.getPath(); int i = leftPath.lastIndexOf('/'); int j = rightPath.lastIndexOf('/'); - int p = leftPath.substring(0, i + 1) - .compareTo(rightPath.substring(0, j + 1)); + int p = leftPath.substring(0, i + 1).replace('/', '\001').compareTo( + rightPath.substring(0, j + 1).replace('/', '\001')); if (p != 0) { return p; } - return leftPath.compareTo(rightPath); + return leftPath.substring(i + 1) + .compareTo(rightPath.substring(j + 1)); } }; 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 b76f0b4785..6395190e7c 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 @@ -4416,12 +4416,17 @@ public class StagingView extends ViewPart private String getStagingEntryText(Object element) { String text = ""; //$NON-NLS-1$ StagingEntry stagingEntry = getStagingEntry(element); + // Replace slashes by ASCII \001 to make e.g. + // "org.eclipse.egit.gitflow/..." sort before + // "org.eclipse.egit.gitflow.ui/...". if (stagingEntry != null) { + text = stagingEntry.getPath().replace('/', '\001'); if (isFileNamesFirst()) { - text = stagingEntry.getName(); - } else { - text = stagingEntry.getPath(); + text = stagingEntry.getName() + '\001' + text; } + } else if (element instanceof StagingFolderEntry) { + text = ((StagingFolderEntry) element).getNodePath().toString() + .replace('/', '\001'); } return text; } |