| Commit message (Collapse) | Author | Age |
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
| |
rsync 3.2 passes -I and -v to the remote process. These options are
no problem.
Rather than making this into an single mess of a regexp, add a new
regexp for the new rune. That's clearer and I think probably just
about as future-proof.
Closes: #963489
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
We don't want to repeat $command =~ so we need to assign the command
to $_;
No functional change with the current single pattern.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
When we get an unexpected command, it would be nice to say who is
reporting this problem and what has probably happened.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
Firstly, the -i must come at the end. (After -i come more git-rebase
options.)
Secondly, this wasn't mentioned at all in the main section for
new-upstream - only in the synopsis.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of a new upstream version, the user may wish to pass -i.
(Or other git-rebase options.)
This is handled correctly when we are deciding whether to treat
further arguments as additional piece specifications, but the new
optional upstream version commitish was mishandled in this respect.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Getopt::Long with "i:s" parses "-i something" as "-i" with a value of
"something". Maybe I didn't know this when I wrote this code,
and thought the check for $val would only reject "-isomething".
But "git-rebrebase ... -i something" is wrong because it would mean
"git-rebase -i something" and we do not permit the user to specify
their own base. So it is right to bail out in this case.
However, the message was wrong, since it refers to cuddling, and it
can be caused by a non-cuddled non-option argument.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
This will help debugging.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When man-db runs under eatmydata on buster, it (at least sometimes)
prints this message
ERROR: ld.so: object 'libeatmydata.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
(This is #963508 which I have just filed against glibc.)
Obviously it would be better if this just worked, but for now we can
definitely ignore this as it doesn't represent a bug in src:dgit's
manpages.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Currently there are none, so no functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
upstream_commitish_search used to return a commit. If it succeeded
The caller could find the tag in $tried[-1]. Both callers relied on
this unpleasant and error-prone API.
In
0bb8e2a87e3c8b5be0fce5c2491b292e9273056e
Dgit::upstream_commitish_search: fail if more than one tag exists
the algorithm was changed to keep looking, so it can reject ambiguous
situations. The result is that $tried[-1] is entirely wrong in the
success case. (This is spotted by the tagupl-baredebian test.)
It would have been possible to fix this by making
upstream_commitish_search synthesise a suitable return value for
putting in $tried, but that is absurd.
Instead give this function a sensible calling convention. It now
returns a list of the tag name (for messages etc.) and the
commitish (for use). Change both call sites.
CC: Sean Whitton <spwhitton@spwhitton.name>
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
This is a commit, not a tag. This is prepping for a change where
the tag will be here in a variable too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
|
|
|
|
| |
We should not assume we know which the user wants to merge, as
git-deborig does not.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Reported-by: David Bremner <bremner@debian.org>
Reviewed-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The first argument to the new-upstream subcommand is a version number,
not a tag name, so this instruction could never have been correct.
The user should not need usually to pass both the upstream version
number and the upstream/ tag name, either, because git-debrebase
should find it for them.
Reported-by: David Bremner <bremner@debian.org>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-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>
|
| |
|
|
|
|
| |
Closes: #945356
|
|
|
|
|
|
|
|
|
|
|
| |
The workflow given previously fails to produce a history that can work
with git-debrebase, because it has the first commit introducing
debian/ be an ancestor of the first import of the upstream source.
This is the final part of #932954.
Closes: #932954.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables simplifying runes which are more frequently to be typed.
'merge-mode' no longer need be set since in the only case where the
manpages recommend allowing `gbp import-orig` to perform a merge, a
different merge mode is required (and specified in that rune).
This is part of #932954.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a useful convention to distinguish actual upstream tags from
upstream tarball-representing tags created by the Debian package
maintainer.
Note that use of this convention is already recommended in section
"Using untagged upstream commits".
This is part of #932954.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
|
|
| |
Incorporate Sean's review comment in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=928473#57
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In #928473, Colin Watson writes:
> the use of "rewind" as a synonym for "non-fast-forwarding", while
> somewhat common in git terminology, is unfortunate. The terms seem
> to be borrowed from video playback systems, where "rewind" is often
> just the exact opposite of "fast-forward", and so when I see
> "rewinding history" in a few places in dgit(1) my initial
> interpretation is that it must mean "updating a ref to point to an
> ancestor of the commit that it previously pointed to", whereas I
> think dgit(1) means "any push that isn't a fast-forward". I don't
> know if I'm the only one for whom it has that connotation.
This makes sense. So, I am changing uses of "rewind" which do not
mean precisely going back to an ancestor.
I think we can often use the word "rewrite" for the more general
case, but there are some places where another wording is better.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
| |
Closes: #928473
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`grep -q` exits as soon as it finds a matching line, potentially
sending a SIGPIPE to git-ls-tree. We have pipefail turned on, so that
can make the whole pipeline exit nonzero, which is wrong when grep did
in fact find a match.
This solution is more readable than disabling pipefail just for this
line (as is done elsewhere in git-debpush).
Closes: #940588
Reported-by: Andrej Shadura <andrewsh@debian.org>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
|
|
|
|
| |
Closes: #950326
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some versions of gbp pq will pass broken metadata from patch files
into the env vars for git-commit-tree. Eg, #950446/#950326 where gbp
pq from buster cannot cope with binutils_2.33.90.20200122-2.dsc,
setting GIT_AUTHOR_DATE to "???" (literally, three ? marks, as copied
from the patch file libctf-soname.diff).
Work around this as follows:
* Try git-commit-tree of an empty commit message. Does it work?
If so, workaround is not needed.
* Try resetting GIT_AUTHOR_* to GIT_COMMITTER_*. Does it work now?
Ah, that is the fix!
* Otherwise, just run git-commit-tree as usual.
This code makes some perhaps-unreasonable assumptions:
* gbp's git commit-tree has the tree object as 2nd argument
(really shonky command line parsing). However, if this
assumption is violated, the result is that the git-commit-tree
attempts either fail harmlessly, or succeed harmlessly, defeating
the workaround but with no other implications.
* if a workaround is needed, it is best to throw away all the
author information, rather that try to pick and choose, or to
fix it up.
These are IMO tolerable because I think it's gbp's job to get this
right. The output from dgit (if it succeeds) will be right in terms
of tree and even in terms of commit structure.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Actually this function just sets it to the already-computed $npath,
but this is an implementation detail.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
| |
The file ../../absurd-apply-warnings is dumped to dgit's stderr.
Nothing writes to it yet, so no overall 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>
|
| |
|
|
|
|
|
| |
Closes: #935443
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Suggested-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Closes: #935084
|
|
|
|
|
|
|
| |
Suggested-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Relates-to: #935084
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
This is only a Recommends in dgit.deb so we need to pull it in
explicitly for the tests that need it.
We add the dependency unconditionally to the test suite tests that
depend on dgit, since that avoids having to track exactly when it's
needed. (This module has an Installed-Size of 228.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
dgit uses URI::Escape for archive_query_aptget.
This is a Recommends, because if you never use the aptget method you
don't need it. (But few installations can do without the aptget
method entirely.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
This script will break if rsync changes the way it passes arguments to
the peer. We need to catch that.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
I also don't agree that missing source format is a problem.
The semantics are well defined.
There are difficulties with 3.0 native (for example, that it forbids
non-native versions) so 1.0 must continue to be used so that it
continues to exist.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mannpage message on line 51 is
warning: file `<standard input>', around line 51:
table wider than line width
and refers to this line
dgit-maint-gbp(7) for maintainers already using git-buildpackage
which does in fact fit (just) in an 80-column xterm.
I hope dgit-badcommit-fixup is never going to be needed enough again
to need a manpage.
I don't agree that trailing whitespace in changelog is a problem.
Remaining messages from
lintian -EI --pedantic --no-tag-display-limit --suppress-tags=syntax-error-in-debian-changelog,changelog-empty-entry ../bpd/dgit_9.9~_multi.changes
are as follows:
W: dgit source: missing-debian-source-format
I: dgit source: older-source-format 1.0
I don't agree that source format 1.0 is wrong. There are difficulties
with 3.0 native (for example, that it forbids non-native versions) so
1.0 must continue to be used so that it continues to exist.
I also don't agree that missing source format is a problem. The
semantics are well defined.
P: dgit source: package-uses-old-debhelper-compat-version 9
W: dgit source: unnecessary-testsuite-autopkgtest-field
I like to keep things backwards compatible for a much longer time than
most people. jessie is currently oldoldstable and has dh 9.
P: dgit source: no-dep5-copyright
I don't have effort for this. I think it is largely busywork but I
would accept a patch.
I: dgit: package-contains-empty-directory usr/share/man/man5/
Avoiding this is awkward.
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-mirror-rsync
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-admin-debian
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-policy-debian
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-policy-trusting
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-repos-server
W: dgit-infrastructure: binary-without-manpage usr/bin/dgit-ssh-dispatch
In principle manpages for some of all of these would be good. But the
usefuless of these programs is largely limited to people whose
requirements are extremely similar to Debian's. Most people can just
use a normal git server.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
In
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888809
Paul Wise writes
Salsa redirects git to URLs ending in ".git/" and redirects browsers
to the URL not ending in ".git/" or ".git".
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Found by lintian.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|