summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2016-10-23 20:16:17 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2016-10-30 19:50:47 +0000
commit5c9ed5c0a77935dca8bb6f0c1cf6181d2ee54e48 (patch)
treecda0aa1f723b2dc7e4e0edce5106a2d716d3048c
parentb0e8004aa91bc35ab21a195ed3696134b102427a (diff)
import-dsc: Refuse to update a checked-out branch
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xdgit7
1 files changed, 7 insertions, 0 deletions
diff --git a/dgit b/dgit
index 88df4ef..809d0b9 100755
--- a/dgit
+++ b/dgit
@@ -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: $!";