diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-15 23:21:13 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-15 23:21:14 +0100 |
commit | 83af484ee17f5d18ee6a161b01aa0b546d8943cb (patch) | |
tree | f206afc18d391ba9b7efdbc11c0981d0ab10b835 | |
parent | a68894875ce0d11261882f62b2aa28a6e3eed673 (diff) |
dgit import: Right error message for missing files in ..
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>
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dgit | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 784269c..eeaeb1f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ dgit (3.12~) unstable; urgency=medium look like series files, etc. Involves adding .patch to all generated patch filenames. * dgit import: Defend against broken symlinks in .. + * dgit import: Right error message for missing files in .. -- @@ -6363,7 +6363,7 @@ END fail "cannot import $dscfn which seems to be inside working tree!"; } $there =~ s#/+[^/]+$## or - fail "cannot import $dscfn which seems to not have a basename"; + fail "import $dscfn requires ../$f, but it does not exist"; $there .= "/$f"; symlink $there, $here or fail "symlink $there to $here: $!"; progress "made symlink $here -> $there"; |