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()); } }