| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoids the user pushing things that will inevitably be REJECTed.
We end up introducing some new config and force options to support
this.
We do not reuse test_source_only_changes, as it doesn't have quite the
right shape (in particular, it sometimes blithers on stdout). Also
arguably it is better to look, specifically, for .debs, for the
purpose of this test.
This requires a new archive protocol method. We implement it for
ftpmasterapi (where it is actualliy needed) and dummycatapi (where we
need it for tests.) Implementing it for madisonish methods would be
easy. For aptget, it would probably involve iterating over suites,
and not be adviseable.
Closes:#801435.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Closes:#878443.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
This actually does all that is needed. It replaces two now-identical
calling patterns.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
This slightly odd construction is actually how the return value from
fork_for_multisuite should be handled. It now looks much more like
the calling pattern in pull().
No functional change: if $multi_fetched is falseish, we call
fetch_one, and then, no matter what, we finish 0.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
When for_for_multisuite returns '0', meaning we are a child and should
do one suite, use finish 0 rather than returning, after doing the
fetch.
This has no functional change because the one call site is at the end
of cmd_pull, after which we finish 0 anyway.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically, use package_from_d_control rather than open-coding
a substandard implementation.
The consequent abolition of $sourcep does mean that if the user
specifies the suite `.', and does not specify -p, we needlessly parse
debian/control twice. This doesn't really matter.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
And add cross-references to dgit(1) and the actual error.
Somewhat apropos of #842614.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Closes:891031.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The .dsc and .changes matching code contained roughly
$fieldbody =~ / \Q$item\E\n/m
but this is wrong when the $fieldbody matches $item in its last line,
and there is no trailing newline (as would be usual). This code
is obviouslu confused because m affects only ^ $ which don't appear
in the regexp. Change these to / \Q$item\E$/m which is what ought
to have been, and probably was, intended.
In one case we are trying to delete a line. In that case we need to
remove the leading newline. The field body always starts with a
newline so the use of \n rather than ^ is fine.
Closes:#869146.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the comment about `message may be modified' is rather
misleading, since there is no code to do that - but it explains the
semantics of the new function.
We change the appropriate subset of the git update-ref call sites.
These are precisely the ones where we previously specified a message
with -m, except for the quilt cache (where we use the reflog message
as the cache lookup key).
The calls are updates of internal refs etc.
We end up using qw(git) rather than @git.
Otherwise no functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
make-patches exiting with status 7 causes $?==7*256, not 7.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Print a warning to stderr on `dgit fetch sid', if your vcs-git remote
url disagrees with what's in sid's .dsc.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
This is for creating and adjusting the vcs-git remote url. Useful for
transition from alioth to salsa. Closes:#902006.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
Ie there is nothing to overwrite (eg, when used with --new). Instead,
it is simply ignored, as it is ignored in situations where the push is
fast forward.
Closes:#863576.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When fetch or push wants git fetch (other than in a situation where it
happes to be a noop) but --dry-run was specified, we would loop with a
false coplaint about git fetch. False, because we didn't actually run
git fetch so of course it didn't do anything.
Instead, fail with an explanation. Closes:#871317.
This does not occur, and we do not fail, if git-fetch would be a
no-op. We can tell when this is the case, because we use
git-ls-remote too. This leads to one suggestion for a workaround for
the user, which is to do a not --dry-run fetch first.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
Add a newline and "error:" before most error messages. Thius makes
the output clearer, by distinguishing informational output (which
might or might not relate to any error which is occurring) from things
which are definitely wrong.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
When quilt fixup fails because of discrepancies, print a git diff rune
which will show them. Closes:#865446.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, R can occur if all Debian changes have been removed in
a package with single-debian-patch, in which case we would fail to
commit the patch queue removal. I don't think dpkg-source will remove
files in other cases, so this is probably the only actually buggy
case.
I don't think the other letters are particularly likely but if they
occur they should be committed too. I have deliberately excluded U
which should definitely not occur.
Closes:#893263.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
| |
When build fails because the archive access fails, mention that this
was tried because --since-version was not specified.
Closes:#883340.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add -working-tree-encoding to $negate_harmful_gitattrs.
* Add new arrangements for updating an existing dgit-defuse-attrs
macro definition:
- is_gitattrs: say whether the macro is up to date
- setup_gitattrs: update an existing out-of-date macro
- minor message changes
- document the new behaviour
One consequence is that we have had to breach the promise about how to
stop future dgit setup-new-tree runs messing with this: it is now
necessary to disapply the macro, rather than redefine it.
Closes:#901900.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
| |
* is_gitattrs_setup: Break out $gitattrs_ourmacro_re
* is_gitattrs_setup: Reorganise very slightly
* is_gitattrs_setup: Add a debug print
* setup_gitattrs: Introduce $new
* setup_gitattrs: Add a blank line
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Recognise gdr branches, by the presence of corresponding
ffq-prev or debrebase-last refs.
* Before trying to do our own multi-patch linear quilt fixup, on a gdr
branch, see if gdr can do it. If so that is faster and better.
* If our branch is an unstitched gdr branch, which would be ff from
the archive if we were to stitch it, then do so.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
Provide the --git-debrebase= option, and pass it in the test suite.
Nothing uses this yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
| |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
Also, if the user invokes dgit push with uncommitted debian/patches/.
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>
|
|
|
|
|
|
|
| |
git checkout paths does not delete files.
This is a hypothetical bug AFAIAA.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
| |
We (have to) use just "git" rather than @git, but this is OK I think.
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>
|
|
|
|
|
|
|
|
| |
It makes the interface to the playground functions confusing.
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
| |
Otherwise:
Use of uninitialized value $isuite in concatenation (.) or string at dgit line 705.
This breaks the infrastructure. Closes:#886592.
Signed-off-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>
|
|
|
|
|
| |
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
| |
No functional change.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to avoid the inclusion of .buildinfo in the .changes. Quoting
<https://lists.debian.org/debian-dpkg/2017/06/msg00005.html>:
A .buildinfo file is not useful for a source-only upload which is
veried to be identical to the intended source as present in the
uploader's version control (eg, by the use of dgit).
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|\
| |
| |
| |
| |
| | |
Also regenerate debian/tests/control
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| | |
Closes:#879526.
Reported-by: Didier 'OdyX' Raboud
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
Closes:#886442.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In split brain mode, with unexpected diffs, print dgit view commitid
in suggested diff rune.
HEAD is wrong in this case.
Closes:#886443.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Should refer to HEAD rather than tree, since dgit needs a commit.
Closes:#884646.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| | |
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Change the dpkg-source -i argument to exclude exactly the right set of
things. (Sadly this is not a simple rune.)
Previously we might exclude `foo.git', for example !
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|