From: Ingo Molnar <mingo@elte.hu>
To: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Mikael Magnusson <mikachu@gmail.com>,
git@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>
Subject: Re: linux-x86-tip: pilot error?
Date: Mon, 23 Jun 2008 12:24:24 +0200 [thread overview]
Message-ID: <20080623102424.GA28192@elte.hu> (raw)
In-Reply-To: <20080623095732.GL22569@linux.vnet.ibm.com>
* Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> On Mon, Jun 23, 2008 at 09:14:41AM +0200, Ingo Molnar wrote:
> >
> > * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> >
> > > Trying "git-checkout -b tip-core-rcu
> > > tip-core-rcu-2008-06-16_09.23_Mon" acts like it is doing something
> > > useful, but doesn't find the recent updates, which I believe happened
> > > -before- June 16 2008.
> >
> > finding the rcu topic branch in -tip can be done the following way:
> >
> > $ git-branch -a | grep rcu
> > tip/core/rcu
>
> Ah!!! Good, that does show me this branch. I created a new branch
> "paulmck-rcu-2008-06-23" just out of paranoia.
that's OK - having more branches never hurts.
if, while juggling branches, you lose some commit somewhere it makes
sense to check .git/logs/. [ Up until the point Git does a
garbage-collection run and zaps any orphaned commits ;-) ]
> > if you check out that branch for your own use, you should also do:
> >
> > $ git-merge linus/master
> >
> > To bring it up to latest upstream.
>
> OK, that did pull in a number of changes. The gitk tool then shows my
> "Merge commit 'linus/master' into paulmck-rcu-2008-06-23" at the head
> of the display, with parents as follows:
>
> Parent: 31a72bce0bd6f3e0114009288bccbc96376eeeca (rcu: make rcutorture more vicious: reinstate boot-time testing)
> Parent: bec95aab8c056ab490fe7fa54da822938562443d (Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6)
>
> This means that the RCU-related changes show up discontinuously in the
> gitk display, but clicking on the left-most connector and selecting
> "parent" gets me to the rest of the tip/core/rcu branch, so should be
> OK, I guess. ;-)
i have just talked to Thomas about it and we'll change our scripting so
that the tip/core/rcu branch will always be very recent and merged up to
latest -git.
As one of the goals of the tip/* structure is to distribute topics to
others (or as Linus has put it, Thomas and me needs to become more
managerial about maintenance ;), there's real value in having the topics
appear up-to-date when people try them out.
( it's possible to do this without criss-cross merge commits - it just
needs some more creative scripting in -tip. )
> I then applied my two patches from yesterday (EDT timezone), just for
> practice.
>
> These show up after the merge.
>
> But now when I do "git-log tip/core/rcu..linus/master", I get one very
> large pile of patches. It apparently includes the stuff I merged from
> linus/master. This is expected behavior, correct?
That would be expected behavior, yes. You can try a "test-pull" into
core/rcu:
git-checkout -b test-rcu tip/core/rcu
git-merge paulmck-rcu-2008-06-23 # replace with git-pull and an URI
... and then look at how "git-log test-rcu..linus/master" looks like. It
should show all the changes of the RCU topic, your two new commits
included.
> So, if I want to identify the RCU patches since some specific Linus
> release (for example, 2.6.26-rc7), I follow the RCU parents down until
> I find the desired release tag, then generate diffs from the ranges I
> find, right?
>
> Hmmm, actually, no, this bypasses the v2.6.26-rcN tags.
>
> One approach is apparently to use gitk to create a view that includes
> the patches touching the RCU-related files. The git-log command also
> takes pathname arguments, so that allows me to get an approximation as
> well.
>
> I will have to look more at git-log and gitk -- probably I should be
> paying more attention to patches adding or deleting the strings "RCU"
> or "rcu" to the kernel. ;-)
You can use the filenames as a commit filter, for example:
git-shortlog v2.6.25.. kernel/rcu* include/linux/rcu*
Will give you a rather good view about what things changed in RCU land
in v2.6.26 so far.
To see what is queued up in -tip for v2.6.27 that affect RCU, you can
do:
git-shortlog linus/master..tip/master kernel/rcu* include/linux/rcu*
This will show tip/core/rcu changes. Not unsurprisingly this will show
something quite similar to:
git-shortlog linus/master..tip/core/rcu
... as all RCU patches are supposed to be in that topic branch. [ But it
does not hurt to double check me on that :-) ]
The widest search that doesnt involve the checking of around 100,000
commits is the tip-log-line utility you can find in the tip/tip branch.
Via that utility you can filter out all interesting RCU commits:
tip-log-line kernel/rcu* include/linux/rcu*
it will output a tidy list of branches, sha1's and subject lines.
(you'll probably first need to run tip-create-local-branches.sh to
create local branches out of all the tip topics.)
for example, to see RCU affecting changes not queued up in tip/core/rcu,
you can do:
~/tip> tip-log-line kernel/rcu* include/linux/rcu* | grep -v ' core/rcu:'
# core/softirq: 962cf36: Remove argument from open_softirq which is always NULL
# core/softirq: a60b33c: Merge branch 'linus' into core/softirq
# cpus4096: 363ab6f: core: use performance variant for_each_cpu_mask_nr
> Is there some way to determine whether a give patch has a tagged patch
> (e.g., v2.6.26-rc7) as a child? It would be very cool to be able to
> dump only those patches that are not part of v2.6.26-rc7, as this
> would allow me to automatically generate the list of RCU-related
> patches from linux-2.6-tip to test against this RC.
if i understood you correctly, git-describe will do that for you
normally. If you have an sha1 you can do:
$ git-describe 481c5346d0981940ee63037eb53e4e37b0735c10
v2.6.26-rc7-25-g481c534
Ingo
next prev parent reply other threads:[~2008-06-23 10:25 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-22 12:36 linux-x86-tip: pilot error? Paul E. McKenney
2008-06-22 12:48 ` Mikael Magnusson
2008-06-22 13:21 ` Paul E. McKenney
2008-06-22 21:11 ` Mikael Magnusson
2008-06-22 21:42 ` Björn Steinbrink
2008-06-22 22:21 ` Paul E. McKenney
2008-06-23 7:14 ` Ingo Molnar
2008-06-23 9:57 ` Paul E. McKenney
2008-06-23 10:24 ` Ingo Molnar [this message]
2008-06-23 11:11 ` Paul E. McKenney
2008-06-23 11:22 ` Ingo Molnar
2008-06-23 16:14 ` Daniel Barkalow
2008-06-23 15:12 ` Jeff King
2008-06-23 15:31 ` Ingo Molnar
2008-06-23 16:05 ` Ingo Molnar
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=20080623102424.GA28192@elte.hu \
--to=mingo@elte.hu \
--cc=git@vger.kernel.org \
--cc=mikachu@gmail.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=tglx@linutronix.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).