also sprach Teemu Ikonen <[EMAIL PROTECTED]> [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 <[EMAIL PROTECTED]>
: :'  :  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

Attachment: digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)

Reply via email to