chiark / gitweb /
Ian Jackson [Sat, 25 Aug 2018 15:14:23 +0000 (16:14 +0100)]
git-debrebase: Prepare for calling debchange
* Add it to the .deb dependencies
* Add tstunt/debchange to the gdr tests
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 15:13:35 +0000 (16:13 +0100)]
test suite: Provide tstunt/debchange
This uses faketime to get the date right, like t-dch does.
It has to be requested with t-tstunt debchange, which nothing does
yet, so NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 15:06:03 +0000 (16:06 +0100)]
test suite: gdr-new-upstream: Check changelog is exactly right
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 17:32:56 +0000 (18:32 +0100)]
git-debrebase: gdr-merge-conflicts: Call git merge --no-edit
The default seems different in my sid chroot.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 18:15:32 +0000 (19:15 +0100)]
test suite: test-list-uptodate: Drop imports and dependencies
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 18:14:01 +0000 (19:14 +0100)]
test suite: gdr-fresh: Drop use of git-deborig and fix dependencies
b765388a4cea
"test suite: Test dgit calling git-debrebase on new debianisation"
failed to update the test dependencies, and does not work in a formal
autopkgtest run because dgit is not installed.
Additionally, Because scripts in devscripts have their own individual
dependencies, and the dependencies for git-deborig differ between
stretch and sid, It is not reasonably possible to write a dependency
which allows git-deborig to work. This is another reason why this
test does not work in a formal run (this time, failing only on
sid/buster).
So, drop use of git-deborig, and the resulting dependency on
devscripts. (dgit and git-debrebase pull in devscripts anyway, so
that is academic.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:53:48 +0000 (13:53 +0100)]
git-debrebase(5): Document new understanding of debrebase-last
Bug #907208 shows that the previous statement wasn't true.
debrebase-last is still marginally useful: we use it for deciding what
hints to print in some error messages; detecting and rejecting
attempts to convert already-converted branches; and in
`git-debrebase status'.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:53:34 +0000 (13:53 +0100)]
dgit: branch_is_gdr: Add a cautionary comment
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:37:21 +0000 (13:37 +0100)]
test suite: Test dgit calling git-debrebase on new debianisation
Now all the cases in dgit's branch_is_gdr history walker are tested:
DGIT_TEST_DEBUG=-DD tests/using-intree tests/run-all
cat tests/tmp/*.log |perl -ne 'next unless s/^branch_is_gdr \w+ //; print' |sort -u |less
Produces the same list as:
git-grep 'branch_is_gdr ' | perl -pe 's/^^dgit:\s+//' |sort |less
(With the list of gdr commit annotations the same as in the source.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:36:35 +0000 (13:36 +0100)]
git-debrebse: merge handling: Handle absence of patches via $any
This saves testing for $seriesfile existence and makes the code
slightly less tangled.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:35:55 +0000 (13:35 +0100)]
git-debrebase: make-patches: Handle case when there are no patches
Previously, we would bomb out.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:35:11 +0000 (13:35 +0100)]
git-debrebase: keycommits: Fix doc comment
There's no $dgitimport; that's $trouble.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:33:16 +0000 (13:33 +0100)]
git-debrebase: convert-to-gbp: Handle no-patches case better
In this case it's very like git-debrebase forget-was-debrebase.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:31:15 +0000 (13:31 +0100)]
git-debrebase: convert-to-gbp: Actually start from breakwater
Contrary to the documentation, this operation would start from HEAD.
It should rewind to the breakwater.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:21:51 +0000 (13:21 +0100)]
git-debrebase: make_patches_staged: Return flag, are there any patches?
All callers currently ignore the return value, so NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 12:21:09 +0000 (13:21 +0100)]
git-debrebase: gbp_pq_export: Return flag, are there any patches?
All callers currently ignore the return value, so NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 11:48:03 +0000 (12:48 +0100)]
dgit: branch_is_gdr: Put gdr commit annotations in alphabetical order
This makes it slightly easier to see our test coverage.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 11:44:05 +0000 (12:44 +0100)]
test suite: Separate t-gdr-gbp-import-core from -with-queue
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 11:32:54 +0000 (12:32 +0100)]
test suite: Test dgit branch_is_gdr walker on a merge resolution
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 09:35:29 +0000 (10:35 +0100)]
test suite: Test dgit detection of fresh branch for gdr make-patches
This tests that #907208 is fixed.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 25 Aug 2018 10:55:42 +0000 (11:55 +0100)]
test suite: gdr-diverge-nmu-dgit: Insist on gdr-generated patches
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>
Ian Jackson [Sat, 25 Aug 2018 11:31:38 +0000 (12:31 +0100)]
test suite: Honour DGIT_TEST_RUN_PFX env var
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>
Ian Jackson [Sat, 25 Aug 2018 00:05:22 +0000 (01:05 +0100)]
dgit: Replace branch_is_gdr with a history walker
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>
Ian Jackson [Sat, 25 Aug 2018 10:55:16 +0000 (11:55 +0100)]
test suite: gdr-diverge-nmu-dgit: Tolerate gdr-generated patches
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>
Ian Jackson [Fri, 24 Aug 2018 23:57:59 +0000 (00:57 +0100)]
dgit: Introduce get_tree_of_commit
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 23:44:51 +0000 (00:44 +0100)]
git-debrebase: Do not abandon quilt fixup at gdr split commits
One of these might well be in the delta queue somehow.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 23:43:17 +0000 (00:43 +0100)]
git-debrebase: Make all commit annotations have a COMMIT-TYPE
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>
Ian Jackson [Fri, 24 Aug 2018 21:35:04 +0000 (22:35 +0100)]
test suite: lib-gdr: Check that we made patches with gdr
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>
Ian Jackson [Fri, 24 Aug 2018 21:29:33 +0000 (22:29 +0100)]
test-suite: lib-gdr: Be more defensive about unexpected states/args
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:42:59 +0000 (21:42 +0100)]
git-debrebase(5): Warn against renaming branch while unstitched
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:41:55 +0000 (21:41 +0100)]
git-debrebase: Do not try split brain gdr make-patches
Print a helpful error message instead.
Closes: #906908.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:37:16 +0000 (21:37 +0100)]
git-debrebase: test suite: gdr-subcommands: test forget
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:31:49 +0000 (21:31 +0100)]
git-debrebase: forget-was-ever-debrebase: New subcommand
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:12:58 +0000 (21:12 +0100)]
test suite: gdr-import-nostitch: Test -fseries-comments
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 20:11:40 +0000 (21:11 +0100)]
git-debrebase: convert-from-*: snag on discarding comments in series
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>
Ian Jackson [Fri, 24 Aug 2018 19:31:02 +0000 (20:31 +0100)]
test suite: Make example_1.1 contain a patch with Name and Topic
This triggers #907202 and #907206.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 19:23:22 +0000 (20:23 +0100)]
git-debrebase: classify: Do not misclassify patches in subdirs
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>
Ian Jackson [Fri, 24 Aug 2018 19:20:35 +0000 (20:20 +0100)]
git-debrebase: trees_diff_walk: Support recursion
No-one specifies this yet, so NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 24 Aug 2018 19:12:41 +0000 (20:12 +0100)]
git-debrebase: Fix get_tree's memoisation wrt $recurse
$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>
Ian Jackson [Fri, 24 Aug 2018 18:56:12 +0000 (19:56 +0100)]
git-debrebase: trees_diff_walk: Refactor $all to \%opts
No callers pass this so NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 21 Aug 2018 13:40:36 +0000 (14:40 +0100)]
changelog: start 6.10
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 21 Aug 2018 13:36:41 +0000 (14:36 +0100)]
changelog: fianlise 6.9
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 21 Aug 2018 12:40:31 +0000 (13:40 +0100)]
dgit: Remove unsubstituted $changesfile from message
Closes:#906787.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 21 Aug 2018 12:31:12 +0000 (13:31 +0100)]
changelog: Document docs changes
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Sean Whitton [Mon, 20 Aug 2018 16:17:58 +0000 (09:17 -0700)]
dgit-maint-debrebase(7): Add crossreference to "ILLEGAL OPERATIONS"
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>
Sean Whitton [Mon, 20 Aug 2018 16:15:54 +0000 (09:15 -0700)]
dgit-maint-debrebase(7): Rewrite "Converting an existing package"
Closes:#905573
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Ian Jackson [Tue, 21 Aug 2018 12:33:04 +0000 (13:33 +0100)]
test suite: Update debian/tests/control following dependency fix.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 21 Aug 2018 01:08:39 +0000 (02:08 +0100)]
dgit: do not crash on push of a new gdr package. Closes:#906784.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 13:53:48 +0000 (14:53 +0100)]
changelog: start 6.9
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 13:52:22 +0000 (14:52 +0100)]
test suite: Fix dependencies of new gdr-merge-conflicts test.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 01:35:08 +0000 (02:35 +0100)]
changelog: start 6.8
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 01:30:17 +0000 (02:30 +0100)]
changelog: Finalise 6.7
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 01:08:12 +0000 (02:08 +0100)]
changelog: Reorganise and tidy up the current entry
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 00:59:08 +0000 (01:59 +0100)]
dgit: quilt fixup: Maybe mention gitattributes
These are a potential cause of quilt linearisation failure.
Closes:#906199.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 00:58:06 +0000 (01:58 +0100)]
dgit(1), dgit(7): Document that we do not suppress export attributes
Ie, ones which affect git-archive. This is related to #906199.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 00:48:04 +0000 (01:48 +0100)]
dgit: quilt fixup errors: Refactor and reword very slightly
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>
Ian Jackson [Mon, 20 Aug 2018 00:42:47 +0000 (01:42 +0100)]
dgit: quilt fixup: Do not suggest quilt modes if we see gdr
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>
Ian Jackson [Mon, 20 Aug 2018 00:41:59 +0000 (01:41 +0100)]
dgit: quilt fiuxp: linearisation failure: Add a blank line
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>
Ian Jackson [Mon, 20 Aug 2018 00:41:03 +0000 (01:41 +0100)]
dgit: quilt fixup: @failsuggestion: Include a machine-readable reason
Each entry is now an arrayref. This will let quilt_fiuxp filter them
later.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 00:24:34 +0000 (01:24 +0100)]
dgit(7): Mention bad origs as possible cause of quilt fixup failure
And document our error message changes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 20 Aug 2018 00:22:01 +0000 (01:22 +0100)]
dgit: quilt fixup error messages: Change hint emphasis
* 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>
Ian Jackson [Mon, 20 Aug 2018 00:10:26 +0000 (01:10 +0100)]
dgit: Remove a spurious space
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 23:25:36 +0000 (00:25 +0100)]
test suite: gdr-unprocessable-hints: New test
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 23:24:18 +0000 (00:24 +0100)]
git-debrebase: Provide hints for unprocessable commits
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>
Ian Jackson [Sun, 19 Aug 2018 22:58:49 +0000 (23:58 +0100)]
git-debrebase: Introduce new `fail_unprocessable'
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>
Ian Jackson [Sun, 19 Aug 2018 22:38:09 +0000 (23:38 +0100)]
git-debrebase: convert-from-*: leave debrebase-last refs
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>
Ian Jackson [Sun, 19 Aug 2018 22:37:22 +0000 (23:37 +0100)]
git-debrebase: begin_convert_from: Break out $gdrlast_obj
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 22:25:48 +0000 (23:25 +0100)]
git-debrebase: Snag on repeated conversions
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>
Ian Jackson [Sun, 19 Aug 2018 22:16:17 +0000 (23:16 +0100)]
git-debrebase: Refuse to start conversion if ffq-prev exists
Trying to rerun git-debrebase convert-from-something, on an unstitched
gdr branch, would end in tears. Forbid it utterly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 22:12:34 +0000 (23:12 +0100)]
git-debrebase: record_gdrlast: Honour $oldvalue
NFC for existing callers.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 21:54:38 +0000 (22:54 +0100)]
git-debrebase: Move ffq_prev_branchinfo up the file
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 21:45:49 +0000 (22:45 +0100)]
git-debrebase: Break out begin_convert_from & complete_...
$gdrlastinfo is undef for now, and will be used in a moment.
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 21:27:56 +0000 (22:27 +0100)]
git-debrebase: Break out record_gdrlast
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:56:24 +0000 (20:56 +0100)]
git-debrebase: get_tree: Check we got an object name
Otherwise the cache is dangerous.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:45:19 +0000 (20:45 +0100)]
git-debrebase: Merge: Make a todo about gbp not round tripping
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:44:29 +0000 (20:44 +0100)]
git-debrebase: Merges: Enable with command-line option instead of env var
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:32:57 +0000 (20:32 +0100)]
git-debrebase: New walk mechanism: Drop obsolete $opt_careful
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:31:41 +0000 (20:31 +0100)]
git-debrebase: Merge: Put off some xxx's, making them MERGE-TODO
We are going to release with this machinery in this experimental
state.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:30:32 +0000 (20:30 +0100)]
git-debrebase: Document merged-breakwater metadata tag
This is generated only by the experimental merge machinery and is
subject to possible future change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:25:16 +0000 (20:25 +0100)]
git-debrebase: Merge: Remove some xxx's
git-debrebase(5) already has ILLEGAL OPERATIONS (which forbids many
git-rebase operations) and also of course LEGAL OPERATIONS.
The limitations on what kind of merges we can resolve and how will be
documented when we document the merge machinery properly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:19:54 +0000 (20:19 +0100)]
changelog: Document changes to convert-from-gbp messages.
This is part of #906641.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:14:40 +0000 (20:14 +0100)]
git-debrebase: convert-from-gbp: Check separately for $dtag
This allows us to print a more sensible error message, Previously
git would print a fatal error, after which we carry on.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:14:19 +0000 (20:14 +0100)]
git-debrebase: convert-from-gbp: Add a missing newline to a die
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:11:49 +0000 (20:11 +0100)]
git-debrebase: convert-from-gbp: handle missing maintainer tag
Look for / in $mtag, not in $mtag_pat. Obviously it will be in the
latter. The result, before, is that we would look for a completely
bogus $dtag and print daft error messages.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 19:00:30 +0000 (20:00 +0100)]
test suite: gdr-import-nostitch: New test
Generate this situation and check it's OK. Also check that the
messages contain the expected hint.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:59:41 +0000 (19:59 +0100)]
git-debrebase: convert-from-gbp; on stitch failure, clarify message
Clarify what the preceding failure messages mean, and what the
consequences are.
This is part of #906641.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:58:09 +0000 (19:58 +0100)]
test suite: gdr-convert-gbp: Break the start out into lib-gdr
This will allow us to test other things to do with this conversion
without making tests/setup/gdr-convert-gbp more complicated.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:40:12 +0000 (19:40 +0100)]
git-debrebase: convert-from-gbp: Print a success message.
This is part of #906641.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:26:34 +0000 (19:26 +0100)]
changelog: Add close note for #905400 to changelog entry for 6.5.
The commit
git-debrebase: Properly reject bare dgit dsc imports.
fixed #905400.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:19:18 +0000 (19:19 +0100)]
test suite: gdr-convert-gbp: test snag on unused patches
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:18:42 +0000 (19:18 +0100)]
git-debrebase: convert-from-*: Snag on unused patches
Patches in d/patches which are not in series will be deleted, and not
represented in the output.
So call them a snag.
Closes:#904997.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 18:15:56 +0000 (19:15 +0100)]
git-debrebase: get_tree: Support $precheck and $recurse
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:48:47 +0000 (18:48 +0100)]
test suite: gdr-subcommands: Test raw conversion from gbp
Make a branch which strips off the pseudomerge generated by gdr to
stitch the dgit history, and then run some tests on that.
These new tests detect #905975.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:46:54 +0000 (18:46 +0100)]
test suite: gdr-subcommands: Use $peel, not $work, for a few checks
The definition of P says
P result is add-patches, remaining letters apply to result~
But this was not hnoured by N n Z. Honour it.
No change with existing tests, which do not follow P with any of
those. But, this will be important in a moment,
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:46:06 +0000 (18:46 +0100)]
test suite: gdr-convert-gbp: Save converted-from-gbp
This new branch will be useful in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:45:51 +0000 (18:45 +0100)]
git-debrebase: On rebase, always save ffq-prev
Even if we were both stitched and laundered.
Closes:#905975.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:41:40 +0000 (18:41 +0100)]
git-debrebase: `prepush' is now a silent no-op if unstitched.
This is more friendly. Update the docs accordingly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 17:04:24 +0000 (18:04 +0100)]
changelog: Add perf numbers
This is from tests on my laptop with the branch the Debian kernel
folks shared with me, ie
c6eb63c6ed0694b0d22fbe5aaff953d209a3fc4e.
avoid new
runtimes in [s] before read-tree get_differs
git-debrebase 78.574 3.699 1.419
git-debrebase status 3.359 unchanged 0.818
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 16:49:17 +0000 (17:49 +0100)]
git-debrebase: Rewrite get_differs in terms of trees_diff_walk
As noted, git-diff-tree is quite slow. We can do much better, by
stepping across the two trees ourselves.
There should be no particularly significant change: the answers should
be the same for reasonable inputs. Unreasonable inputs (particularly,
executable files etc.) may be handled better, even.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 19 Aug 2018 16:47:39 +0000 (17:47 +0100)]
git-debrebase: get_tree: Support '' for nonexistent objects
This is going to be convenient in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>