Re: Post-receive hook for "git pull"
- From
- Stefan Monnier <monnier@iro.umontreal.ca>
- Date
- Feb 12, 2016, 13:39 UTC
- Message-ID
- <jwvlh6qt5i6.fsf-monnier+gmane.comp.version-control.git@gnu.org>
- In-Reply-To
- <xmqqio4am3uk.fsf@gitster.mtv.corp.google.com>
Show 9 quoted lines
>> I have a system here where it can be quite common to have thousands of >> branches in the remote repository, and where I'd like to update some >> local state according to the appearance of new branches (or updates of >> pre-existing ones). >> Currently, I use a "git for-each-ref" after pulling and then check (for >> each one of those refs) if an update is warranted, but this can get slow >> with that many branches. Is there some way to get something like the >> post-receive hook to be run for "git pull", so that the script gets told >> directly which (remote tracking) branches have been modified/created?
> I do not think there is. But you could easily script along the > lines of...
Show 5 quoted lines
> #!/bin/sh > git for-each-ref | sort >prestate > git pull "$@" > git for-each-ref | sort >poststate > comm -12 prestate poststate
Right, it kinda works, but it can break down in case of concurrent operations.
I really wish there was a way to get something like the post-receive hook to be called everytime new commits are added, regardless if it's due to a push, a pull, a commit, a fast-import, ...
Stefan