On Tue, Sep 30, 2008 at 12:45 PM, Stéphane Glondu <[EMAIL PROTECTED]> wrote: > Teemu Ikonen wrote: >> First, find a path from tagged release commit in master to the commit >> in topgit branch patch/x preceding the commit in master where patch/x >> was last merged in. Let's call this commit Px. Next, starting from Px, >> find the commit in top-bases/patch/x preceding the last merge of >> top-bases/patch/x to patch/x and call this commit Bx. The patch can >> then be recreated from diff(Bx, Px) and .topmsg at Px. > > top-bases/* are just references, right? If so, I don't see what you mean > by "find the commit in top-bases/patch/x [...] and call this commit Bx". > How would you achieve this?
AFAIK, all branches in git are "just references", and branch names are not stored in commit objects. The proposed program would have to do a preliminary pass through the revision graph starting from the branch heads (patch/x and top-bases/patch/x) and tag all the commits it can reach as belonging to these branches. Gitk already does this to show which branches a given commit belongs to and it does it reasonably fast, at least on my smallish repositories. Teemu _______________________________________________ vcs-pkg-discuss mailing list firstname.lastname@example.org http://lists.alioth.debian.org/mailman/listinfo/vcs-pkg-discuss