NAME

git-up-to-date - Check that git branches include latest production branch/tag

VERSION

This documentation refers to git-up-to-date version 1.1.20

SYNOPSIS

  git-up-to-date [am-i] [option]
  git-up-to-date show [option]
  git-up-to-date current [option]
  git-up-to-date update-me [option]

SUB-COMMANDS
 am-i              (default) determine if the current branch is up-to-date
 show              Show's the status of all active branches (ie branches with
                   commits since last release)
 current           Show the current "production" branch or tag
 update-me         Merges in the latest release

OPTIONS:
 -t --tab[=]str    Specify a tag that any branch with newer commits must contain
 -b --branch[=]str Similarly a branch that other branches with newer commits must
                   contain (Default origin/master)
 -l --local        Shorthand for --branch '^master$'
 -f --format[=](test|text|html|csv|tab|json)
                   Set the out put format
                     * test - TAP test formatted output (default)
                     * text - Simple formatted text
                     * html - A basic HTML page
                     * csv  - Comma seperated values formatted output
                     * tab  - Tab seperated values formatted output
 -q --quick        Print to STDERR the statuses as they are found (no formatting)
 -i --include[=]regexp
                   Include only "neweer" branches that match this regexp
 -e --exclude[=]regexp
                   Exclude any "neweer" branches that match this regexp
    --all          Show the status of all branches not just current ones.
 -m --max-history[=]int
                   Set the maximum number of release branches/tags to go back
                   (if more than one) to find where a branch was created from.
                   (Default 1)

 -s --branch-status
                   Shows the status (name, last committer, last commit date) of
                   all branches.
 -a --age-limit[=]date
                   With --branch-status limit to only branches created after
                   date (a YYYY-MM-DD formatted date)
 -F --fetch        Do a fetch before anything else.
 -x --fix          With am-i, merges in the current prod/release branch/tag

 -v --verbose      Shows changed branches that are upto date.
    --version      Prints the version information
    --help         Prints this help information
    --man          Prints the full documentation for git-up-to-date

DESCRIPTION

The git up-to-date command can tell you the status of "active" branches as compared to a release tag or branch. It does this by finding all tags or branches that match the regular expression passed to --tag or --branch, sorts them alpha-numerically assuming that the largest is the most recent.

eg release_1, release_1_1

The branch release_1_1 would be considered the most recent. With the found tag/branch the date/time it was created is used to find all branches that have newer commits (unless --all is used). These branches are then searched to see if they contain the found release tag or branch (and if --max-history is specified and the branch doesn't contain the release branch or tag the older releases are searched for).

SUBROUTINES/METHODS

DIAGNOSTICS

CONFIGURATION AND ENVIRONMENT

Defaults for this script can be set through git config

workflow.prod  Sets how a prod release is determined
               eg the default equivalent is branch=^origin/master$
workflow.max-history
               Sets the default C<--max-history> value

You can set these values either by editing the repository local .git/config file or ~/.gitconfig or use the git config command

# eg Setting the global value
   git config --global workflow.max-history 10

# or set a repository's local value
   git config workflow.prod 'tag=^release_\d{4}_\d{2}\d{2}$'

DEPENDENCIES

INCOMPATIBILITIES

BUGS AND LIMITATIONS

There are no known bugs in this module.

Please report problems to Ivan Wills (ivan.wills@gmail.com).

Patches are welcome.

AUTHOR

Ivan Wills - (ivan.wills@gmail.com)

LICENSE AND COPYRIGHT

Copyright (c) 2014 Ivan Wills (14 Mullion Close, Hornsby Heights, NSW Australia 2077). All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.