I use git as my version control system and have set up a Gerrit site to do the code review. I would like to create a hook to do the following:
Find the following text (where the ID may change)
#version Change-Id: Ie1411d50f6beb885bc3d3b7d8c587635e1446c18
Replace the Change-Id with the Change-Id of the new patch.
So, if the patch being merged has the Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82 then the version.txt file
should contain the following string after the script is run:
#version Change-Id: I1c25f7b967084008b69a6a8aefa6e3bb32967b82
I feel this would be possible using a change-merged hook. Am I right?
Thanks in advance.
Something like this:
#!/bin/sh
# See link below for actual command line format
# you may need to make the argument parsing more robust
CHANGE_ID=$2
git clone ${GIT_DIR} /tmp/repo-${CHANGE_ID}
echo "#version Change-Id: ${CHANGE_ID}" > /tmp/repo-${CHANGE_ID}/version.txt
GIT_DIR=/tmp/repo-${CHANGE_ID}/
cd /tmp/repo-${CHANGE_ID}/
git add /tmp/repo-${CHANGE_ID}/version.txt
git commit -m'Auto-updated version'
git push origin master
rm -rf /tmp/repo-${CHANGE_ID}/
http://gerrit-documentation.googlecode.com/svn/Documentation/2.2.2/config-hooks.html#_change_merged
On principle, I'm not a fan of this approach, and I think it should be better done on the way out (e.g., a "install.sh" script, which can use git commands to extract the revision hash, and generate a version.txt file from there). But something like this should put you in the right direction. This is untested, but it should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With