| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
NFC for existing callers.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
$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>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Otherwise the cache is dangerous.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
We are going to release with this machinery in this experimental
state.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
This is part of #906641.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
Even if we were both stitched and laundered.
Closes:#905975.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
This is more friendly. Update the docs accordingly.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
This is going to be convenient in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
When we localise, we get a new variable, rather than localising the
binding imported from Debian::Dgit. How annoying.
Also, add two new debug prints at level 3.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See
git-debrebase: Prep for avoid read-tree in walk when not rewriting
for the motivation.
Here we try to check that the commit we would make, if we were
actually calling read-tree, write-tree and hash-object, would be
identical to the one we are reusing.
In particular, we check that the upstream files, and the debian/
directory, have the contents we would feed to read-tree. And we check
that the parent list is the same.
With these checks this new algorithm is, I think, safe enough to just
use always. So set $opt_careful to 0. We will abolish this
variable in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are ways to avoid calling git-diff-tree, which is very slow even
with --name-only --no-renames and without recursion. I think it is
doing all the work to make nice actual diffs, and then throwing them
away.
Two calls to git-ls-tree is about 20x faster than git-diff-tree
on the Linux kernel, for example.
No functional change in this commit, since no callers yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because the git index is a flat list of files, not a directory
hierarchy, git-read-tree can be very slow. We want to avoid it
if possible.
Introduce a new way of working, where we defer calls to read-tree.
In detail:
* $read_tree_upstream and $read_tree_debian, which are the only ways
that walk invokes read-tree, simply record their argument;
* The actual read-tree is done just before the write-tree and
commit generation. read_tree_upstream, conveniently, does both
halves, if it gets both arguments.
* Put all of the read-tree and commit regeneration in a branch
triggered if we are rewriting or "trying to be careful".
Right now we are always careful, but I have tested this with a hack
setting $opt_careful to 0, and the performance on the example branch
in #905995 is much improved: 3.4s rather than 77s for `git-debrebase'.
This is not suitable for enabling in its current form. I want to
actuallly abolish the $opt_careful, and, instead, check with
get_differs or git-cat-file that the tree segments, and the parent
lists, are identical.
When we do that we won't be checking any more that the commit
generation can generate identical commits when not rewriting. But it
doesn't really matter much any more provided the commits are
well-formed and right, and the test suite will check that.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
We are going to make these do something more efficient, sometimes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
And, destroy it on scrap.
Nothing consumes this yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
We use @deferred_updates to see if we actually did anything for
--noop-ok purposes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Right now this seems to be able to generate some commit, but
it doesn't know how to record it.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
We're about to reuse this.
NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
We are going to want this in a moment.
No overall functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
We are going to want this in a moment.
NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
We are going to make some of this into its own sub, and copying the
convenience functions seems annoying, so do this.
NFC.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
NFC
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
git-update-ref hates us if we delete a ref and reintroduce it, in the
same transaction. In this case we don't mind doing it in two goes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|