Annotation of embedaddon/rsync/packaging/git-status.pl, revision 1.1

1.1     ! misho       1: # Do some git-status checking for the current dir and (optionally)
        !             2: # the patches dir.
        !             3: 
        !             4: sub check_git_state
        !             5: {
        !             6:     my($master_branch, $fatal_unless_clean, $check_patches_dir) = @_;
        !             7: 
        !             8:     my($cur_branch) = check_git_status($fatal_unless_clean);
        !             9:     if ($cur_branch ne $master_branch) {
        !            10:        print "The checkout is not on the $master_branch branch.\n";
        !            11:        exit 1 if $master_branch ne 'master';
        !            12:        print "Do you want me to continue with --branch=$cur_branch? [n] ";
        !            13:        $_ = <STDIN>;
        !            14:        exit 1 unless /^y/i;
        !            15:        $_[0] = $master_branch = $cur_branch; # Updates caller's $master_branch too.
        !            16:     }
        !            17: 
        !            18:     if ($check_patches_dir && -d 'patches/.git') {
        !            19:        ($cur_branch) = check_git_status($fatal_unless_clean, 'patches');
        !            20:        if ($cur_branch ne $master_branch) {
        !            21:            print "The *patches* checkout is on branch $cur_branch, not branch $master_branch.\n";
        !            22:            print "Do you want to change it to branch $master_branch? [n] ";
        !            23:            $_ = <STDIN>;
        !            24:            exit 1 unless /^y/i;
        !            25:            system "cd patches && git checkout '$master_branch'";
        !            26:        }
        !            27:     }
        !            28: }
        !            29: 
        !            30: sub check_git_status
        !            31: {
        !            32:     my($fatal_unless_clean, $subdir) = @_;
        !            33:     $subdir = '.' unless defined $subdir;
        !            34:     my $status = `cd '$subdir' && git status`;
        !            35:     my $is_clean = $status =~ /\nnothing to commit \(working directory clean\)/;
        !            36:     my($cur_branch) = $status =~ /^# On branch (.+)\n/;
        !            37:     if ($fatal_unless_clean && !$is_clean) {
        !            38:        if ($subdir eq '.') {
        !            39:            $subdir = '';
        !            40:        } else {
        !            41:            $subdir = " *$subdir*";
        !            42:        }
        !            43:        die "The$subdir checkout is not clean:\n", $status;
        !            44:     }
        !            45:     ($cur_branch, $is_clean, $status);
        !            46: }
        !            47: 
        !            48: 1;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>