summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* git-debrebase: merge: Add a comment about rewritingIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Remove a redundant checkIan Jackson2018-08-11
| | | | | | | MergedBreakwaters commits are now handled by a completely other branch of the if, so this check is now redundant. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: mergedbreakwaters_anchor: Check consistencyIan Jackson2018-08-11
| | | | | | | Check that the result contains all the other anchors. This is ensured by walk, and required of VanillaMerges. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Avoid needlessly walking MergedBreakwatersIan Jackson2018-08-11
| | | | | | | We will not ever need to rewrite one of these, so we can just ask keycommits for its anchor. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: test suite: Use t-ref-same-startIan Jackson2018-08-11
| | | | | | | | This is better than t-gdr-good laundered because (i) it is faster (ii) it checks that the second laundry was a no-op (and did not rewrite unnecessarily). Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: test suite: test avoiding re-merge of debian/Ian Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Avoid asking user to re-merge debian/Ian Jackson2018-08-11
| | | | | | | If it had conflicts, they will have been resolved earlier and we can just take that resolution. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: test suite: Do a bit more testingIan Jackson2018-08-11
| | | | | | We can now call t-gdr-good laundered, because it works. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: t-gdr-good: Handle MergedBreakwatersIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Add another xxx commentIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: walk: Reintroduce the local $read_tree_upstream subIan Jackson2018-08-11
| | | | | | | | | | | | | | | Now that we have the $tree_with_debian parameter to the global read_tree_upstream, we can use it to avoid the git-write-tree call and pass $build as the $tree_with_debian. This thus partially reverts dfc092e0ec3d932e51a071000519477d0e33525c git-debrebase: Make read_tree_upstream global (nfc) The combined effect is now that $read_tree_upstream does exactly the git commands it did before. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Get debian/ parts of new patch queue rightIan Jackson2018-08-11
| | | | | | | | | | We want the newly generated delta queue commits to have the $newbase's debian/. Previously we let read_tree_upstream save and restore debian/, but the contents of debian/ in the index are not right: they're the result of the git merge, which is whatever is left over from earlier. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: read_tree_upstream: New $tree_with_debian parameterIan Jackson2018-08-11
| | | | | | | | If not passed, this function does the same as it did before. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Generate some more debugging commitsIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: keycommits: Handle merged-breakwater commitsIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: keycommits: New $claimed_bw optional argumentIan Jackson2018-08-11
| | | | | | No users yet, so NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Generate merged-breakwaters with correct metadataIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: keycommits: Break out $found_anchorIan Jackson2018-08-11
| | | | | | We are going to want to reuse this. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: t-gdr-good: Introduce t-gdr-analyseIan Jackson2018-08-11
| | | | | | | | NFC This will allow us to recurse. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: t-gdr-good: Introduce $analIan Jackson2018-08-11
| | | | | | NFC Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Check that merge resolution is correctIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Comment about laundry of merge of unstitchedIan Jackson2018-08-11
| | | | | | | | I have concluded that this is not a problem avoidable by git-debrebase, and that any trouble will be tolerable (at least, not data loss). The user should try to avoid doing this. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Improve some xxx commentsIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: test suite: Test both with and without `after'Ian Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Do not sometimes drop the first patch!Ian Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Set $debugcmd_when_debuglevel = 2Ian Jackson2018-08-11
| | | | | | | | | | | This produces much better (less noisy) debug output. git-debrebase calls subcommands an awful lot and they are generally very uninteresting. If this now turns out to be insufficient, we will add additional calls to printdebug. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: printdebug: Selectively print $debugprefix, and add a docIan Jackson2018-08-11
| | | | | | | | | Remember whether the last printdebug ended in a \n. If it didn't, suppress printing the next newline. I don't think anywhere calls printdebug without @_ right now. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: printdebug: Strip empty strings from @_ and maybe quit earlyIan Jackson2018-08-11
| | | | | | Now the meat of the function always has nonempty $_[-1]. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: printdebug: Break apart the printIan Jackson2018-08-11
| | | | | | NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: printdebug: Refactor slightlyIan Jackson2018-08-11
| | | | | | This will make the next commits easier. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Reverse argumennts to check diff error messageIan Jackson2018-08-11
| | | | | | | | | | "Old, new" is more conventional. This makes debug output and error messages a bit easier to understand. We must keep the backward order for get_differs because we need to detect patch deletion, which shows up (reversed) as D_PAT_ADD. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Add a lot of printdebugIan Jackson2018-08-11
| | | | | | | | | | | | We also operated on sorted patch lists, and reorganise the prereq computation slightly, to make this possible. This `print DEBUG ... if' is not very nice. This is needed because printdebug unconditionally prints $debugprefix. These new debug prints are nearly the first which want to do multi-stage printing outside dgit (and dgit normally operates without $debugprefix set). Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Introduce $debugcmd_when_debuglevelIan Jackson2018-08-11
| | | | | | | | | This is also intended to be usefully localisable, and works by localising $printdebug_when_debuglevel. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* Dgit.pm: Introduce $printdebug_when_debuglevelIan Jackson2018-08-11
| | | | | | | | This is intended to be usefully localisable. NFC. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Detect octopi laterIan Jackson2018-08-11
| | | | | | | | | If git-debrebase or dgit were to make an octopus merge, we should recognise that as an unknown kind of gdr/dgit merge, not as a general octopus merge. This code motion leaves a spot where such a new kind of merge could be classified. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: merge: Add an xxxIan Jackson2018-08-11
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: test suite: New gdr-merge testIan Jackson2018-08-11
| | | | | | | | This still has a lot of xxx's, but as it is right now it passes, despite all the bugs. This seems like a reasonable baseline for more work. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: New merge handing, experimental and preliminaryIan Jackson2018-08-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Classification: * Classify octopus merges as unknown, separately * Classify 2-parent general merges as VanillaMerge, if feature enabled * Introduce new merged-breakwater commit tag, classify as MergedBreakwaters * Classify other gdr-generated 2-parent merges as unknown Inspection (keycommits): * VanillaMerge commits require laundry, much like dgit imports, and prevent discernment of the actual breakwater and anchor Laundry (walk): * Rewrite VanillaMerge using new merge_series function Test suite: * We get a slightly different error message in gdr-unprocessable, now. Later, when we make this non-experimental all the time, we are going to have to soup up gdr-unprocessable to make a worse test commit. There are a lot of known bugs and infelicites, marked with "xxx". There is a test (which will appear in a moment) but it's rather a poor test, so there will be many uknown bugs. So all of this is enabled only if GIT_DEBREBASE_EXPERIMENTAL_MERGE is set in the environment. (Strictly, only the classification is gated, but that is sufficient.) No significant functional change without this setting. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: read_tree_upstream: New option $keep_patchesIan Jackson2018-08-11
| | | | | | NFC with existing callers. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Improve ffq head recording messageIan Jackson2018-08-10
| | | | | | | | Say `recorded _previous_ head' rather than `current head'. Since by the time the message appears, it's the previous head. In particular, `current' is very confusing if there were previous progress messages. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: gitattributes: Change a comment from xxx to todoIan Jackson2018-08-10
| | | | | | This is not so critical. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Fix a spelling error `$merginputs' to `$mergeinputs'Ian Jackson2018-08-10
| | | | | | No functional change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* dgit: Drop an obsolete xxx commentIan Jackson2018-08-10
| | | | | | | | | | This comment comes originally from a WIP commit e0ebbc5879c01d4c3e802101e146c5fb08bc9d49 I have in before-rebase.2016-11-07. In that commit, @merginputs did not exist. Now it does, and that is how the ref comes out. So this comment is obsolete. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Make read_tree_upstream global (nfc)Ian Jackson2018-08-10
| | | | | | Save debian/ explicitly. This is a bit annoying. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Make read_tree_debian global (nfc)Ian Jackson2018-08-10
| | | | | | | We can't easily do this to read_tree_upstream because that needs to put debian/ back which is awkward. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: lib-gdr: Break out t-gdr-prep-new-upstreamIan Jackson2018-08-10
| | | | | | | This does not include `git tag' for the upstream, because gdr-newupstream wants to test the case where the tag is missing. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* test suite: t-some-changes: Allow control of which files are editedIan Jackson2018-08-10
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: Break out gbp_pq_export (nfc)Ian Jackson2018-08-10
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* git-debrebase: walk: Introduce $report_lprefix (nfc)Ian Jackson2018-08-10
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
* changelog: Start 6.7Ian Jackson2018-08-05
| | | | Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>