App-Git-Workflow

 view release on metacpan or  search on metacpan

lib/App/Git/Workflow/Command/BranchClean.pm  view on Meta::CPAN

        my $details = $workflow->commit_details($branch, branches => 0);

        # don't delete young branches even if merged
        next BRANCH if too_young_to_die($details);

        $max = $details->{time} if $max < $details->{time};
        $deleted += __PACKAGE__->$action($branch, $details);
        $total++;
    }

    warn "Deleted $deleted of $total branches\nMax = " . (int $max/60/60/24) . "\n";

    return;
}

sub do_delete {
    my ($self, $branch, $details) = @_;

    my $too_old = too_old($details);
    my $in_master;

t/cmd-branch-clean.t  view on Meta::CPAN

            },
            name   => 'delete remote branches',
        },
        {
            ARGV => [qw{--all --min-age 10 --max-age 30}],
            ENV  => {
                GIT_WORKFLOW_MAX_AGE => 90,
            },
            mock => [
                { branch => [map {"  $_"} qw{master origin/master young origin/old}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { push    => undef },
                { log    => (time - 60*60*24*5) . "\x{1}2222222222222222222222222222222222222222" },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/deleting \s old \s branch \s origin\/old/xms,
            },
            option => {
                exclude => [],
                min_age => 10,
                max_age => 30,
                tag_prefix => '',

t/cmd-branch-clean.t  view on Meta::CPAN

            },
            name   => 'delete only very old or old merged branches',
        },
        {
            ARGV => [qw{--all --min-age 10 --max-age 0}],
            ENV  => {
                GIT_WORKFLOW_MAX_AGE => 90,
            },
            mock => [
                { branch => [map {"  $_"} qw{master origin/master young origin/old}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{origin/feature1}] },
                { log    => (time - 60*60*24*5) . "\x{1}2222222222222222222222222222222222222222" },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 0 \s of \s 1 \s branches/xms,
            },
            option => {
                exclude => [],
                min_age => 10,
                max_age => 0,
                tag_prefix => '',
                tag_suffix => '',
                all        => 1,
            },
            name   => 'delete only old and merged branches',
        },
        {
            ARGV => [qw{--tag --test}],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master feature old_project}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master feature}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 2 \s of \s 2 \s branches/xms,
            },
            option => {
                exclude => [],
                max_age => 120,
                tag_prefix => '',
                tag_suffix => '',
                tag        => 1,
                test       => 1,
            },
            name   => 'test tag deleted branches',
        },
        {
            ARGV => [qw{--tag --no-test}],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master feature old_project}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master feature}] },
                { tag    => undef },
                { branch => undef },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { tag    => undef },
                { branch => undef },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 2 \s of \s 2 \s branches/xms,
            },
            option => {
                exclude => [],
                max_age => 120,

t/cmd-branch-clean.t  view on Meta::CPAN

                tag        => 1,
                test       => 0,
            },
            name   => 'tag deleted branches',
        },
        {
            ARGV => [qw{--exclude-file t/data/excludes.txt}],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master feature exclude_me}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master}] },
                { branch => undef },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 1 \s of \s 1 \s branches/xms,
            },
            option => {
                exclude => [],
                max_age => 120,

t/cmd-branch-clean.t  view on Meta::CPAN

                tag_suffix => '',
                exclude_file => 't/data/excludes.txt',
            },
            name   => 'don\'t deleete excluded branches',
        },
        {
            ARGV => [qw{--tag}],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master feature}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master}] },
                { tag    => undef },
                { branch => undef },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 1 \s of \s 1 \s branches/xms,
            },
            option => {
                exclude => [],

t/cmd-branch-clean.t  view on Meta::CPAN

                tag_suffix => '',
                tag        => 1,
            },
            name   => 'tag deleted branches',
        },
        {
            ARGV => [qw{--tag --test}],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master feature project_master}] },
                { log    => (time - 60*60*24*50) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{feature project_master}] },
                { log    => (time - 60*60*24*5) . "\x{1}2222222222222222222222222222222222222222" },
                { branch => [map {"  $_"} qw{project_master}] },
            ],
            STD => {
                OUT => qr//,
                ERR => qr/Deleted \s 0 \s of \s 2 \s branches/xms,
            },
            option => {
                exclude => [],
                max_age => 120,
                tag_prefix => '',

t/cmd-files.t  view on Meta::CPAN

                ERR => "Unknown option: unknown\n",
            },
            option => {age => 28},
            name   => 'Bad argument',
        },
        {
            ARGV => [qw/garbage --since 2014-09-24/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { 'rev-list' =>  [
                    '1111111111111111111111111111111111111111',
                    '2222222222222222222222222222222222222222',
                    '3333333333333333333333333333333333333333',
                    '4444444444444444444444444444444444444444',
                ]},
                { show =>  [
                    '1111111 Message',
                    'file1',

t/cmd-files.t  view on Meta::CPAN

                ERR => '',
            },
            option => {age => 28, since => '2014-09-24'},
            name   => 'files changed',
        },
        {
            ARGV => [qw/local/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { diff   => [qw/file1 file2/] },
                { 'rev-list' =>  [
                    '1111111111111111111111111111111111111111',
                    '2222222222222222222222222222222222222222',
                    '3333333333333333333333333333333333333333',
                    '4444444444444444444444444444444444444444',
                ]},
                { show =>  [
                    '1111111 Message',

t/cmd-files.t  view on Meta::CPAN

                ERR => '',
            },
            option => {age => 28},
            name   => 'local',
        },
        {
            ARGV => [qw/local/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { diff   => [qw{file1 file2}] },
                { 'rev-list' => [] },
                { 'rev-parse' => 't/data/git-files' },
            ],
            STD => {
                OUT => '',
                ERR => '',
            },
            workflow => {
                GIT_DIR => 'git',
            },
            option => {age => 28},
            name   => 'local no changes',
        },
        {
            ARGV => [qw/local/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { diff   => [qw{file1 file2}] },
                { 'rev-list' =>  [
                    '1111111111111111111111111111111111111111',
                    '2222222222222222222222222222222222222222',
                    '3333333333333333333333333333333333333333',
                    '4444444444444444444444444444444444444444',
                ]},
                { show =>  [
                    '1111111 Message',

t/cmd-files.t  view on Meta::CPAN

                ERR => '',
            },
            option => {age => 28},
            name   => 'local no branch',
        },
        {
            ARGV => [qw/local --verbose/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { diff   => [qw{file1 file2}] },
                { 'rev-list' =>  [
                    '1111111111111111111111111111111111111111',
                    '2222222222222222222222222222222222222222',
                    '3333333333333333333333333333333333333333',
                    '4444444444444444444444444444444444444444',
                ]},
                { show =>  [
                    '1111111 Message',

t/cmd-files.t  view on Meta::CPAN

                ERR => "file1\nfile2\n",
            },
            option => {age => 28, verbose => 1},
            name   => 'local verbose',
        },
        {
            ARGV => [qw/local -vv/],
            mock => [
                { config => undef },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { log    => (time - 60*60*24*5) . "\x{1}1111111111111111111111111111111111111111" },
                { branch => [map {"  $_"} qw{master origin/master}] },
                { diff   => [qw{file1 file2}] },
                { 'rev-list' =>  [
                    '1111111111111111111111111111111111111111',
                    '2222222222222222222222222222222222222222',
                    '3333333333333333333333333333333333333333',
                    '4444444444444444444444444444444444444444',
                ]},
                { show =>  [
                    '1111111 Message',



( run in 1.021 second using v1.01-cache-2.11-cpan-7add2cbd662 )