diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2016-10-23 20:16:17 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2016-10-30 19:50:47 +0000 |
commit | 5c9ed5c0a77935dca8bb6f0c1cf6181d2ee54e48 (patch) | |
tree | cda0aa1f723b2dc7e4e0edce5106a2d716d3048c | |
parent | b0e8004aa91bc35ab21a195ed3696134b102427a (diff) |
import-dsc: Refuse to update a checked-out branch
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-x | dgit | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -5284,6 +5284,13 @@ sub cmd_import_dsc { $dstbranch = "refs/heads/$dstbranch" unless $dstbranch =~ m#^refs/#; $dstbranch = cmdoutput @git, qw(check-ref-format --normalize), $dstbranch; + my @symcmd = (@git, qw(symbolic-ref -q HEAD)); + my $chead = cmdoutput_errok @symcmd; + defined $chead or $?==256 or failedcmd @symcmd; + + fail "$dstbranch is checked out - will not update it" + if defined $chead and $chead eq $dstbranch; + open D, "<", $dscfn or fail "open import .dsc ($dscfn): $!"; $dscdata = do { local $/ = undef; <D>; }; D->error and fail "read $dscfn: $!"; |