X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topbloke.git;a=blobdiff_plain;f=Topbloke.pm;h=7f535ebb2d2bf73e5a6d8a66b2116c3826eb5c5d;hp=33aec76b46b6c734e76b1021a0a2d9fca67e319b;hb=468972cf6a51f1e3f89189ddf997d6ed6ae811e5;hpb=20a1a234d7dda507b25b81fc48e59aed506946c5 diff --git a/Topbloke.pm b/Topbloke.pm index 33aec76..7f535eb 100644 --- a/Topbloke.pm +++ b/Topbloke.pm @@ -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 = ; defined $ref or die $!;