Storing package bundles in SVN (or CVS) frequently works. However, it's not good to rely on this behavior, because the developer for every application that uses document bundles has to specifically account for and preserve the .svn or CVS directories — otherwise, they'll get clobbered, and your working copy will get incredibly confused.
Another option that's always safe is to put a ZIP file of the document under version control, but never the document itself. This is a bit of a pain, but reduces the number of extraneous files that change, and hence the number of adds and deletes you have to deal with. For years, there has been interest in (and talk of) extending SVN to deal with bundles more elegantly by being able to designate a directory as an "opaque collection" which would tell SVN not to store any working copy metadata inside. However, it still hasn't been implemented (to my knowledge) so we're still stuck with workarounds.
As far as smooth integration with commits, I don't know of a way to do that inside Versions. The most straightforward way would be to use/ write a script that would delete the old zip file and re-zip the document. I'm betting this could be done with a drag-and-drop AppleScript, but I've not tried it myself. Good luck!
- Quinn On Mar 27, 2009, at 5:31 PM, TheDO wrote:
Can you tell us which application? Subversion just treats OS X packages as folders, ignoring the flag that makes OS X treat the folder as a package. While this looks ugly, it should work fine most of the time. I commit OmniGraffle documents to my repositories all of the time, and they come through fine on my other Macs. On Mar 27, 10:48 am, Sophie <itsme...@hotmail.com> wrote:My work involves lots of creation and deletion of versioned files anddirectories, mostly done by an application not manually by me (the appuses osx "package" format directories with internal files for its work). So each time I want to do an SVN commit, I will have lots ofnewly created files and directories, and lots of deleted ones as well.Do I have to explicitly/manually do an Add or Delete, prior to the check-in? Or is there a smooth way to do this as part of Commit? Thanks.
smime.p7s
Description: S/MIME cryptographic signature