Assuming I wanted to use a script (possibly run from cron) to observe and report changes to a git repository (instead of running something from the various hooks), does the following strategy seem workable: - for each branch to observe, record the initial position of that branch (sha1 commit id) -- call this Last - periodically: - grab the current head (call this Current) - if it's the same as Last stop - do a git log Current ^Last to observe what has happened since we last noticed a change. report on these commits. - Last = Current If these branches can be updated such that history is rewritten (not a concern in my particular case), I assume that for correctness you'd have to make Last and Current actual branches (perhaps under refs/heads/observer/... or whatever) to ensure that they don't get gc'd out from under you. Am I correct in believing that the above strategy will (if history is not rewritten) correctly report all the commits between the last- observed and current state of the branch? Even if history *is* rewritten, I think (assuming I ensure things aren't gc'd) I'd get still get it right. If I'm tracking several branches which can be merged between, I might want to keep track of which commits I've sent reports about if I don't want to re-report commits when they're merged into another branch. Brian - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html