mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
34df768136
Summary: This could help simplify the graph a lot for repos with lots of merges. For example, logging tags on linux.git looks like: o fb893de3 Yesterday at 17:28 master ├─┬─┬─┬─┬─┬─┬─┬─┬─┬─╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o bcf87687 Aug 02 at 14:21 v5.8 ╷ ╷ ╷ ╭─────┬─┬───┬─╯ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o 92ed3019 Jul 26 at 14:14 v5.8-rc7 ╷ ╷ ╷ ╭─────┬─┬─┬─╯ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ba47d845 Jul 19 at 15:41 v5.8-rc6 ╷ ╷ ╷ ╭─┬─┬─┬─┬─╯ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o 11ba4688 Jul 12 at 16:34 v5.8-rc5 ╷ ╷ ╷ ╭─┬─┬─┬─╯ ╷ ╷ ╷ ╷ ╷ ╷ o dcb7fd82 Jul 05 at 16:20 v5.8-rc4 ╷ ╷ ╷ ╭─┬─┬─┤ ╷ ╷ ╷ ╷ ╷ o ╷ 9ebcfadb Jun 28 at 15:00 v5.8-rc3 ╷ ╷ ╭─┬─┬─╯ ╷ ╷ ╷ ╷ ╷ o ╷ 48778464 Jun 21 at 15:45 v5.8-rc2 ╷ ╷ ╷ ╭─╯ ╷ ╷ ╷ ╷ o ╷ b3a9e3b9 Jun 14 at 12:45 v5.8-rc1 ╭─┬─┬─┼─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─╮ ╷ ╷ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ 3d77e6a8 May 31 at 16:49 v5.7 ╭─┬─┴───────┬───────────┬─┬───┬─╮ ╷ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ 9cb1fd0e May 24 at 15:32 v5.7-rc7 ╷ ╰─────────┬─────────────┬─┬─┬─╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o b9bbe6ed May 17 at 16:48 v5.7-rc6 ╭───────────┬─────────────┬─┬─┬─╯ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o 2ef96a5b May 10 at 15:16 v5.7-rc5 ╭───────────┬─────────────┬─┬─╯ ╷ ╷ ╷ ╷ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ 0e698dfa May 03 at 14:56 v5.7-rc4 ╭───────────┴───────────┬─┬─╮ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ 6a8b55ed Apr 26 at 13:51 v5.7-rc3 ╰─────────────────┬───────┬─╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ae83d0b4 Apr 19 at 14:35 v5.7-rc2 ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╭─┤ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ╷ 8f3d9f35 Apr 12 at 12:35 v5.7-rc1 ╭─┬─┬───────┬─────┬─┬─┬─┬─┼─╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ╷ ╷ 7111951b Mar 29 at 15:25 v5.6 ╷ ╭─────────┬─────┬─┬─┬─┴───╮ ╷ ╷ ╷ ╷ ╷ ╷ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ 16fbf79b Mar 22 at 18:31 v5.6-rc7 ╷ ╷ ╭───────┴─────┬─┬─┬─────╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o fb33c651 Mar 15 at 15:01 v5.6-rc6 ╷ ╭─┬─────────────┬─┬─┬─────╯ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ╷ 2c523b34 Mar 08 at 17:44 v5.6-rc5 ╷ ╭─┬─────────────┬─┬─╯ ╷ ╷ ╷ o ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ 98d54f81 Mar 01 at 14:38 v5.6-rc4 ╷ ╭─┴─────────────┬─╮ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ o ╷ f8788d86 Feb 23 at 16:17 v5.6-rc3 .... And with simplification turned on, it looks like: o fb893de3 Yesterday at 17:28 master ├─╮ o ╷ bcf87687 Aug 02 at 14:21 v5.8 ╷ ╷ o ╷ 92ed3019 Jul 26 at 14:14 v5.8-rc7 ╷ ╷ o ╷ ba47d845 Jul 19 at 15:41 v5.8-rc6 ╷ ╷ o ╷ 11ba4688 Jul 12 at 16:34 v5.8-rc5 ╷ ╷ o ╷ dcb7fd82 Jul 05 at 16:20 v5.8-rc4 ╷ ╷ o ╷ 9ebcfadb Jun 28 at 15:00 v5.8-rc3 ╷ ╷ o ╷ 48778464 Jun 21 at 15:45 v5.8-rc2 ├─╯ o b3a9e3b9 Jun 14 at 12:45 v5.8-rc1 ╷ o 3d77e6a8 May 31 at 16:49 v5.7 ╷ o 9cb1fd0e May 24 at 15:32 v5.7-rc7 ╷ o b9bbe6ed May 17 at 16:48 v5.7-rc6 ╷ o 2ef96a5b May 10 at 15:16 v5.7-rc5 ╷ o 0e698dfa May 03 at 14:56 v5.7-rc4 ╷ o 6a8b55ed Apr 26 at 13:51 v5.7-rc3 ╷ o ae83d0b4 Apr 19 at 14:35 v5.7-rc2 ╷ o 8f3d9f35 Apr 12 at 12:35 v5.7-rc1 ╷ o 7111951b Mar 29 at 15:25 v5.6 ╷ o 16fbf79b Mar 22 at 18:31 v5.6-rc7 ╷ o fb33c651 Mar 15 at 15:01 v5.6-rc6 ╷ o 2c523b34 Mar 08 at 17:44 v5.6-rc5 ╷ o 98d54f81 Mar 01 at 14:38 v5.6-rc4 ╷ o f8788d86 Feb 23 at 16:17 v5.6-rc3 .... Under the hood, the difference is how `reachableroots` gets calculated. See also D22657197 (a5c36fd0b1
) and D22368827 (da42f2c17e
). Since the old behavior almost always seems confusing to human. The new config is turned on by default (but only takes effect if the "segments" backend is used). Reviewed By: sfilipco Differential Revision: D23095468 fbshipit-source-id: f0fc631d2d9a00e3b36744e4236b43d230d10687
54 lines
821 B
Perl
54 lines
821 B
Perl
$ setconfig format.use-segmented-changelog=1
|
|
$ newrepo
|
|
$ drawdag << 'EOS'
|
|
> E
|
|
> |
|
|
> D
|
|
> |\
|
|
> B C
|
|
> |/
|
|
> A
|
|
> EOS
|
|
$ hg bookmark -r $A v1
|
|
$ hg bookmark -r $B v2
|
|
$ hg bookmark -r $E v3
|
|
$ hg debugmakepublic -r $E
|
|
|
|
With simplify-grandparents disabled:
|
|
|
|
$ setconfig log.simplify-grandparents=0
|
|
|
|
$ hg smartlog -T '{desc} {bookmarks}' --config extensions.smartlog=
|
|
o E v3
|
|
:\
|
|
: o B v2
|
|
:/
|
|
o A v1
|
|
|
|
$ hg log -Gr 'bookmark()' -T '{desc} {bookmarks}'
|
|
o E v3
|
|
:\
|
|
: o B v2
|
|
:/
|
|
o A v1
|
|
|
|
With simplify-grandparents enabled:
|
|
|
|
$ setconfig log.simplify-grandparents=1
|
|
|
|
$ hg smartlog -T '{desc} {bookmarks}' --config extensions.smartlog=
|
|
o E v3
|
|
:
|
|
o B v2
|
|
|
|
|
o A v1
|
|
|
|
|
|
$ hg log -Gr 'bookmark()' -T '{desc} {bookmarks}'
|
|
o E v3
|
|
:
|
|
o B v2
|
|
|
|
|
o A v1
|
|
|