The command "copy to clipboard / revisions" copied the revision numbers 
unsorted into clipboard.

I wrote a patch that sort the revision numbers before write them to 
clipboard.

-- 
You received this message because you are subscribed to the Google Groups 
"TortoiseSVN-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tortoisesvn-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tortoisesvn-dev/d8af35d5-857d-40e5-9715-c7330cf9f376n%40googlegroups.com.
Index: src/TortoiseProc/LogDialog/LogDlg.cpp
===================================================================
--- src/TortoiseProc/LogDialog/LogDlg.cpp       (revision 224)
+++ src/TortoiseProc/LogDialog/LogDlg.cpp       (working copy)
@@ -2040,9 +2040,9 @@
 void CLogDlg::CopyCommaSeparatedRevisionsToClipboard()
 {
     POSITION pos = m_LogList.GetFirstSelectedItemPosition();
-    CString  sRevisions;
-    CString  sRevision;
 
+    std::set<svn_revnum_t> setSelectedRevisions;
+
     if (pos != NULL)
     {
         while (pos)
@@ -2053,18 +2053,20 @@
             PLOGENTRYDATA pLogEntry = m_logEntries.GetVisible(index);
             if (pLogEntry)
             {
-                sRevision.Format(L"%ld, ", pLogEntry->GetRevision());
-                sRevisions += sRevision;
+                setSelectedRevisions.insert(pLogEntry->GetRevision());
             }
         }
-
-        // trim trailing comma and space
-        int revisionsLength = sRevisions.GetLength() - 2;
-        if (revisionsLength > 0)
-        {
-            sRevisions = sRevisions.Left(revisionsLength);
-            CStringUtils::WriteAsciiStringToClipboard(sRevisions, 
GetSafeHwnd());
+    }
+    if (setSelectedRevisions.size() > 0)
+    {
+        CString  sRevisions;
+        std::set<svn_revnum_t>::iterator it;
+        for (it = setSelectedRevisions.begin(); it != 
setSelectedRevisions.end(); ++it) {
+            if (!sRevisions.IsEmpty())
+                sRevisions += ", ";
+            sRevisions += SVNRev(*it).ToString();
         }
+        CStringUtils::WriteAsciiStringToClipboard(sRevisions, GetSafeHwnd());
     }
 }
 

Reply via email to