[MOAB-dev] MOAB git branching model

Jed Brown jedbrown at mcs.anl.gov
Thu Sep 19 14:17:25 CDT 2013


Tim Tautges <tautges at mcs.anl.gov> writes:
> Yeah.  I'm more worried about not doing it until just before an official release, which has its own problems.

You can automate reminders about when something might be ready to merge.
Call the following script git-candidate-branches and put it in your
path.

#!/bin/sh

merged=$1
dest=$2

git for-each-ref --shell --format 'branch=%(refname) date=%(committerdate:iso8601)' refs/remotes/origin | while read entry
do
    eval "$entry"
    git merge-base --is-ancestor $branch $merged || continue
    git merge-base --is-ancestor $branch $dest && continue
    merge_point=$(git rev-list --ancestry-path --reverse $branch..$merged | head -1)
    test -n "$merge_point" || continue
    start=$(git merge-base $branch ${merge_point}~1)
    # echo Testing branch $branch merge_point $merge_point start $start
    git merge-base --is-ancestor $start $dest || continue
    abbrev_ref=$(git rev-parse --abbrev-ref $branch)
    echo Candidate for $dest: $date $abbrev_ref
done

You should see something like the following.

$ git candidate-branches next master
Candidate for master: 2013-09-12 16:36:36 -0500 origin/balay/update-sowing
Candidate for master: 2013-09-16 16:38:15 -0700 origin/barry/fix-dgmres.c
Candidate for master: 2013-09-17 15:14:26 -0500 origin/barry/fix-petscobjectsetstate
Candidate for master: 2013-08-17 16:38:30 -0500 origin/barry/fixmatmultseqaijflopcount
[...]


>> Feature releases are tagged on 'master', at which point 'maint' is
>> fast-forwarded.  Maintenance releases (bug fixes; no API changes) are
>> tagged on 'maint'.  Preview releases or RCs would be tagged on 'master',
>> though we don't currently use those.
>>
>
> I was asking more about numbered releases, not feature releases.

"Feature" releases are like v3.4.  In PETSc, they are allowed to change
binary interfaces and we make them a bit more than once a year (will
probably be more like twice a year now).  "Maintenance" releases are
like v3.4.2.  In PETSc, they must be source and binary compatible.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/moab-dev/attachments/20130919/cf2ad5be/attachment.pgp>


More information about the moab-dev mailing list