diff options
author | Alberto Cortés <alberto@sourced.tech> | 2015-11-16 03:20:01 +0100 |
---|---|---|
committer | Alberto Cortés <alberto@sourced.tech> | 2015-11-25 11:09:51 +0100 |
commit | d643cea1e8a6d618b2eddfdbed086c7bdf208658 (patch) | |
tree | b862c72ccb674910d24eac2ab424a7fb5ea3f0fb /revlist/revlist2humantest.bash | |
parent | caab43e7f4ee10a15b2af826485b688473b34356 (diff) | |
download | go-git-d643cea1e8a6d618b2eddfdbed086c7bdf208658.tar.gz |
Blame support for files
This also includes a diff package and revlist package (needed by
blame)
Some extra packfiles (<1MB) are also included, to be used as fixtures in
the tests.
Diffstat (limited to 'revlist/revlist2humantest.bash')
-rwxr-xr-x | revlist/revlist2humantest.bash | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/revlist/revlist2humantest.bash b/revlist/revlist2humantest.bash new file mode 100755 index 0000000..b7d2672 --- /dev/null +++ b/revlist/revlist2humantest.bash @@ -0,0 +1,36 @@ +#!/bin/bash + +# you can run this over a whole repo with: +# +# for file in `find . -type f | sed 's/^\.\///' | egrep -v '^\.git\/.*$'` ; do revlist2humantest.bash $file ; done > /tmp/output +# +# be careful with files with spaces, though + +set -e + +repo=`git remote show origin | grep Fetch | cut -d' ' -f5` +branch=`git branch | egrep '^\* .*' | cut -d' ' -f2` +if [ "$#" -eq 1 ] ; then + commit=`git log | head -1 | cut -d' ' -f2` + path=$1 +elif [ "$#" -eq 2 ] ; then + commit=$1 + path=$2 +else + echo "bad number of parameters" > /dev/stderr + echo > /dev/stderr + echo " try with: [commit] path" > /dev/stderr + exit +fi + +hashes=`git rev-list --remove-empty --reverse $commit -- $path` + +# some remotes have the .git, other don't, +# repoDot makes sure all have +repoDot="${repo%.git}.git" + +echo -e "\t&humanTest{\"${repoDot}\", \"${branch}\", \"${commit}\", \"${path}\", []string{" +for i in $hashes ; do + echo -e "\t\t\"${i}\"," +done +echo -e "\t}}," |