-
Website
http://tlrobinson.net/blog -
Original page
http://tlrobinson.net/blog/2008/11/13/ant-tasks-for-git/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
amith123
1 comment · 1 points
-
Traveller_Adventure
1 comment · 2 points
-
dustinjruybal
1 comment · 1 points
-
Bruce
1 comment · 1 points
-
dnl
1 comment · 1 points
-
-
Popular Threads
Thanks,
Markus
My two cents:
- What if you need to authenticate with the remote repository? There is no parameter to do that - and that would not be secure anyway. A SSH agent would work but only if the server authorizes your public key. At the very least, you could have Ant ask input from the user, but that prevents unattended runs.
- An Ant task would either call the git executable, with all the issues that it implies (differences between platforms, availability of the executable, etc.), or it could use the only Java (partial) implementation of git I'm aware of at this time: egit.
- Some CI programs (Hudson, Cruise Control) have a git plugin. Since they're open source, it might be worth a look... My guess is that they simply call the executable.
<macrodef name="git-revision">
<attribute name="output" />
<sequential>
<exec executable="git" outputproperty="head">
<arg value="rev-parse" />
<arg value="HEAD" />
</exec>
<echo message="Found revision: ${head}"/>
<exec executable="git" outputproperty="dirty">
<arg value="diff" />
<arg value="--shortstatt" />
</exec>
<condition property="@{output}" value="${head}" else="${head} (dirty)">
<equals arg1="${dirty}" arg2="" />
</condition>
</sequential>
</macrodef>