The precommit hook also show an example of how to deny committing certain files like .argb and thumb.db
The solution is simple enough. Add a precommit hook that scans all the exe's for debug libs. This method uses Dependency Walker by Steve Miller.
So far I've tested it on rather large commits with 20 exe's and it doesn't take more than 20 - 30 seconds to complete. Server is running a i7-960 for reference.
cd /d %~dp0 SETLOCAL ENABLEDELAYEDEXPANSION SET REPOS=%1 SET TXN=%2 SET PATH=E:\svn;E:\bin;E:\depends svnlook changed %REPOS% -t %TXN% > E:\temp\svnlook%TXN% grep -E "A.+(.argb)" E:\temp\svnlook%TXN% if "%ERRORLEVEL%"=="0" ( echo Do not commit ARGB files! >&2 goto :error ) grep -E "A.+(thumbs.db)" E:\temp\svnlook%TXN% if "%ERRORLEVEL%"=="0" ( echo Do not commit thumbs.db! >&2 goto :error ) grep -P -o "(?<=\w\s\s\s).+\.exe" E:\temp\svnlook%TXN% > E:\temp\svnlook%TXN%_exegrep for /f "tokens=1 delims=¶" %%f IN (E:\temp\svnlook%TXN%_exegrep) DO ( svnlook cat %REPOS% -t %TXN% "%%f" > E:\temp\temp depends.exe /c /of:E:\temp\dep.txt E:\temp\temp grep -E "QT.+D4.DLL" E:\temp\dep.txt if "!ERRORLEVEL!"=="0" ( echo Do not commit Debug executables! %%f is in debug>&2 goto :error ) ) del E:\temp\svnlook%TXN% del E:\temp\svnlook%TXN%_exegrep exit 0 :error del E:\temp\svnlook%TXN% del E:\temp\svnlook%TXN%_exegrep exit 1