Jed, This is a nice summary of how to use this feature. Can you add it to the Wiki?
Thanks, Brad On 3/13/13 9:05 PM, Jed Brown wrote: > We now have an early example of the ability of topic branches to provide > summaries. To start with, what is in 'barry/ams', but not in master? > > $ git log --abbrev-commit --pretty=oneline master..barry/ams > 0acecf5 add AMS viewer for PC, server can only run without any memory > debugging > f05ece3 changed AMS publishing to use the Viewer model [...] > dbbc0cd Merge branch 'barry/convergence-history' into barry/ams > bfb9721 more work on moving AMS model to viewer > 7a1ec6d Fix for SNESSetConvergenceHistory() when input a is null > ce8c27f fixed calls to PetscObjectAMSTake/GrantAccess() to cast first > argument to PetscObject > c8b2999 Merge branch 'master' into barry/ams > a75c43b make KSP AMS monitor use default AMS communicator > 38dc153 cleanup of AMS viewer, handle JSON-RPC multiple Comms > ec7429e work on AMS interface, consistent naming, ams.h not included in > petscviewer.h, no ifdefs > > > I clipped the extremely long line [1] which makes the summary hard to > read. Note that this commit is shown: > > 7a1ec6d Fix for SNESSetConvergenceHistory() when input a is null > > It came into the topic branch via a merge declaring this bug fix as a > dependency: > > dbbc0cd Merge branch 'barry/convergence-history' into barry/ams > > Merges can bring in many more commits so if we want to only see the > commits that are *part* of the feature 'barry/ams' (not just a > dependency), we can add '--first-parent' [2]: > > $ git log --abbrev-commit --pretty=oneline --first-parent master..barry/ams > > which shows the same as above, minus the bug fix commit. It still > includes the two merges, which we can screen out by adding '--no-merges' > to see only the "interesting" commits. That gives: > > $ git log --abbrev-commit --first-parent --no-merges --pretty=oneline > master..barry/ams > 0acecf5 add AMS viewer for PC, server can only run without any memory > debugging > f05ece3 changed AMS publishing to use the Viewer model [...] > bfb9721 more work on moving AMS model to viewer > ce8c27f fixed calls to PetscObjectAMSTake/GrantAccess() to cast first > argument to PetscObject > a75c43b make KSP AMS monitor use default AMS communicator > 38dc153 cleanup of AMS viewer, handle JSON-RPC multiple Comms > ec7429e work on AMS interface, consistent naming, ams.h not included in > petscviewer.h, no ifdefs > > This is a nice compact summary of what happened on 'barry/ams'. We can > add '--stat' for a diffstat of each commit or '-p' for the body of those > changes. > > Following the first parent along an integration branch gives a nice > summary of what is currently there, e.g., these topics are cooking in > 'next': > > $ git log --abbrev-commit --first-parent --pretty=oneline master..next > e5e0692 Merge branch 'barry/ams' into next > d8866d7 Merge knepley/plex into next > 2f878aa Merge branch 'barry/convergence-history' into next > 4a37446 pulled next from bitbucket Merge branch 'next' of > bitbucket.org:petsc/petsc into next > a42e7c1 AMS fixed now goes into next Merge branch 'barry/ams' into next > 8de993d Bug fix for MatLoad_MPIBAIJ() buffer size for rank zero read was > wrong size; [...] > > > This first-parent summary was interrupted by 4a37446, which was created > by a "race" merging to 'next'. It's possible to resolve those races > [2,3], but they should be rare if maintainers always 'git pull' before > merging to an integration branch. If not for that race (and using the > first line from the default merge commit message), the above would have > looked like: > > e5e0692 Merge branch 'barry/ams' into next > d8866d7 Merge branch 'knepley/plex' into next > 2f878aa Merge branch 'barry/convergence-history' into next > f37663b Merge branch 'barry/matload-mpiaj-bugfix-maint' into next > a42e7c1 Merge branch 'barry/ams' into next > > > Our new "topic branch" workflow provides many quick ways to summarize > history. Consistent structure in commit messages and following merging > principles makes those summaries more useful and easier to read. Matt is > currently beating all of us in terms of consistent commit message > structure (play around with 'git shortlog' over recent history). > > > [1] The full line is (all on one line) > > f05ece3 changed AMS publishing to use the Viewer model added simple AMS > viewer for mat,ksp,snes,ts added --ksp/snes/ts_view_pre for starting the > viewer before the solve (ugly but useful for AMS) added PetscStackCalls > around AMS function calls when appropriate (note do not want these in > webserver because do not webserver stopping just because AMS server is down > > https://bitbucket.org/petsc/petsc/commits/f05ece33fd483fcf0ae47f3ecf85fefd993a83b6 > > If Barry had left a blank line after the subject, it would display > nicely on one line. > > https://bitbucket.org/petsc/petsc/wiki/writing-commit-messages > > > [2] http://git-blame.blogspot.com/2012/03/fun-with-first-parent.html > [3] https://plus.google.com/107978208786843979508/posts/5idXQ5MJ8wU >
