Subject: Re: [irq/urgent]: created 3786fc7: "irq: make variable static"

From: Ingo Molnar <[email-masked]>
Date: Wed, 22 Oct 2008 11:58:18 +0200

* Andreas Ericsson <[email-masked]> wrote:

> Ingo Molnar wrote:
>> * Andreas Ericsson <[email-masked]> wrote:
>>
>>> I imagine you'd want to use it to find out which branches you can (or 
>>> can't) merge, and in that case you need to know about all the topics  
>>> which have the commit. Assuming you don't go crazy cherry-picking and 
>>> criss-cross merging, it should only list a few. The output is not as  
>>> fancy as below, but it should be faster than the appended script (by  
>>> several orders of magnitude).
>>
>> i solved that particular problem quite well, based on suggestions in a  
>> thread earlier on the git-list. I'm using git branch --no-merged:
>>
>>  earth4:~/tip> time todo-merge-all
>>  merging the following updated branches:
>>  merging linus ... ... merge done.
>>
>>  real    0m2.865s
>>  user    0m2.580s
>>  sys     0m0.228s
>>
>> that work step used to be over a minute! There are 233 topic branches 
>> at the moment and 18 integration branches. Kudos for making this go 
>> really fast in 1.6.0.
>>
>> the thing i'm after is to see the originator branch of changes. "git  
>> name-rev" was suggested by Santi Béjar in this thread and that is  
>> exactly what i need - i'll try to integrate it into some git-log-ish  
>> output tool.
>>
>> One thing i noticed is that 'git name-rev' can be quite slow for 
>> certain commits:
>>
>>  earth4:~/tip> time git name-rev 948f984
>>  948f984 tags/tip-safe-poison-pointers-2008-05-26_08_52_Mon~1
>>
>>  real    0m2.181s
>>  user    0m2.068s
>>  sys     0m0.092s
>>
>> Which seems natural since it might have to dive back into history and  
>> cross-reference it to all names. (there's 400 branches and 450 tags in  
>> this tree, so i'm certainly pushing things!)
>>
>> But if i use that in my git-log-line summary tool it might become  
>> quadratic overhead (or worse) very quickly, with minutes of runtime.
>>
>
> What's the timing for "git branch --contains 948f984" ?
>
> "git name-rev" parses a lot more just to be able to print a pretty
> short-name (the reversed "git describe") for you to use.

it takes much longer:

 earth4:~/tip> time git branch --contains 948f984
 [... 44 branches ...]
 real    0m9.596s
 user    0m9.151s
 sys     0m0.218s

	Ingo