chiark / gitweb /
rename upload_hash to lastpush_hash
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 7be8e30846a6f2d927f1db52154baf67e7168c7e..562cef08f913eab9dbf2910dccf6da94c00372a7 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -28,6 +28,8 @@ use File::Basename;
 use Dpkg::Version;
 use POSIX;
 
+our $our_version = 'UNRELEASED'; ###substituted###
+
 our $isuite = 'unstable';
 our $idistro;
 our $package;
@@ -483,7 +485,7 @@ sub create_remote_git_repo () {
     }
 }
 
-our ($dsc_hash,$upload_hash);
+our ($dsc_hash,$lastpush_hash);
 
 our $ud = '.git/dgit/unpack';
 
@@ -594,8 +596,8 @@ END
     my $outputhash = make_commit qw(../commit.tmp);
     my $cversion = getfield $clogp, 'Version';
     print "synthesised git commit from .dsc $cversion\n";
-    if ($upload_hash) {
-       runcmd @git, qw(reset --hard), $upload_hash;
+    if ($lastpush_hash) {
+       runcmd @git, qw(reset --hard), $lastpush_hash;
        runcmd qw(sh -ec), 'dpkg-parsechangelog >>../changelogold.tmp';
        my $oldclogp = parsecontrol('../changelogold.tmp','previous changelog');
        my $oversion = getfield $oldclogp, 'Version';
@@ -606,7 +608,7 @@ END
            open C, ">../commit2.tmp" or die $!;
            print C <<END or die $!;
 tree $tree
-parent $upload_hash
+parent $lastpush_hash
 parent $outputhash
 author $authline
 committer $authline
@@ -621,9 +623,9 @@ Version actually in archive:    $cversion (older)
 Last allegedly pushed/uploaded: $oversion (newer or same)
 $later_warning_msg
 END
-            $outputhash = $upload_hash;
+            $outputhash = $lastpush_hash;
         } else {
-           $outputhash = $upload_hash;
+           $outputhash = $lastpush_hash;
        }
     }
     chdir '../../../..' or die $!;
@@ -701,47 +703,47 @@ sub fetch_from_archive () {
 
     my $lrref_fn = ".git/".lrref();
     if (open H, $lrref_fn) {
-       $upload_hash = <H>;
-       chomp $upload_hash;
-       die "$lrref_fn $upload_hash ?" unless $upload_hash =~ m/^\w+$/;
+       $lastpush_hash = <H>;
+       chomp $lastpush_hash;
+       die "$lrref_fn $lastpush_hash ?" unless $lastpush_hash =~ m/^\w+$/;
     } elsif ($! == &ENOENT) {
-       $upload_hash = '';
+       $lastpush_hash = '';
     } else {
        die "$lrref_fn $!";
     }
-    print DEBUG "previous reference hash=$upload_hash\n";
+    print DEBUG "previous reference hash=$lastpush_hash\n";
     my $hash;
     if (defined $dsc_hash) {
        fail "missing git history even though dsc has hash -".
            " could not find commit $dsc_hash".
            " (should be in ".access_giturl()."#".rrref().")"
-           unless $upload_hash;
+           unless $lastpush_hash;
        $hash = $dsc_hash;
        ensure_we_have_orig();
-       if ($dsc_hash eq $upload_hash) {
-       } elsif (is_fast_fwd($dsc_hash,$upload_hash)) {
+       if ($dsc_hash eq $lastpush_hash) {
+       } elsif (is_fast_fwd($dsc_hash,$lastpush_hash)) {
            print STDERR <<END or die $!;
 
 Git commit in archive is behind the last version allegedly pushed/uploaded.
 Commit referred to by archive:  $dsc_hash
-Last allegedly pushed/uploaded: $upload_hash
+Last allegedly pushed/uploaded: $lastpush_hash
 $later_warning_msg
 END
-           $hash = $upload_hash;
+           $hash = $lastpush_hash;
        } else {
            fail "archive's .dsc refers to ".$dsc_hash.
-               " but this is an ancestor of ".$upload_hash;
+               " but this is an ancestor of ".$lastpush_hash;
        }
     } else {
        $hash = generate_commit_from_dsc();
     }
     print DEBUG "current hash=$hash\n";
-    if ($upload_hash) {
+    if ($lastpush_hash) {
        fail "not fast forward on last upload branch!".
            " (archive's version left in DGIT_ARCHIVE)"
-           unless is_fast_fwd($upload_hash, $hash);
+           unless is_fast_fwd($lastpush_hash, $hash);
     }
-    if ($upload_hash ne $hash) {
+    if ($lastpush_hash ne $hash) {
        my @upd_cmd = (@git, qw(update-ref -m), 'dgit fetch', lrref(), $hash);
        if (!$dryrun) {
            cmdoutput @upd_cmd;
@@ -1199,6 +1201,11 @@ sub cmd_quilt_fixup {
     build_maybe_quilt_fixup();
 }
 
+sub cmd_version {
+    print "dgit version $our_version\n" or die $!;
+    exit 0;
+}
+
 sub parseopts () {
     my $om;
     while (@ARGV) {
@@ -1212,6 +1219,8 @@ sub parseopts () {
                $sign=0;
            } elsif (m/^--help$/) {
                cmd_help();
+           } elsif (m/^--version$/) {
+               cmd_version();
            } elsif (m/^--new$/) {
                $new_package=1;
            } elsif (m/^--(\w+)=(.*)/s &&