Non-versioned SVN directory?
The issue we have is a customer supplies us with content to include in releases, and this includes a lot of video files. Their content generally goes in SVN but since they don't have access to it, versioning these large binary files doesn't really seem to fit SVN well. Our testing doesn't require these files (we just have to test we can launch a video if it's found) and we aren't responsible for checking/testing the customer's supplied content.
So I w开发者_StackOverflow中文版ondered if it's possible to have a SVN dir which isn't versioned, and is just a regular directory which can still be pulled when updating/checking-out? Or maybe SVN has a way to pull files from a non-SVN source, somewhat like svn:externals but not looking at another repo?
Is there a SVN solution to this, or if we want to avoid versioning the files should we simply put them in another store and configure a build/deploy script to pull them separately?
Alas no, subversion stores all versions committed to it - there's no flag to set to tell it to keep just the last version. Maybe one day after obliterate is implemented, but don't hold your breath waiting for that :)
Basically, there isn't a SVN solution to this - so you need to look at a document-management server, or just a separate file store.
There is one option that might work for you though, if you use TortoiseSvn, you can use its client-side hooks to automatically pull the video files from the file store to the local system.
The alternative for an all-subversion solution is to store your video files in it as normal, but then regularly dump/filter/load the repository to clean out the old versions. this can take some time if the video files are very large so I'm not sure if I recommend it, but if you stored them in their own repo, you could simply get the latest version, delete the entire repo, and re-import the file you just got to re-initialise the repo with 1 version. Saves space, and could be scripted, but probably isn't worth the hassle comapred to just telling everyone "get your video files off "\server\videos".
Is the problem the bridge between your client and the SVN repo, or the versioning of binary files ?
For the second one, I think there's no big deal. Read from here : http://help.collab.net/index.jsp?topic=/faq/svnbinary.html
Note that whether or not a file is binary does not affect the amount of repository space used to store changes to that file, nor does it affect the amount of traffic between client and server. For storage and transmission purposes, Subversion uses a diffing method that works equally well on binary and text files; this is completely unrelated to the diffing method used by the svn diff command.
Since versioning of big files can be rude for developers when updating/committing small changes, you can use a dedicated series of branches.
I don't know if I got you right but as far as I've understood it you are after isolation between your code and your customer's huge binary files.
What about this, Set up a separate dedicated SVN repository for your large files. Grant the customer access only to that repository. Use the svn:externals to pull these files into your code tree.
SVN do handle large binary files pretty well and if you put them in a separate repo they won't pollute your code repo.
精彩评论