$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
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 () {
#----- 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 $!;
sub parse_patch_spec ($) {
my ($orig) = @_;
local $_ = $orig;
+ die 'FORMAT has new spec syntax nyi';
my $spec = { }; # Email Domain DatePrefix DateNear Nick
my $set = sub {
my ($key,$val,$whats) = @_;