Wednesday, November 16, 2016

Handy git Scrum Script Across Many Repos

The older I get, the more I forget.  I guess it's unavoidable.

In a scrum meeting, you're supposed to say what you did during the last day, what you're going to do the next day, and whether you're blocked by anything.

Since I work on several git repositories on any given day, I created this handy dandy bash script to pull my commits from the git log for each repository:


Download the script & save it somewhere into your PATH; I have mine in ~/bin.  Here's a one-liner to do get it; just copy it into a terminal & run it.
curl -sSL https://gist.githubusercontent.com/matthewadams/9aeec475cc46297152228c1e8ccca8b0/raw/26840f1eb30a2891b3859a0607c54d5be444ed49/git-scrum.sh > ~/bin/git-scrum && chmod ugo+x ~/bin/git-scrum
Now, change into a directory that contains a bunch of git repositories and run git-scrum. You'll see something like this:
$ git-scrum
Commits between 2016-11-15T11:30:00-0600 and 2016-11-16T11:30:00-0600:
/Users/matthew/Documents/github/SciSpike/9aeec475cc46297152228c1e8ccca8b0
26840f1 2016-11-16 08:56:22 -0600  (HEAD -> master, origin/master, origin/HEAD) update mode & minor change [Matthew T. Adams]
/Users/matthew/Documents/github/SciSpike/docker-node
/Users/matthew/Documents/github/SciSpike/docker-yaktor
/Users/matthew/Documents/github/SciSpike/docker-yaktor-base
/Users/matthew/Documents/github/SciSpike/docker-yaktor-node
/Users/matthew/Documents/github/SciSpike/node-config-cev-generator
/Users/matthew/Documents/github/SciSpike/words
/Users/matthew/Documents/github/SciSpike/yaktor
dc78e9f 2016-11-15 16:17:58 -0600  (HEAD -> master, origin/master) increase timeout due to slower performance of travis build machine [Matthew T. Adams]
9b6dcab 2016-11-15 16:10:56 -0600  fixes #35: use ./run.sh grunt ... [Matthew T. Adams]
83160ca 2016-11-15 15:24:29 -0600  fixes #22 [Matthew T. Adams]
af4e652 2016-11-15 13:54:08 -0600  closes #29 [Matthew T. Adams]
/Users/matthew/Documents/github/SciSpike/yaktor-auth
1b31c75 2016-11-15 16:12:48 -0600  (HEAD -> master, origin/master) use ./run.sh grunt ... from now on instead of running a local grunt [Matthew T. Adams]
cddf67b 2016-11-15 15:42:24 -0600  fix "the input device is not a TTY" issue [Matthew T. Adams]
/Users/matthew/Documents/github/SciSpike/yaktor-branding
/Users/matthew/Documents/github/SciSpike/yaktor-docs
/Users/matthew/Documents/github/SciSpike/yaktor-dsl-xtext
/Users/matthew/Documents/github/SciSpike/yaktor-lang-js
/Users/matthew/Documents/github/SciSpike/yaktor-ui-angular1
That takes care of at least not having to remember what you did; you'll still have to figure out what you're going to do! Hope you likey.

1 comment:

Matthew Adams said...

Updates: the script now
* does a full depth search unless you set envar MAX_DEPTH to a positive integer (0 or negative for full depth search)
* prints git repo dir & log only if there was activity
* takes DAY/TIME instead of BEFORE_DAY/BEFORE_TIME, respectively, to save typing