Just to clarify, I think we're talking about "document bundles" — package is a term generally associated the OS X installer, which is why I was originally confused.

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 and
directories, mostly done by an application not manually by me (the app
uses osx "package" format directories with internal files for its
work). So each time I want to do an SVN commit, I will have lots of
newly 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.

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to