X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit-maint-debrebase.7.pod;h=e49276848d294691b26ee46a6fa093cf10172261;hp=b17833e2353c422ea8619421b31faa77dc06d39d;hb=375a065009f11f786116a81d8d3a1edde32fe96b;hpb=0824695592eda56d0505f891aaf18db40958f0d7 diff --git a/dgit-maint-debrebase.7.pod b/dgit-maint-debrebase.7.pod index b17833e2..e4927684 100644 --- a/dgit-maint-debrebase.7.pod +++ b/dgit-maint-debrebase.7.pod @@ -262,7 +262,7 @@ The first dgit push will require I<--overwrite>. =head1 GIT CONFIGURATION -git-debrebase does not yet support using B to merge +git-debrebase(1) does not yet support using B to merge divergent branches of development (see "OTHER MERGES" in git-debrebase(5)). You should configure git such that B does not try to merge: @@ -323,7 +323,7 @@ or if you have a working watch file =over 4 - % git debrebase new-upstream-v0 1.2.3 + % git debrebase new-upstream 1.2.3 =back @@ -456,7 +456,7 @@ For the first upstream release that requires DFSG filtering: % git commit -m "upstream version 1.2.3 DFSG-cleaned" % git tag -s 1.2.3+dfsg % git checkout master - % # proceed with "Importing the release" + % # proceed with "Importing the release" on 1.2.3+dfsg tag =back @@ -467,10 +467,10 @@ And for subsequent releases (whether or not they require filtering): % git checkout upstream-dfsg % git merge 1.2.4 % git rm further-evil.bin # if needed - % git commit -m "upstream version 1.2.4 DFSG-cleaned" + % git commit -m "upstream version 1.2.4 DFSG-cleaned" # if needed % git tag -s 1.2.4+dfsg % git checkout master - % # proceed with "Importing the release" + % # proceed with "Importing the release" on 1.2.4+dfsg tag =back @@ -544,13 +544,13 @@ A simple convention you can use to minimise the number of pseudomerges is to B only right before you upload or push to B. -It is possible to reduce the number of pseudomerges further by -derebasing only (i) when importing a new release, and (ii) right -before uploading. Instead of editing the existing delta queue, you -append fixup commits (and reversions of commits) that alter the -upstream source to the required state. You can push and pull to and -from B during this. Just before uploading, you -debrebase, once, to tidy everything up. +It is possible, though much less convenient, to reduce the number of +pseudomerges yet further. We debrebase only (i) when importing a new +release, and (ii) right before uploading. Instead of editing the +existing delta queue, you append fixup commits (and reversions of +commits) that alter the upstream source to the required state. You +can push and pull to and from B during this. Just +before uploading, you debrebase, once, to tidy everything up. =head2 The debian/patches directory @@ -559,16 +559,30 @@ git-debrebase(1). You should not make changes there. They will either cause trouble, or be ignored and overwritten by git-debrebase(1). +I will often be out-of-date because git-debrebase(1) +will only regenerate it when it needs to. So you should not rely on +the information in that directory. When preparing patches to forward +upstream, you should use git-format-patch(1) on git commits, rather +than sending files from I. + =head2 Upstream branches -Except in the case where upstream releases only tarballs, we do not -maintain a separate 'upstream' branch (unless you also happen to be -involved in upstream development). We work with upstream tags rather -than any branches, except temporary branches used to prepare patches -for forwarding upstream, for example. +In this workflow, we specify upstream tags rather than any branches. + +Except when (i) upstream releases only tarballs, (ii) we require DFSG +filtering, or (iii) you also happen to be involved in upstream +development, we do not maintain any local branch corresponding to +upstream, except temporary branches used to prepare patches for +forwarding, and the like. + +The idea here is that from Debian's point of view, upstream releases +are immutable points in history. We want to make sure that we are +basing our Debian package on a properly identified upstream version, +rather than some arbitrary commit on some branch. Tags are more +useful for this. -The thought behind this is that from Debian's point of view, upstream -releases are immutable points in history, better represented by tags. +Upstream's branches remain available as the git remote tracking +branches for your upstream remote, e.g. I. =head2 The first ever dgit push @@ -614,7 +628,7 @@ rebase too early. =head1 SEE ALSO -dgit(1), dgit(7) +dgit(1), dgit(7), git-debrebase(1), git-debrebase(5) =head1 AUTHOR