| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
Otherwise the user will be disappointed shortly.
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are going to allow $overwrite_version to be "", in which case we
will have to use $i_arch_v->[0] instead.
Right now both are the same because if $overwrite_version is defined
(as it must be in plain_overwrite_pseudomerge),
pseudomerge_version_check will call infopair_cond_equal - so, no
functional change right now.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
Move the calculation of whether to put "--overwrite=" in the message
into the common code.
No functional change.
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>
|
|
|
|
|
|
|
| |
There are probably not many users relying on the default config, so
push forward with it for the benefit of new users.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Currently there is no commnad line option to set this, so there is no
way to exercise this functionality.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
We are going to want to reuse these. It's a bit tangled, but this
seems better than a single pseudomerge_make function with a bunch of
iffery.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
The code only makes tag formats `old' and `new'. Make it easier to
add a new tag format config item entry later.
No functional change with existing configurations.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
No functional change with existing callers.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
We are going to want to reuse these in a moment.
No functional change other than to debug output.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Technically, `0' is a valid version number, but it is falsish.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Fixes a bug where rpush would always make two tags even for a
non-`3.0 (quilt)' package.
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>
|
|
|
|
|
|
|
|
|
| |
This avoids potential accidents: git gc --auto might otherwise run and
do very undesirable things to the user's working tree. (I haven't
been able to trigger such a situation deliberately and none has been
reported, luckily...)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
Our algorithm for calculating whether to do a pseudomerge to make the
dgit view fast forward from the archive contents depends on the
maintainer view tag (effectively, it uses it to go back from the
archive contents dgit view back to the corresponding maintainer view).
So we need to push it too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
This is less code, and takes advantage of the memoisation.
No overall functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
We now get the changelog with mergeinfo_getclogp (which just fetches
the changelog blob). This working tree is not used for anything else,
and is deleted at the end of the function. So there is no need to
switch branches.
There should be no overall behavioural change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
No overall functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
Quilt fixup may generate a dgit view, which is not HEAD, and it is the
dgit view which will actually be pushed to the archive, so it is that
that should be checked.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
We need to do this after the quilt fixup, because we are going to make
quilt fixup perhaps generate a pseudo-merge.
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>
|
|
|
|
|
|
|
|
|
|
| |
All the call sites currently treat the return value as a boolean, and
the truthiness and falsishness of return values is unchanged, so there
is no overall functional change.
Also, clarify the head comment somewhat.
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>
|
|
|
|
|
|
|
| |
We may still need to apply, and then unapply, the patches, so as to
clean the tree. But gbp itself expects a patches-unapplied tree.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
That makes it idempotent.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
Fetch only the refs we (think we) are going to use, and delete the
lrfetchrefs (`refs/dgit-fetch/...') versions of those we give another
name to.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
git-fetch has some very poor behaviours. Implement a non-insane
version.
We are going to want to not fetch things we aren't going to use, and
this is necessary for that.
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Big comment explains.
Amongst other things:
* Introduce the mergeinfo concept
* Abolish fetchspec in favour of lrfetchref
* Synthesize a pseudo-merge linking the archive's .dsc with the dgit
server's git branch, as appropriate.
* Introduce mergeinfo_version.
I have tried to ensure that where the import done by previous versions
of dgit would be correct, the new import is the same.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We introduce a new `maint' possibility in to the dgit-tag-format
access cfg list, presence of which indicates that the receiver is
content to receive DEP-14-style maintainer-view (ie, non-dgit0 tags.
For now, we default this to true. However, repos handled by
dgit-repos-server cannot currently cope with this, because:
* dgit-repos-server currently tries to be compatible with old
dgits which send DEP-14-named dgit tags;
* dgit-repos-server doesn't currently permit the creation of
`extraneous' (ie, non-dgit) tags and branches.
So for Debian, we do not set this flag.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
push_tagwants gets a new argument, $maintviewhead, which is defined
iff the quilt mode means we want split tags. It then specifies the
generation of both tags.
push_mktags gains the ability to make the new `maint' view tag (and
checks that the view is not something else unexpected).
Introduce a function debiantag_maintview for calculating the
maintainer's idea of the tag. Currently we use DEP-14 encoding (and
this function is a clone-and-hack of Dgit.pm::debiantag_old, but
perhaps we should do something more complicated (depending on the
quilt mode).
For now we do not push the maint view tag anywhere. The ability to do
that, where appropriate, will come in a moment.
This commit introduces protocol version 4, which includes the new
`maint-view' param. When have a split brain quilt mode, we need to be
sure that we're using protocol version 4 or out peer may not honour
this, resulting in an annoying failure later (the responder sending a
different number of tags to the number expected).
We also have to check that we're using the new tag format (or we might
want to try to generate two different tags with the same name, which
is madness).
When the quilt mode is not a split brain one, this whole commit should
produce no overall functional change (even though a higher protocol
version may be negotiated).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are going to have different branches at once. Rename some
variables to permit this distinction.
We have $actualhead (whatever HEAD is), $dgithead (the dgit view), and
$maintviewhead (the maintainer's view if different, or undef if not0.
Change the existing references. Also change one reference to HEAD to
$dgithead: when we update the local tracking ref for the dgit view, we
need to use $dgitview.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are going to want to generate two tags. The current code structure
is not really set up for this. Also the knowledge of what tags are
being made needs to be used both in dopush and in the push responder.
So:
* Introduce push_tagwants, which calculates which tags we are going
to be making, including some details of them.
* `View' indicates which tag this is. For now there is only one,
`dgit'. But the tags are going to be in a defined order - or,
at least, the `dgit' tag will come first.
* Have push_parse_changelog no longer return the single tag name,
and abolish the corresponding $i_tag varaiable.
* push_mktag bcomes push_mktags and takes much of its instruction
from @$tagwants.
* push_mktags does more than just making tags - it also updates
the dsc, and does some checks, so it needs to fish the relevant
object id out of the dgit view tag.
* $mktag in push_tagwants can now operate on a tagwant, and
the tag-making part of push_mktags just iterates over the tagwants.
* The filename plumbing in dopush is somewhat generalised: we
collect the filenames out of push_mtags or responder_receive_files,
and then substitute them into the tagwants.
* The tag checking iterates over the tagwants.
* The push spec computation iterates over the tagwants.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|