summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* test suite: Test dgit branch_is_gdr walker on a merge resolutionIan Jackson2018-08-25
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Test dgit detection of fresh branch for gdr make-patchesIan Jackson2018-08-25
| | | | | | This tests that #907208 is fixed. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-diverge-nmu-dgit: Insist on gdr-generated patchesIan Jackson2018-08-25
| | | | | | | | | Now dgit runs git-debrebase make-patches, with the result that the patch commit in this conflict will be made by gdr. This is what we want, so now that we have it, insist on it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Honour DGIT_TEST_RUN_PFX env varIan Jackson2018-08-25
| | | | | | | | | One might set this to `eatmydata', for example. (It's not a good idea to wrap run-all or the Makefile in eatmydata, because you actually want the stamp files etc. at least.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Replace branch_is_gdr with a history walkerIan Jackson2018-08-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debrebase-last approach is fundamentally wrong, because, for example, cloning a stitched laundered gdr branch from a git server does not establish debrebase-last, so dgit would make patches itself (slowly). So, instead, use git-debrebase make-patches in situations where it will succeed. We could just run it but that's slower, and it is a bit awkward because we have to consider whether gdr is installed. So provide our own implementation. It can be simpler because it only has to handle the easy cases; On testing of the new algorithm: we want to be confident that this doesn't misfire; otherwise dgit users could be inconvenienced. And we want it to work for gdr users of course. We can analyse the test coverage of the logic in branch_is_gdr by running the whole test suite and then comparing this: cat tests/tmp/*.log |perl -ne 'next unless s/^branch_is_gdr \w+ //; print' |sort -u |less with this: git-grep 'branch_is_gdr ' | perl -pe 's/^^dgit:\s+//' |sort |less Noting that we should ideally have one each of all the gdr kinds we try to recognise. Currently that shows that we are missing only: gdr merged-breakwater unmarked BreakwaterStart YES Closes: #907208. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-diverge-nmu-dgit: Tolerate gdr-generated patchesIan Jackson2018-08-25
| | | | | | | | | | We are about to extend the set of situations where dgit runs git-debrebase make-patches, with the result that the patch commit in this conflict will be made by gdr. This is good, so allow it. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Introduce get_tree_of_commitIan Jackson2018-08-25
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Do not abandon quilt fixup at gdr split commitsIan Jackson2018-08-25
| | | | | | One of these might well be in the delta queue somehow. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Make all commit annotations have a COMMIT-TYPEIan Jackson2018-08-25
| | | | | | | | Omitting this sometimes turns out to have a mistake. We are going to want to distinguish at least split from other commits. Add a COMMIT-TYPE to the others as future-proofing. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: Check that we made patches with gdrIan Jackson2018-08-24
| | | | | | | | | | | Conveniently, the places where we don't want this, and are deliberately looking for dgit-self-made patches, are gdr-makepatches7 and mix-it in gdr-subcommands; there, we don't push, so don't end up checking t-gdr-made-patches. We also add this check to the appropriate place in gdr-subcommands. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test-suite: lib-gdr: Be more defensive about unexpected states/argsIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase(5): Warn against renaming branch while unstitchedIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Do not try split brain gdr make-patchesIan Jackson2018-08-24
| | | | | | | | Print a helpful error message instead. Closes: #906908. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: test suite: gdr-subcommands: test forgetIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: forget-was-ever-debrebase: New subcommandIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-import-nostitch: Test -fseries-commentsIan Jackson2018-08-24
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: convert-from-*: snag on discarding comments in seriesIan Jackson2018-08-24
| | | | | | | | | series files can contain #-comments. The conversion process will throw them away, so complain about that. Closes: #907198. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Make example_1.1 contain a patch with Name and TopicIan Jackson2018-08-24
| | | | | | This triggers #907202 and #907206. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: classify: Do not misclassify patches in subdirsIan Jackson2018-08-24
| | | | | | | | | The old get_differs algorithm would recurse in debian/patches. The new one failed to do that. Fix that. Closes: #907206. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: trees_diff_walk: Support recursionIan Jackson2018-08-24
| | | | | | No-one specifies this yet, so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Fix get_tree's memoisation wrt $recurseIan Jackson2018-08-24
| | | | | | | | | | | | | | $recurse needs to be part of the key to the memo hash! Luckily, there is only one caller which calls with $recurse==1, check_series_has_all_patches. It ends up mishandles this situation by complaining about the directory names, as if they were unused patches. And after that no-one needs to call get_tree. Closes: #907202. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: trees_diff_walk: Refactor $all to \%optsIan Jackson2018-08-24
| | | | | | No callers pass this so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 6.10Ian Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: fianlise 6.9debian/6.9archive/debian/6.9Ian Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Remove unsubstituted $changesfile from messageIan Jackson2018-08-21
| | | | | | Closes:#906787. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Document docs changesIan Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit-maint-debrebase(7): Add crossreference to "ILLEGAL OPERATIONS"Sean Whitton2018-08-21
| | | | | | | | | | | | | There are three items under "ILLEGAL OPERATIONS": 1. We already refer to "OTHER MERGES". 2. This commit adds a crossreference to the second item. 3. The information under "Editing debian/patches" is already basically included in dgit-maint-debrebase(7). Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* dgit-maint-debrebase(7): Rewrite "Converting an existing package"Sean Whitton2018-08-21
| | | | | | Closes:#905573 Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* test suite: Update debian/tests/control following dependency fix.Ian Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: do not crash on push of a new gdr package. Closes:#906784.Ian Jackson2018-08-21
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 6.9Ian Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: Fix dependencies of new gdr-merge-conflicts test.debian/6.8archive/debian/6.8Ian Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: start 6.8Ian Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Finalise 6.7debian/6.7archive/debian/6.7Ian Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Reorganise and tidy up the current entryIan Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Maybe mention gitattributesIan Jackson2018-08-20
| | | | | | | | These are a potential cause of quilt linearisation failure. Closes:#906199. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit(1), dgit(7): Document that we do not suppress export attributesIan Jackson2018-08-20
| | | | | | Ie, ones which affect git-archive. This is related to #906199. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup errors: Refactor and reword very slightlyIan Jackson2018-08-20
| | | | | | | Make this two calls to push so we can put things in between. Also remove `to specify'; now the message fits in 80 columns. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: Do not suggest quilt modes if we see gdrIan Jackson2018-08-20
| | | | | | | If `stopped at' is a git-debrebase commit, then a non-default quilt mode is probably not the answer. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fiuxp: linearisation failure: Add a blank lineIan Jackson2018-08-20
| | | | | | | The `stopped at' commit report can be long, if there are several, or complicated, commits. Add a blank line. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup: @failsuggestion: Include a machine-readable reasonIan Jackson2018-08-20
| | | | | | | Each entry is now an arrayref. This will let quilt_fiuxp filter them later. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit(7): Mention bad origs as possible cause of quilt fixup failureIan Jackson2018-08-20
| | | | | | And document our error message changes. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: quilt fixup error messages: Change hint emphasisIan Jackson2018-08-20
| | | | | | | | | * No longer hint --quilt=smash or dpkg source --commit. These are rarely the right thing. * Hint about bad origs, instead. This is fairly common. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Remove a spurious spaceIan Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gdr-unprocessable-hints: New testIan Jackson2018-08-20
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Provide hints for unprocessable commitsIan Jackson2018-08-20
| | | | | | | | | | Depending on the apparent branch ffq state. Closes:#905005. In particular, if it doesn't look like this branch was ever used with gdr, suggest that the user is on the wrong branch, or needs to use convert-from-*. Closes:#905279. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Introduce new `fail_unprocessable'Ian Jackson2018-08-20
| | | | | | | | | This is called when we want to call `fail' because we have found an unprocessable commit. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: convert-from-*: leave debrebase-last refsIan Jackson2018-08-19
| | | | | | | To hint to everyone that this is now a gdr branch. This will make dgit push use gdr make-patches, for example. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: begin_convert_from: Break out $gdrlast_objIan Jackson2018-08-19
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Snag on repeated conversionsIan Jackson2018-08-19
| | | | | | | | | If debrebase-last says we are ahead of some previous gdr work, it is carrying on is unlikely to be helpful. It would only be sensible if the package is vacillating between branch formats, and this is reflected and visible in the branch history. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>