Changed handling of output of pre-lock hook in SVN 1.6
One of our customers reported a funny issue with the pre-lock.bat hook script. Yes, when he used Subversion Server on Windows system. The customer is using a custom pre-lock.bat script to explicitly lock the file before every commit.
Why does he explicitly lock the file while svn commit itself locks the file implicitly? He has a valid reason to do so.
In earlier releases (v1.6), Subversion discarded the stdout messages printed in hook scripts. It is applicable for all hook scripts including pre-lock.bat script. Starting with v1.6, it behaves the same with all hook scripts, except the pre-lock.bat script. The message printed in this hook script is used as a UID for the lock. It should be unique across the repository. The best part about Subversion is that it is clearly documented in the Subversion 1.6 Release Notes.
Guess what? The customer complained that the custom pre-lock.bat script worked very well in prior releases, but it do not work with Subversion 1.6. When he performed a file commit, he faced a 423 Locked Error error. We attempted to release the lock obtained by a different user, if any, using svnadmin rmlocks and svn unlock --force commands, but they did not help. When we investigated if it has to do with any stdout messages, we discovered that NO it didn't. The hook script does not print any message to stdout.
WHERE THE PROBLEM EXISTS?
The issue is that the customer has set echo on globally in his Windows system. It prints all the commands we execute in the hook script to stdout, including the comments as in rem command.
The solution is to set echo off in his system, and he no longer faces the problem!


Recent Site Comments
"Thanks for the quick reply. Have a couple of follow up que…"
Ken Guiberson"The reintegrate merge is designed for a SINGLE use case whe…"
Bob"In your response to the question How would you handle branc…"
Ken Guiberson"@Nick I cant help but wonder if ultimately youre going to r…"
C. Michael Pilato"Hi Thanks for your reply . The lock replication worked wh…"
Nick"@Nick: You appear to be using bash, not Perl, but whatever.…"
C. Michael Pilato"Thanks Michael for your reply on lock replication. I have …"
Nick