Re: [PATCH] tag: add -i and --introduced modifier for --contains
From: W. Trevor King <hidden>
Date: 2016-06-15 23:00:46
On Mon, Apr 21, 2014 at 05:38:34PM -0700, Luis R. Rodriguez wrote:
[0] mcgrof@ergon ~/linux (git::master)$ git log c5905afb..v3.5| grep ^commit | wc -l 24878 [1] mcgrof@ergon ~/linux (git::master)$ git log c5905afb..v3.4| grep ^commit | wc -l 13106 [2] mcgrof@ergon ~/linux (git::master)$ git log c5905afb..v3.3| grep ^commit | wc -l 1360
From gitrevisions(7), r1..r2 is “commits that are reachable from r2 excluding those that are reachable from r1”. Using Peff's example: On Thu, Apr 17, 2014 at 06:16:20PM -0400, Jeff King wrote:
---A---B---C-----D---E---F (maint, v3.4)
\ \ /
\ ---G-----H---I (master, v4.0)
\ / /
------J---
The fix is J, and it got merged up to maint at D, and to master at H.
v4.0 does not contain v3.4. What's the best description of J?J..v3.4 is going to include B, C, D, E and F. However, the “distance” used by ‘git describe’ uses the shortest path between the commits (J-D-E-F), which doesn't care about development between A and D.
The results for command [2] above however a bit surprising, I'd take a look but I should go back to look at other stuff, figured I'd at least bring it up now as it seems relevant.
Here's a simplified graph with d1-* tags for the v3.5-rc1~120^3~76^2
description and d2-* tags for the v3.4~479^2~9^2 description [1]:
* f8f5701 (tag: v3.5-rc1) Linux 3.5-rc1
* 912afc3 (tag: d1-F) Merge tag 'dm-3.5-changes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm
* 56edab3 (tag: d1-E) Merge branches 'perf-urgent-for-linus' and 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|\
| * ab0cce5 (tag: d1-D) Revert "sched, perf: Use a single callback into the scheduler"
| * 26252ea (tag: d1-C-1, tag: d1-C) perf evlist: Show event attribute details
| * a385ec4 (tag: d1-C-64) Merge tag 'v3.4-rc2' into perf/core
| |\
| * \ 659c36f (tag: d1-C-65) Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
| |\ \
| | * | 5a7ed29 (tag: d1-C-65-2) perf record: Use sw counter only if hw pmu is not detected
* | |/ 76e10d1 (tag: v3.4) Linux 3.4
| |/|
|/| |
* |/ dd775ae (tag: v3.4-rc1) Linux 3.4-rc1
|/|
* | c5bc437 Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
|\|
| * 9521d83 (tag: d1-C-66) Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
* | 9c2b957 (tag: d2-E) Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
|\ \
| |/
| * bea95c1 (tag: d2-D, tag: d1-C-67) Merge branch 'perf/hw-branch-sampling' into perf/core
| * f9b4eeb (tag: d2-C, tag: d1-C-68) perf/x86: Prettify pmu config literals
| * a706d4f (tag: d2-B, tag: d1-C-76, tag: d1-B) Merge branch 'perf/jump-labels' into perf/core
| * c5905af (tag: A) static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]()
* | c16fa4f (tag: v3.3) Linux 3.3
|/
* dcd6c92 (tag: v3.3-rc1) Linux 3.3-rc1
This shows the v3.4-rc1 bypass from 9521d83 (d1-C-66) to 659c36f
(d1-C-65) which sets up the v3.5-rc1~120^3~76 description. It also
shows the c5905afb..v3.3 commits on the branch from c5905af's fork
(between v3.3-rc1 and v3.3) and v3.3.
Cheers,
Trevor
[1]: The simplified graph is from:
$ git tag A c5905afb
$ git tag d1-B v3.5-rc1~120^3~76
$ git tag d1-C v3.5-rc1~120^3~1
$ git tag d1-D v3.5-rc1~120^3
$ git tag d1-E v3.5-rc1~120
$ git tag d1-F v3.5-rc1~1
$ for x in $(seq 76); do git tag d1-C-$x v3.5-rc1~120^3~$x; done
$ git tag d1-C-65-2 d1-C-65^2
$ git tag d2-B v3.4~479^2~9
$ git tag d2-C v3.4~479^2~1
$ git tag d2-D v3.4~479^2
$ git tag d2-E v3.4~479
$ git tag -d sound-fixes sound-3.4 v3.3-rc{2,3,4,5,6,7} v3.4-rc{2,3,4,5,6,7}
$ git log --graph --topo-order --oneline --decorate --simplify-by-decoration v3.5-rc1
…simplified graph…
$ git tag -d A d1-{B,C,D,E,F} d2-{B,C,D,E} d1-C-65-2
$ for x in $(seq 76); do git tag -d d1-C-$x; done
With some additional tweaks to cull the d1-C-* bits we don't care
about and clear up the 659c36f (d1-C-65) merge.
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy Attachments
- signature.asc [application/pgp-signature] 836 bytes