On Fri, 21 Aug 2009, Avery Pennarun wrote:
(Warning: untested code follows)
export GIT_INDEX_FILE=/tmp/my-temp-index
git read-tree PREVIOUS_COMMIT_OR_TREE_ID
hash=$(git hash-object NEW_FILE)
git update-index --cacheinfo "0644 $hash path/of/file/in/tree"
commitid=$(echo COMMIT MESSAGE | git commit-tree $(git write-tree))
git update-ref refs/heads/BRANCHNAME $commitid PREVIOUS_COMMIT_OR_TREE_ID
Looks roughly correct, but you need to add a a "-p $PREVIOUS_COMMIT" to
that git commit-tree thing. Otherwise the new commit will be a root
commit. Which _might_ be what you want, of course, but I kind of expect it
wasn't.
And no, I didn't test that either, so there may be other things that need
fixing too.
Looking at that thing, I have ugly flashbacks to my git scripts in 2005 ;)
Linus