summaryrefslogtreecommitdiff
path: root/TODO.BRANCH
blob: 0b28a74104d6885aa2fe68f68bae9e1cc903016d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Tag rename unfinished business
(things resulting from searching for `tag' where searching for
 `debiantag' wouldn't find them)

 - protocol version 4
      implies ability to sign new tag (this is already there
         so simply advertising version 4 will work)
      needs also new ability to sign old-format tag in split
         brain way

 - many actual tests

 - other tag should be [dgit Maintainer-Tag quilt=$quilt-mode]

 - in dopush (?), we need to sort out synthetic fast forard
    this should not depend entirely on quilt mode
    but will always be needed if quiltmode_splitbrain
     * On push, if ff fixup mode enabled, check debian/changelog,
       and maybe make fake merge, maybe in dgit view, maybe
       elsewhere ?

 - there is some confusion between $split_brain (did we actually
   generate any commits) and quiltmode_splitbrain (might we have done,
   including in previous pushes); search for $split_brain and check
   that use sites are correct


Want tests for
 - start repo with old tag, push with new tag, run
   "old" dgit to push again with new tag, push again with
   old tag
 - rejecting push of same version with one tag when then the other

Test that, where appropriate, maint view tags are pushed to dgit git repo


 * Provide --gpbpq[=:] options

 * Document --quilt=unapplied|gbp|dpm

 * Mention new --quilt=* in debian/changelog

 * Mention in-archive copy fix in debian/changelog

 * Test --quilt=*


 * IN ARCHIVE COPY Consider and implement fast-forward fixup

    - On fetch, check if specified git hash is ff from
      existing dgit branch, the same way we do for constructed
      dscs.  The .dsc tells us the git tree but not necessarily
      the git hash.

    ...ERR MAYBE...
      
         complicated there are many branches
	       dgit-repos: refs/dgit/suite
               archive dsc
	       local; remotes/dgit/dgit/suite
	                  must be ff
			  may contain dscs
               local: dgit/suite (not relevant to fetch)

         archive dsc must always be regarded
	       as ff from (or same as) dgit-repos
               err depending on version number ?

       this code is what needs changing
       	} else {
	    fail "git head (".lrref()."=$lastpush_hash) is not a ".
		"descendant of archive's .dsc hash ($dsc_hash)";
	}
       it just needs to generate the fake merge and set $hash
       the archive skew stuff is all fine with this

        xxx actually, no, we need to stop from squashing our
	lrref with + updates

 * Add in-archive-move test case