On 06/09/2010 10:03 AM, Jeremy Kerr wrote:
Hi Manuel,

2) Use the command-line patchwork client to update patch state when a
patch is committed. People have done this with a git post-commit hook to
update the state of the patch in patchwork; I'm not sure if svn has
something equivalent.

Yes it does. If you tell us how the git pots-commit hook works, we
could try to implement a version for svn and GCC.

This is what I've used for git:

        [...@pororo helloworld]$ cat .git/hooks/post-applypatch
        #!/bin/bash

        sha=$(git rev-parse HEAD)
        hash=$(git show $sha | pwparser --hash)
        pwclient update -s Accepted -c $sha -h $hash

The hash would be different for git diff and svn diff due to the different headers. So, git people would have to add the hook themselves, while svn people could skip that step assuming that a centralized hook is running on the svn server.

On the other hand, svn patch ids are not stable, for two reasons. The first is the "(revision NNNN)" and "(working tree)" markers, which differ from the time the patch is made, to the time it is committed. These markers could be removed by pwparser using a simple regex.

The second is that paths in svn patches are relative, so people can run "svn diff" from the GCC directory and get a different patch id than if they ran "svn diff gcc". Certainly, we don't want to require svn people to run "svn diff" from the toplevel exclusively. So, maybe the commit hook would have to try removing common paths one by one and pass all the resulting hashes to pwclient...

Paolo

Reply via email to