I have a svn server (VisualSVN Server Manager)
On this server, we want to automatically obfuscate the incoming binary files.
I wrote a post-commit.exe for this.
I can see which files are affected with "svnlook" command.
But the problem is that I cannot directly manipulate affected files from with post-commit.exe.
For this, I have to checkout to another svn (client) folder and commit new changes.
But since the post-commit.exe has not finished its job yet, another client cannot update at that time and it will fall into deadlock.
For this reason, I have to make these changes on the server without using a client.
I think I can do this with "svnfsfs" or "svnadmin". But I don't know how to do this. Could you help me with this?
Thanks in advance.
Instead of performing the task on the server-side, you better consider obfuscating your binaries on the client-side, before you commit. Do not commit transactions or add new revisions with hook scripts. If you use TortoiseSVN, maybe the client-side hook scripts could help.
The post-commit hook runs when a new revision has already been committed. Even if you manage to modify the data in post-commit and create a new revision in the repository, you will end up with two revisions - a first one with the original content and a second one with modified content.
You could modify the commit transaction with a pre-commit hook script, but this is a bad practice. Per SVNBook: