git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "W. Trevor King" <wking@tremily.us>
To: "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, Jiri Slaby <jslaby@suse.cz>,
	Andreas Schwab <schwab@suse.de>, Jan Kara <jack@suse.cz>,
	Jeff King <peff@peff.net>
Subject: Re: [PATCH] tag: add -i and --introduced modifier for --contains
Date: Mon, 21 Apr 2014 21:04:43 -0700	[thread overview]
Message-ID: <20140422040443.GC9243@odin.tremily.us> (raw)
In-Reply-To: <CAB=NE6U7zYurAXNvjkHmk12Qsp9rerr=JyMjrVHrab98h9_+gQ@mail.gmail.com> <20140417221619.GA697@sigill.intra.peff.net>

[-- Attachment #1: Type: text/plain, Size: 4533 bytes --]

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

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  parent reply	other threads:[~2014-04-22  4:04 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-16 20:58 [PATCH] tag: add -i and --introduced modifier for --contains Luis R. Rodriguez
2014-04-16 22:02 ` Junio C Hamano
2014-04-16 22:35   ` Luis R. Rodriguez
2014-04-17 17:04     ` Junio C Hamano
2014-04-17 22:16       ` Jeff King
2014-04-18 16:26         ` Junio C Hamano
2014-04-22  4:04         ` W. Trevor King [this message]
2014-04-18 23:17       ` Luis R. Rodriguez
2014-04-18 23:36         ` Junio C Hamano
2014-04-22  0:38           ` Luis R. Rodriguez
2014-04-22 10:27       ` Jan Kara
2014-04-22 17:58         ` Junio C Hamano
2014-04-17  7:17   ` Andreas Schwab
2014-04-17 17:05     ` Junio C Hamano
2014-04-17 17:30       ` Andreas Schwab
2014-04-17 18:49         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140422040443.GC9243@odin.tremily.us \
    --to=wking@tremily.us \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jack@suse.cz \
    --cc=jslaby@suse.cz \
    --cc=mcgrof@do-not-panic.com \
    --cc=peff@peff.net \
    --cc=schwab@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).