chiark / gitweb /
8dcb0df4d165b641d070c1b2c2bfd2be393e8e2f
[dgit.git] / README.git-debrebase
1 From: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 To: Sean Whitton <spwhitton@spwhitton.name>
3 Cc: debian-devel@lists.debian.org
4 Subject: Re: Feedback on 3.0 source format problems
5 Date: Fri, 6 Jan 2017 15:29:38 +0000
6
7 Sean Whitton writes ("Re: Feedback on 3.0 source format problems"):
8 > Could you explain in general terms the difference between the
9 > interchange and packaging-only branches
10
11 See modified diagram below.  Are the annotations I have added (and the
12 name change) any help ?
13
14 >  Does the packaging-only branch contain debian/ alone?
15
16 No, it also contains a complete unmodified copy of the upstream code.
17 (Except that if upstream had a debian/ directory, it is completely
18 replaced.)  Perhaps this is the wrong name.  Let's try
19 `merging-baseline'
20
21 For `3.0 (quilt)' the merging-baseline branch contains roughly what
22 you would get if you untarred the origs and the debian.tar.gz, and
23 then deleted all the patches without applying them.
24
25 Not shown on the diagram is the commit `add patch queue to
26 debian/patches', which would be needed for `3.0 (quilt)'.  This is
27 because the diagram is in terms of a sane source format, not `3.0
28 (quilt)'.  For use with quilty sources, there would be such a commit
29 (probably dgit-generated) on top of the actual upstream change
30 commits:
31
32            ------/--A!----/--B3!--%--/--> interchange view
33                 /        /          /      with debian/ directory
34                %        %          %       all upstream changes applied
35               /        /          /        3.0 (quilt) has debian/patches
36              /        2*         2*
37             /        /          /
38            2*       2          2
39           /        /          /
40          1        1          1    `merging-baseline' branch
41         /        /          /     unmodified upstream code
42     ---p-----p--A----p--B--C-->   plus debian/ (but no debian/patches)
43       /     /       /
44    --#-----#-------#-----> upstream
45
46     Key:
47
48       1,2,3   commits touching upstream files only
49       A,B,C   commits touching debian/ only
50       B3      mixed commit (eg made by an NMUer)
51       #       upstream releases
52
53      -p-      special merge, takes contents of debian/ from the
54      /         previous `merging-baseline' commit and rest from upstream
55
56      -/-      pseudomerge; contents are identical to
57      /         parent lower on diagram.
58
59       %       dgit-generated commit of debian/patches.
60               `3.0 (quilt)' only; dropped by rebase tool.
61
62       *       Maintainer's HEAD was here while they were editing,
63               before they said they were done, at which point their
64               tools generated [% and] -/- commit[s] to convert to
65               the fast-forwarding interchange branch.  (Maybe the
66               tooling is simply `dgit push'.)
67
68       !       NMUer's HEAD was here when they said `dgit push'.
69               Rebase branch launderer turns each ! into an
70               equivalent *.
71
72 Ian.
73
74 --
75 Ian Jackson <ijackson@chiark.greenend.org.uk>   These opinions are my own.
76
77 If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
78 a private address which bypasses my fierce spamfilter.