+ runcmd @git, qw(diff --exit-code), $tree;
+#fetch from alioth
+#do fast forward check and maybe fake merge
+# if (!is_fast_fwd(mainbranch
+# runcmd @git, qw(fetch -p ), "$alioth_git/$package.git",
+# map { lref($_).":".rref($_) }
+# (uploadbranch());
+ $dsc->{$ourdscfield} = rev_parse('HEAD');
+ $dsc->save("../$dscfn.tmp") or die $!;
+ rename "../$dscfn.tmp","../$dscfn" or die "$dscfn $!";
+ if (!$changesfile) {
+ my $pat = "../${package}_$clogp->{Version}_*.changes";
+ my @cs = <$pat>;
+ die "$pat ?" unless @cs==1;
+ ($changesfile) = $cs;
+ }
+ if ($sign) {
+ my @tag_cmd = @git, qw(tag -s -m),
+ "Release $dsc->{Version} for $suite [dgit]";
+ push @tag_cmd, qw(-u),$keyid if defined $keyid;
+ runcmd_ordryrun @tag_cmd;
+ my @debsign_cmd = @debsign;
+ push @debsign_cmd, "-k$keyid" if defined $keyid;
+ push @debsign_cmd, "../$changesfile";
+ runcmd_ordryrun qw(debsign);
+ }
+ runcmd_ordryrun @git, qw(push),$remotename,"HEAD:".lref(uploadbranch());
+ runcmd_ordryrun @dput, "../$dscfn";