How do I implement a pre-commit hook script in SVN that calls dos2unix to validate checked-in file

StackOverflow https://stackoverflow.com/questions/48562

  •  09-06-2019
  •  | 
  •  

Question

I was wondering if anyone here had some experience writing this type of script and if they could give me some pointers.

I would like to modify this script to validate that the check-in file does not have a Carriage Return in the EOL formatting. The EOL format is CR LF in Windows and LF in Unix. When a User checks-in code with the Windows format. It does not compile in Unix anymore. I know this can be done on the client side but I need to have this validation done on the server side. To achieve this, I need to do the following:

1) Make sure the file I check is not a binary, I dont know how to do this with svnlook, should I check the mime:type of the file? The Red Book does not indicate this clearly or I must have not seen it.

2) I would like to run the dos2unix command to validate that the file has the correct EOL format. I would compare the output of the dos2unix command against the original file. If there is a diff between both, I give an error message to the client and cancel the check-in.

I would like your comments/feedback on this approach.

Was it helpful?

Solution

I think you can avoid a commit hook script in this case by using the svn:eol-style property as described in the SVNBook:

This way SVN can worry about your line endings for you.

Good luck!

OTHER TIPS

What exactly are you trying to do?

Of course, there are numerous places to learn about svn pre-commit hooks (e.g. here , here, and in the Red Book) but it depends what you're trying to do and what is available on your system.

Can you be more specific?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top