Git committer activity
Git command git shortlog is very handy to see what is team activity.
Show committer activity - whole project
(output shortened to first 20 lines)
git shortlog -sn | head -20 2991 Paul King 1757 Cedric Champeau 1615 Jochen Theodorou 1031 James Strachan 749 Guillaume Laforge 312 Roshan Dawrani 306 Jason Dillon 301 Danno Ferrin 284 Alex Tkachman 273 PascalSchumacher 230 John Wilson 217 Pascal Schumacher 204 pascalschumacher 160 Thibault Kruse 158 Jeremy Rayner 134 Russel Winder 123 Cédric Champeau 122 Hamlet D'Arcy 116 Dierk Koenig 104 Pilho Kim
variant (without n) has different ordering:
git shortlog -s | head -20 6 Adrian Nistor 20 Alan Green 1 Alan Thompson 1 Alessio Stalla 1 Alex Spurling 284 Alex Tkachman 24 Alexandru Popescu 1 Anders D. Johnson 79 Andre Steingress 63 Andres Almiray 8 Andrew Eisenberg 6 Andrew Hamilton 2 Andrew Reitz 6 Andrew Taylor 51 Andrey Bloschetsov 1 Andy Hamilton 1 Andy Wilkinson 2 Anto 12 Aseem Bansal 1 Aslak Hellesoy
Full history with commits
git shortlog Adrian Nistor (6): avoiding wasted work according to GROOVY-5823 to GROOVY-5831, except GROOVY-5828 Signed-off-by: Jochen Theodorou <email@example.com> Fast exit from method ClassCompletionVerifier.checkMethodForWeakerAccessPrivileges Fast exit from loop in StaticTypeCheckingVisitor.inferReturnTypeGenerics Avoiding unnecessary string comparisons in loop GROOVY-5854: Fast loop exit in ClassNode constructor Inefficient method DefaultGrailsDomainClassInjector.implementsMethod Alan Green (20): Fix bug: was ignoring first char of octal escapes. Added asBool conversion for Strings: convert empty strings to false, and non-empty strings to true. Made AsmClassGenerator understand String asBool the same that Invoker has. Backed out fix to GROOVY-812 as it was causing test cases to fail. Will also post a note to groovy-dev. Fix build - UberTestCase could not find SpreadMapOperatorTest Changed to use jmock-1.0.1 instead of jmock-SNAPSHOT Fix for GROOVY-1081 Added Collection.sum() and Collection.sum(Closure) methods and test cases. Make it possible to set variables in the console shell bindings before the console is openned. Fix bug: could not add components to root pane with constraints. Now you can. Added history feature. Fixed problem when running from groovyConsole.bat Added special handling for showing collections and maps Fix problem with using BoxLayout on top level container (Frame, Dialog, Applet) Added new features to Console - intercepts std output - binds last result to '_' and history of results to '__' Fix error with bindings when creating a new window Changed is() to use == instead of System.identityHashCode() Console was reporting null result when result was , "" or 0 Fix so that AssertionErrors are handled properly. Fixed SourceUnit.failedWithUnexpectedEOF() to correctly recognise incomplete source, allowing the InteractiveShell to be a bit more useful - GROOVY-472 and GROOVY-1021 Removed UnexpectedTokenException class as it does not appear to be used any longer. Alan Thompson (1): Fix a bug in JsonBuilder.toPrettyString() for zero-length strings.
More interesting is when we restrict by branch
git shortlog -sn origin/GROOVY_1_5_X 137 Paul King 92 Jochen Theodorou 25 Roshan Dawrani 25 Jim White 23 Guillaume Laforge 14 Martin Kempf 9 Danno Ferrin 7 Alex Tkachman 5 Andres Almiray 4 Peter Niederwieser 2 Jeremy Rayner 2 Russel Winder 1 Jeff Brown 1 Thom Nichols
And of course, it can be combined with other selection operators:
git shortlog --author="graeme" --pretty=format:"%h %ad | %s%d [%an]" Graeme Rocher (2): 71dc762 Fri Aug 21 12:45:49 2015 +0200 | Improve StreamingJsonBuilder support for @CompileStatic [Graeme Rocher] 44d8e59 Tue Aug 25 16:57:45 2015 +0200 | Support for unescaped output in StreamingJsonBuilder [Graeme Rocher] graemerocher (6): de31d04 Tue Nov 3 16:05:33 2015 +0100 | Remove printlns that shouldn't be there (closes #177) [graemerocher] 7e7fcf7 Wed Dec 2 11:13:25 2015 +0100 | Support for Array and Iterable not just Collection in StreamingJsonBuilder (closes #203) [graemerocher] f98e620 Wed Dec 2 11:49:02 2015 +0100 | Binary compatibility improvements [graemerocher] 2464f05 Wed Dec 9 14:06:20 2015 +0100 | GROOVY-7706 - StreamingJsonBuilder should handle nested closures (closes #208) [graemerocher] deb8395 Wed Dec 9 14:49:15 2015 +0100 | GROOVY-7708 - StreamingJsonBuilder - improve @CompileStatic support (closes #209) [graemerocher] 7f72540 Thu Dec 10 14:46:12 2015 +0100 | GROOVY-7707 - StreamingJsonBuilder - writing unescaped output doesn't reset state (closes #210) [graemerocher]