I have a quite big software project written with an IDE which stores the source files in compressed archive files with a proprietary format.
I want to put the source under version control ( TortoiseSVN / SlikSvn, Windows )
Unfortunately there is no easy way to do a diff without exporting the files in plain text first, and file comparison is very important for the development.
I’ve got a tool for the extraction, but it’s relatively slow.
How can I export only the modified/added files before commit?
I’m told it’s very bad to do a pre-commit hook in this case ( see http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks )
You could write a TortoiseSVN Start-commit hook. See TortoiseSVN docs. That gets executed on the developer’s machine instead of the server. The script would extract all the files from the archive then commit those in addition to the archive file.
When you do an update, you would only update the archive file.
When you want to do a diff on an archive, you would setup a custom diff tool in TortoiseSVN for the archive file extension. The diff tool could be a script that extracts the files then compares them to the extracted version of the files in the repo.
When looking at differences in the repository browser, look at the extracted files instead of the archive.
Commits won’t work with SlikSVN. If you need to do command-line commits, you can use TortoiseProc.exe instead of SlikSVN so that your start-commit hook gets run.