{"thread":{"id":"1118","subject":"[PATCH 6/6] Change gitk so that it uses --topo-order rather than --merge-order","startedAt":"2005-07-06T07:51:45Z","lastAt":"2005-07-06T07:51:45Z","messageCount":1,"participants":["Jon Seymour"],"isPatch":true,"patchVersion":1,"patchTotal":6},"messages":[{"id":"5694","messageId":"20050706075145.4732.qmail@blackcubes.dyndns.org","threadId":"1118","inReplyTo":null,"subject":"[PATCH 6/6] Change gitk so that it uses --topo-order rather than --merge-order","fromName":"Jon Seymour","fromEmail":"jon.seymour@gmail.com","sentAt":"2005-07-06T07:51:45Z","receivedAt":"2005-07-06T07:51:45Z","isPatch":true,"sender":{"key":"jon.seymour@gmail.com","avatar":"https://avatars.githubusercontent.com/u/207131?v=4"},"body":"\nThis change is made so that gitk --all produces the same result for\nevery user irrespective of whether git-rev-parse --all produces\nthe same result for every user. By using --topo-order rather than\n--merge-order this can be guaranteed and the existing (non-timestamp dependent)\nbehaviour of --merge-order can be maintained.\n\nSigned-off-by: Jon Seymour <jon.seymour@gmail.com>\n---\nPaul, could you review this patch and if you agree, ack it.\n\nThe rationale for changing gitk to use --topo-order is that git-rev-list will\nproduce the same order for --topo-order irrespective of the order of the\nstart list, whereas git-rev-list --merge-order produces an order that is deliberately\nsensitive to the order of the start list.\n\nLinus wants gitk --all to behave the same way, irrespective of what order\ngit-rev-parse --all produces its output. I want --merge-order to keep its\nexisting behaviour, so we agreed on this compromise whereby gitk uses\n--topo-order rather than --merge-order by default.\n\nMy understanding of your code is that you only expect a minimal topological ordering\nguarantee and the ordering produced by --topo-order should be sufficient\nfor your needs - that is, you don't rely on the other aspect of the\n--merge-order invariant.\n\nI'll leave it to you and Linus to decide how you want to manage the merge between\nyour HEAD and Linus'.\n---\n\n gitk |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\nff2ca5764029d451f2a728845dad12c4e950fae1\ndiff --git a/gitk b/gitk\n--- a/gitk\n+++ b/gitk\n@@ -37,7 +37,7 @@ proc getcommits {rargs} {\n \tset parsed_args $rargs\n     }\n     if [catch {\n-\tset commfd [open \"|git-rev-list --header --merge-order $parsed_args\" r]\n+\tset commfd [open \"|git-rev-list --header --topo-order $parsed_args\" r]\n     } err] {\n \tputs stderr \"Error executing git-rev-list: $err\"\n \texit 1\n------------\n"}]}