chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f014eb0
)
improve dirty checks
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 17 Aug 2013 15:54:16 +0000
(16:54 +0100)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Sat, 17 Aug 2013 15:54:16 +0000
(16:54 +0100)
dgit
patch
|
blob
|
history
diff --git
a/dgit
b/dgit
index f65b51a73f356fd50c47596fec8572cfdbf73972..da4e57c3d9f3542b83ebb60c526307a83241193f 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-551,6
+551,18
@@
sub pull () {
printdone "fetched to ".lrref()." and merged into HEAD";
}
printdone "fetched to ".lrref()." and merged into HEAD";
}
+sub check_not_dirty () {
+ my $output = cmdoutput @git, qw(status --porcelain);
+ if (length $output) {
+ my $m = "tree dirty:\n$output\n";
+ if (!$dryrun) {
+ die $m;
+ } else {
+ warn $m;
+ }
+ }
+}
+
sub dopush () {
runcmd @git, qw(diff --quiet HEAD);
my $clogp = parsechangelog();
sub dopush () {
runcmd @git, qw(diff --quiet HEAD);
my $clogp = parsechangelog();
@@
-558,6
+570,7
@@
sub dopush () {
my $dscfn = "${package}_$clogp->{Version}.dsc";
stat "../$dscfn" or die "$dscfn $!";
$dsc = parsecontrol("../$dscfn");
my $dscfn = "${package}_$clogp->{Version}.dsc";
stat "../$dscfn" or die "$dscfn $!";
$dsc = parsecontrol("../$dscfn");
+ check_not_dirty();
prep_ud();
chdir $ud or die $!;
print "checking that $dscfn corresponds to HEAD\n";
prep_ud();
chdir $ud or die $!;
print "checking that $dscfn corresponds to HEAD\n";
@@
-671,6
+684,7
@@
sub cmd_pull {
sub cmd_push {
parseopts();
die if defined $package;
sub cmd_push {
parseopts();
die if defined $package;
+ runcmd @git, qw(diff --quiet HEAD);
my $clogp = parsechangelog();
$package = $clogp->{Source};
if (@ARGV==0) {
my $clogp = parsechangelog();
$package = $clogp->{Source};
if (@ARGV==0) {