| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
$cmd,$subcommand now global vars.
No functional change.
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
This produces better debug output.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
No callers yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are going to want this so we can provide better subtree setup
functions in Dgit.pm, including the config transfer.
No functional change, except that we now run just "git" from the path,
rather than honouring dgit's @git (which is not available in Dgit.pm).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This subroutine needs a hash of the main tree's git config, so that
some of the config settings which affect the object store can be
properly honoured.
Purely code motion, except for the changed reference to $gitcfgs.
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are going to want to break the meat of mktree_in_ud here out into
Dgit.pm. Dgit.pm doesn't have access_cfg, is_gitattrs_setup, and so
on.
On the other hand, we don't need any of that here: this is a fresh
tree of our own (so there is no existing .git/info/attributes to
combine with our new settings), and we ignore the config already.
So overall, little functional change: the .git/info/attributes in our
private working areas are now slightly simpler: they don't indirect
via git-defuse-attrs.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move runcmd into Dgit.pm.
We need to change dgit-repos-server too, but luckily its definition is
essentially equivalent.
No functional change to dgit. dgit-repos-server now prints somewhat
better error messages when subprocesses fail.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| | |
This avoids duplicating this rune (so the manpage can't get out of
date).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
Quite ugly due to #868527. Closes:#868526.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| | |
curl prints to stdout, as the rune expects.
Reported-by: Simon Tatham
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| | |
This involves creating a new "gitish-only" branch in the example
worktree.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
|\| |
|
| |
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Specifically, do dgit push --dry-run. This will check that the source
package and git tree agree - ie, that what we have produced can
round-trip through dpkg-source.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Experimentally, dpkg-source on stretch will create patches to create
new symlinks. (It will fail on attempts to modify existing symlinks
and it ignores attempts to change plain file executability.)
Implementation: add an alternative which tolerates the git symlink
mode. This replaces the check on $oldmode, which in this context we
know is all 0s and can therefore never match.
While we're here, change the error message.
Closes:#857382.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We don't care what the old mode was; if we tell dpkg-source to record
the deletion it can do so.
But we do care that it was a file. Experimentally, dpkg-source on
stretch ignores attempts to delete symlinks.
The removal of the check for $newmode has no functional change,
because in this context we know that $newmode is all 0s. If it
wasn't, we would have been in "both old and new files exist", above.
So that limb of the test will never match and should be removed.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are going to want to handle these cases separately because the
behaviour of dpkg-source is different.
In this commit, simply clone the existing code (and add a few
comments), so no functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Permit symlinks (which have mode 120000 in git) to make their way
through for more detailed checks.
No functional change except to error messages, because:
* If neither thing was a symlink, then the existing regexps
still match and the new "modified symlink" clause will not,
so the flow is unchanged.
* Otherwise, if both $oldmode and $newmode match [^0], ie,
this is a modification rather than deletion or removal,
we insist that $oldmode=$newmode, and then, fail the
new "modified symlink" check.
* Otherwise, we fail the check for default mode.
So in the case we are allowing to proceed further, we fail as before.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We are going to tolerate symlink creation, because dpkg-source can
consume patches to create symlinks (even though it cannot create
them).
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Specifically,
git-gc --aggressive --prune=all
This shrinks it quite a lot.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are going to want to test alternation/deletion of symlinks and
non-644 files.
To test this we need to switch to using example_1.1.orig.tar.gz (and
the corresponding git branch in the worktree), so that we have
such existing objects.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
But still insist on date, and hence on the actual committer and author
commit header fields. Peter Green reports that eg 66c65d90db100435 in
upstream linux.git is such a commit (and is accepted by github).
Closes:#863353.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
This is really helpful when debugging.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In most cases we could carry on and fail later. But creating a broken
symlink is undesirable, particularly because it might prevent dgit
from trying to make a non-broken symlink pointing elsewhere in future
(or prevent dget from downloading the file).
Even worse, if the dsc is in .. but an absolute path was provided, we
would make a circular symlink!
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Close examination of this code path reveals that:
* The error is generated only if $there contains no slash.
* This can only occur if $dscfn matches the first regexp,
ie $dscfn is [./]../X in which case $there becomes X
* So in this situation, $there is simply the dsc filename
which is supposed to be in ..
* What we should be testing is ../$f but that is $here
which is what are trying to create and which we statted
earlier and got ENOENT for.
So this occurs when the dsc is in .. and a file it refers to is
missing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Provide a special error message if lstat succeeds but lstat fails.
This is not hypothetical - currently even dgit import ../blah.dsc can
generate this situation !
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Do not specified patch names which look like series filenames
* When we invent a filename based on a commit message, add ".patch".
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Without this option, git-diff-tree might detect a rename (or possibly
even a copy). If it does it prints a different output format with a
status of C or R *and a separate filename*. The latter is an
additional nul-terminated record and would get dgit's interpreter of
the git diff-tree output out of step.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |/
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There does not in fact seem to have been any code which implements
this line from dgit(7):
If a specified subsuite starts with - then mainsuite is prepended.
The code which canonicalises it back to the version with ",-" does
work, though.
Closes:#867189.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This might be necessary if setup_mergechangelogs were disabled.
(This is something of a latent bug, since `git init' creates
.git/info.)
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 is slightly subtle.
We need $rmonerror in cmd_clone to be cleared. cmd_clone does that
only when clone itself returns. The multisuite plumbing means that
currently, clone returns only in the child which set up the tree and
set up the first suite. Unsetting $rmonerror there is correct because
we want to keep the tree on success, and the parent will remove it if
there is a later failure. (Ie, the child remains responsible for
removing the tree if it itself fails.)
In the parent, we get $multi_fetched==1 if not only our original clone
child succeeded, but all the other fetches worked too. We are now
responsible for the tree. If our final tasks are successful, again,
we need not to delete the tree.
Closes:#867434.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| | |
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closes:#867603.
In principle it might be nicer to copy more options. But we don't
want to duplicate the logic in prep_ud in dgit, and we don't want to
make this script too standalone. I'm not aware of other options that
are important, rather than nice-to-have tuneables.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These share the user's object store and we should manipulate the
object store the way the user wants. In particular,
core.sharedRepository is important.
Prompted by #867603, which is the same bug in dgit-badcommit-fixup.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
Closes:#857694.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When dgit intended to report a decompressor had failed, it would
instead crash with no useful message. This was due to
generate_commits_from_dsc's @compr_cmd being shadowed inside
the if $compr_ext.
This is part of #857694.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ie, work around #867702. See the bug there for discussion.
(We are perhaps flying a little close to the wind with our wrapper
script location, but it doesn't seem likely to break, to me.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| | |
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For each operation which can meaningfully be run outside a git tree,
arrange to call no_local_git_cfg and thus avoid running
git config --local
There is one slight infelicity: some subcommands (notably
archive-api-query) could in theory be run within a git tree and expect
that git tree to influence their output. However, this seems
unlikely. In fact, I think there are probably only in-tree callers
and the in-tree callers do not do this.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
|