# HG changeset patch # User Durham Goode # Date 1423249495 28800 # Node ID 8b4b9ee6001ab1818463ecc242bf3989524aea42 # Parent 5a7920c4d2ea6319882770de170fa55bfa6a4b6c log: make -fr show complete history from the given revs Right now it's very obtuse to show the history of a particular rev (hg log -r 'reverse(::foo)'). This changes the -f option to make it follow history for the revs specified by -r. The current -f -r behavior is to limit the result of -r to only the commits that are ancestors of the current working copy. Changing this is a bit of a BC break, but the old behavior is A) rare, B) easy to emulate (& ::.), and C) currently undefined. The new behavior is frequently requested enough that I think the change is worth it. diff -r 5a7920c4d2ea -r 8b4b9ee6001a mercurial/commands.py --- a/mercurial/commands.py Tue Feb 24 14:12:13 2015 +0100 +++ b/mercurial/commands.py Fri Feb 06 11:04:55 2015 -0800 @@ -4478,6 +4478,10 @@ Returns 0 on success. """ + if opts.get('follow') and opts.get('rev'): + opts['rev'] = [revset.formatspec('reverse(::%lr)', opts.get('rev'))] + del opts['follow'] + if opts.get('graph'): return cmdutil.graphlog(ui, repo, *pats, **opts) diff -r 5a7920c4d2ea -r 8b4b9ee6001a tests/test-glog.t --- a/tests/test-glog.t Tue Feb 24 14:12:13 2015 +0100 +++ b/tests/test-glog.t Fri Feb 06 11:04:55 2015 -0800 @@ -2202,13 +2202,6 @@ (func ('symbol', 'rev') ('symbol', '6')))) - --- log.nodes * (glob) - +++ glog.nodes * (glob) - @@ -1,3 +1,3 @@ - -nodetag 6 - nodetag 8 - nodetag 7 - +nodetag 6 Test --follow-first and forward --rev diff -r 5a7920c4d2ea -r 8b4b9ee6001a tests/test-log.t --- a/tests/test-log.t Tue Feb 24 14:12:13 2015 +0100 +++ b/tests/test-log.t Fri Feb 06 11:04:55 2015 -0800 @@ -631,7 +631,7 @@ -log -f -r 1:tip +log -f -r '1 + 4' $ hg up -C 0 1 files updated, 0 files merged, 1 files removed, 0 files unresolved @@ -639,25 +639,24 @@ $ hg ci -Amb2 -d '1 0' adding b2 created new head - $ hg log -f -r 1:tip + $ hg log -f -r '1 + 4' + changeset: 4:ddb82e70d1a1 + tag: tip + parent: 0:67e992f2c4f3 + user: test + date: Thu Jan 01 00:00:01 1970 +0000 + summary: b2 + changeset: 1:3d5bf5654eda user: test date: Thu Jan 01 00:00:01 1970 +0000 summary: r1 - changeset: 2:60c670bf5b30 + changeset: 0:67e992f2c4f3 user: test date: Thu Jan 01 00:00:01 1970 +0000 - summary: r2 + summary: base - changeset: 3:e62f78d544b4 - parent: 1:3d5bf5654eda - user: test - date: Thu Jan 01 00:00:01 1970 +0000 - summary: b1 - - - log -f -r null $ hg log -f -r null @@ -1346,6 +1345,11 @@ date: Thu Jan 01 00:00:00 1970 +0000 summary: add foo, related + changeset: 2:c4c64aedf0f7 + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add unrelated old foo + $ cd .. Issue2383: hg log showing _less_ differences than hg diff