recreating historic packages

Teemu Ikonen tpikonen at gmail.com
Tue Sep 30 11:05:59 UTC 2008


On Tue, Sep 30, 2008 at 12:45 PM, Stéphane Glondu <steph at glondu.net> 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



More information about the vcs-pkg-discuss mailing list