Re: Gitk feature - show nearby tags
- From
- Marco Costalba <mcostalba@gmail.com>
- Date
- Jun 4, 2006, 10:42 UTC
- Message-ID
- <e5bfff550606040342q5e485ae2lcc00e36ed405be8c@mail.gmail.com>
- In-Reply-To
- <e5bfff550606040333h1180bbep88fa90ea9928d062@mail.gmail.com>
On 6/4/06, Marco Costalba <mcostalba@gmail.com> wrote:
Show 20 quoted lines
> On 6/4/06, Junio C Hamano <junkio@cox.net> wrote: > > "Marco Costalba" <mcostalba@gmail.com> writes: > > > > > In a less corner case, just to better explaing my idea, consider this: > > > > > > a---b---d---e---f---g---h > > > t1 \ / t3 > > > ---c > > > t2 > > > > > > Where our sha1 is still "e", in this case > > > > > > git-rev-list --topo-order <e> ^a ^c ^g > > > > > > gives, as last revision in output list, "f" > > > Then parentOf(<f>) is <g> and our looked for tag is t3 > > > > Sorry, in the example time flows from left to right. If you > > exclude g then you are excluding everything that is reachable > > from g so you would not see "f".
To better explain what I mean, that's the algorithm :
cmd = "git-rev-list --topo-order --parents " + sha;
for (uint i = 0; i < tagList.count(); i++)
cmd.append(" ^" + tagList[i]);output = run(cmd);
if (output.isEmpty()) {
parent = parentOf(sha);
return (parent && parent->isTag()) ? parent->tag() : NO_TAG;
}lastSha = getLastLine(output); parent = parentOf(lastSha); return (parent && parent->isTag()) ? parent->tag() : NO_TAG;