summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 13:21:31 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 13:21:31 +0100
commit648c039155014bc10acdae59e0dad5aacd000967 (patch)
treef75fae2b3cf6f7991a028a47e51a25aaf7ff9245
parent5d801671f8126208d31fb1649edd152165f5a999 (diff)
Ordering improvement in push: don't add dsc field until git push done.
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit10
2 files changed, 6 insertions, 5 deletions
diff --git a/debian/changelog b/debian/changelog
index dc9e5ab..af327be 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ dgit (0.4) experimental; urgency=low
* Much better error messages.
* Better error checking when parsing RFC822-style control data.
* Better checking that the supplied .dsc and debian/changes correspond.
+ * Ordering improvement in push: don't add dsc field until git push done.
--
diff --git a/dgit b/dgit
index fcc792d..7f13eec 100755
--- a/dgit
+++ b/dgit
@@ -761,11 +761,6 @@ sub dopush () {
# (uploadbranch());
$dsc->{$ourdscfield} = rev_parse('HEAD');
$dsc->save("../$dscfn.tmp") or die $!;
- if (!$dryrun) {
- rename "../$dscfn.tmp","../$dscfn" or die "$dscfn $!";
- } else {
- print "[new .dsc left in $dscfn.tmp]\n";
- }
if (!$changesfile) {
my $pat = "${package}_c$version_*.changes";
my @cs = glob "../$pat";
@@ -779,6 +774,11 @@ sub dopush () {
create_remote_git_repo();
}
runcmd_ordryrun @git, qw(push),access_giturl(),"HEAD:".rrref();
+ if (!$dryrun) {
+ rename "../$dscfn.tmp","../$dscfn" or die "$dscfn $!";
+ } else {
+ print "[new .dsc left in $dscfn.tmp]\n";
+ }
if ($sign) {
my @tag_cmd = (@git, qw(tag -s -m),
"Release $dversion for $csuite [dgit]");