how tg-update works (was: recreating historic packages)

martin f krafft madduck at debian.org
Tue Sep 30 20:38:46 UTC 2008


also sprach Teemu Ikonen <tpikonen at gmail.com> [2008.09.30.1431 +0200]:
> 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).

topgit never rebases, by design.

What happens on tg-update is that for every out-of-date dependency,
it is merged into top-bases/$name, and then top-bases/$name is
merged into $name.

This causes top-bases/$name to point to a commit with a tree that
has all dependencies merged and up-to-date, and $name has a tree
with all dependencies and the changes tracked in $name. Thus,
tg-patch just diffs the two to get the patch. I love it!

tg-tag would simply tag the tip and the current top-base, and then
tg-patch, when given a tag, would not diff tip to top-base, but the
pair of tags.

At the time when I created topgit 0.2-1, the debian/locations branch
was at 355c550 and its base at 6433286. Thus, the patch was:

  git diff 6433286 355c550 | filterdiff -p1 -x .top\*

(the .top* files have to be removed, which tg-patch automates).

-- 
 .''`.   martin f. krafft <madduck at debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems
 
"out of the crooked timber of humanity,
 no straight thing was ever made."
                                                       -- imanuel kant
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature (see http://martin-krafft.net/gpg/)
Url : http://lists.alioth.debian.org/pipermail/vcs-pkg-discuss/attachments/20080930/0bd76f93/attachment.pgp 


More information about the vcs-pkg-discuss mailing list