开发者

Setting up SVN (subvsersion) to manage our companies files, how to exclude large files from being versioned

Me and two other guys recently started our own web development company. We each work from our homes and have decided we want to keep one central location for all of our files. These files include word documents, spreadsheets, client files, designs.. etc. Anything pertaining to our company. I have a pretty solid internet connection and a windows 2008 server box sitting at home so I set up a subversion repository.

Our file repository will look something like this.

Clients
   Company A
       Design (photoshop files, wireframes, concepts)
       Documents ( logins, quotes, proposals etc)
       Site Backups
   Company B
       D开发者_JS百科esign 
       Documents 
       Site Backups
Prospects
   Company C
   Company D
Our Company
   Our Website
   Documents (contract, operating procudres)

My question is in regards to design files. The photoshop files that my designer works with range in sizes from 10mb to 100mb. I don't think we need to keep these files version-ed as this would eat up space incredibly fast. How do I go about controlling which files get version-ed, and which files are just stored. What I am thinking is that all documents need to be version-ed, and any files other then that should not be.

Any help would be appreciated, thanks!

Edit I am also curious whether this is the way to go. I just like this system since it keeps version of all my documents and at the same time. Also essentially I will have 3 backups in 3 different locations (3 local copies) so no need for backing it up. I am unsure of how svn would perform as purely a huge file repository.


Use the svn:ignore property. Here's a quote explaining it:

The svn:ignore property contains a list of file patterns which certain Subversion operations will ignore. Perhaps the most commonly used special property, it works in conjunction with the global-ignores run-time configuration option (see the section called “Config”) to filter unversioned files and directories out of commands svn status, svn add, and svn import.

The rationale behind the svn:ignore property is easily explained. Subversion does not assume that every file or subdirectory in a working copy directory is intended for version control. Resources must be explicitly placed under Subversion's management using the svn add or svn import commands. As a result, there are often many resources in a working copy that are not versioned.

It's taken from the "Subversion book", the section on properties.


Note that the svn:ignore property can be set by filename wildcards (i.e. *.exe). You can add programmatic scripting (using hooks or SVN bindings for a programming language) to specify other rules - i.e. all files above 100MB are ignored. However, this may be somewhat dangerous. The choice is yours.


Contrary to what you may believe, Subversion is actually very well suited to store binary files, and even does binary diffing between versions.

Filesize should not be a concern in your decision to version files or not. Whether you need version control should be the concern. Anything else is just shooting yourself in the foot.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜