开发者

Large SVN repository on USB 3.0 key - how to speed up and simplify?

There are a few existing questions regarding the best practices about how to check out a version controlled-repository to a USB key. But thos开发者_如何学JAVAe questions were before USB 3.0 came out. For reasons technical, USB-spec and cost-related, USB 2.0 thumbdrive performance is surprisingly dismal for small files. Since we're using a centralized version control system (Subversion), checking out to some sort of portable drive is the best workflow we came up with for working off-line.

Our repository is about 280MB, ~6,000 files. We never let it complete checking out to the USB 2.0 keys because it would take too long (especially when you're trying to leave for the day -- hour+?). We tried creating a .zip file of the repository but then unzipping would take even longer.

Anyhow, fast-forward to USB3 and things are vastly improved. With a 32GB USB3.0 drive the repository takes about 4:30 to check out completely. I am happy to report that it is finally "reasonable" to work on a USB key with a 3.0 drive and 3.0 card.

Question: are there other workflow changes that can help make this simpler and/or faster?

I have seen suggestions for using Bazaar, Git, etc. (i.e. a distributed version control system) as merely a front-end interface to SVN so that you can have your repository-and-all-its-great-glory on-the-go and:

A) reduce the size of the "SVN checkout..." operation

B) speed up the update/commit operation

C) continue working alongside other TortoiseSVN<->SVN Server users in happiness

But I am not sure if this will make checkouts any faster. Granted, now that the repository is checked out it's only a matter of smaller sets of changed files. But checking out an entire Branch is still an issue.

Work with Subversion from USB Key

Version control on a 2GB USB drive

https://superuser.com/questions/40283/recommendations-for-usb-flash-drive-fast-at-writing-small-files


Yes checking out the whole svn tree onto the usb disk will still create all the small files. With bazaar you can branch without making a checkout of the actual files i.e. all the content only goes into a couple of big pack files:

bzr branch --no-tree svn://<your-repo> <yourusbdrive>

On your home computer you can make a checkout of that branch which will create a working tree with all the little files, and will commit directly to your usb drive:

bzr checkout <yourusbdrive> <localproject>


Using a DVCS for your scenario means:

  • don't checkout anything on the USB key: you would have the full repo on the key.
  • using that repo (stored on the USB) as upstream repo, while you would get a local (cloned) repo on your computer.

But that could mean having several DVCS repos instead of one big giant CVCS (Centralized VCS like Subversion) repo, because you might not want to store everything (like binaries with frequent evolutions) on a DVCS.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜