chiark / gitweb /
implement check_clean_tree; $tiprefs, $baserefs
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 30 Jan 2012 23:29:19 +0000 (23:29 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 30 Jan 2012 23:29:19 +0000 (23:29 +0000)
Topbloke.pm

index 33aec76..7f535eb 100644 (file)
@@ -17,7 +17,7 @@ BEGIN {
 
     $VERSION     = 1.00;
     @ISA         = qw(Exporter);
-    @EXPORT      = qw(debug
+    @EXPORT      = qw(debug $tiprefs $baserefs
                      run_git run_git_1line run_git_check_nooutput
                      run_git_test_anyoutput git_get_object
                      git_config git_dir chdir_toplevel enable_reflog
@@ -179,6 +179,13 @@ sub check_no_unwanted_metadata ($) {
                           qw(.topbloke));
 }
 
+sub check_clean_tree ($) {
+    run_git_check_nooutput("operation requires working tree to be clean",
+                          qw(diff --name-only HEAD --));
+    run_git_check_nooutput("operation cannot proceed with staged changes",
+                          qw(diff --cached --name-only HEAD --));
+}
+
 #----- configuring a tree -----
 
 sub setup_config () {
@@ -235,6 +242,9 @@ sub setup_config () {
 
 #----- branch and patch specs and parsed patch names -----
 
+our $tiprefs = 'refs/topbloke-tips';
+our $baserefs = 'refs/topbloke-bases';
+
 sub current_branch () {
     open R, git_dir().'/HEAD' or die "open HEAD $!";
     my $ref = <R>;  defined $ref or die $!;