aboutsummaryrefslogtreecommitdiffstats
path: root/revlist/revlist2humantest.bash
diff options
context:
space:
mode:
authorAlberto Cortés <alberto@sourced.tech>2015-11-16 03:20:01 +0100
committerAlberto Cortés <alberto@sourced.tech>2015-11-25 11:09:51 +0100
commitd643cea1e8a6d618b2eddfdbed086c7bdf208658 (patch)
treeb862c72ccb674910d24eac2ab424a7fb5ea3f0fb /revlist/revlist2humantest.bash
parentcaab43e7f4ee10a15b2af826485b688473b34356 (diff)
downloadgo-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-xrevlist/revlist2humantest.bash36
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}},"