On Tue, Sep 30, 2008 at 1:28 PM, Stéphane Glondu <[EMAIL PROTECTED]> wrote: > Teemu Ikonen wrote: >> 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. [...] > > Sure, but you are assume topbases/* are behaving like branches, which > they are not. Correct me if I'm wrong, but it seems that these > references basically "randomly" jump with topgit.
Well, "tg help update" says (in topgit 0.3): Update the current topic branch wrt. changes in the branches it depends on and remote branches. This is performed in two phases - first, changes within the dependencies are merged to the base, then the base is merged into the topic branch. The output will guide you in case of conflicts. In case your dependencies are not up-to-date, tg update will first recurse into them and update these. If a remote branch update brings dependencies on branches not yet instantiated locally, you can either bring in all the new branches from the remote using 'tg remote --populate' or only pick out the missing ones using 'tg create -r' ('tg summary' will point out branches with incomplete dependencies by showing an '!' near to them). TODO: tg update -a for updating all topic branches This would indicate that bases are managed by merging (which naturally can be a fast-forward merge) and not rebasing or otherwise rewriting history. The same applies for topic branches, which are merged to the latest base (and not rebased). I haven't checked the implementation though, so there might be something more complicated going on behind the scene. Teemu _______________________________________________ vcs-pkg-discuss mailing list email@example.com http://lists.alioth.debian.org/mailman/listinfo/vcs-pkg-discuss