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