YakShaving: Shawn Ferry's Weblog
v. intr. [MIT AI Lab, after 2000: orig. probably from a Ren & Stimpy episode.] Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.
Archives
« July 2006 »
SunMonTueWedThuFriSat
      
1
2
3
4
6
7
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
Today

 Subscribe

Search

Links
 

Today's Page Hits: 279

Locations of visitors to this page
« Previous day (Jul 4, 2006) | Main | Next day (Jul 5, 2006) »
20060705 Wednesday July 05, 2006
Mirroring CVS with SVK (Faster)
As I stated previously SVN and SVK have filled the void in my heart related to Distributed Version Control.

SVK "plays well with others", the company formerly known as SevenSpace used CVS to track changes to more than 20K configuration files. Unfortunately the CVS server is horribly IO bound and even working on a fast link is painfully slow.

MirrorVCP describes the general use of SVK to mirror other repositories. The problem I faced was my general level of impatience waiting on synchronization with the CVS server. Originally I thought the problem was strictly on the server side, but I later realized that a cvs update was significantly faster.  

While poking around to try and figure out what was going on to make it so slow I found FasterMirrorCVS which drastically decreased the time to pull changes from the CVS repository.  The FasterMirrorCVS page indicated that one of the outstanding issues with the change was a lack of support for more than one module from the same CVSROOT.  So I extended the patch a bit and  added support for multiple modules, informational and error logging and more error checking.

The quick overview from FasterMirrorCVS

Given the following two repositories with max symmetric network transit speeds of ~330KB/s on a single file scp.

The same sync operation was performed both with and without caching enabled. No updates were pending in either direction. The CVS server is highly IO bound and I would expect greater improvements from a faster source.

389MB 20322 files //mirror/cvs/ops cvs::ext:sferry@cvs:cvsroot:ops...

No Cache: svk sync --all //mirror/cvs/ops 176.94s user 59.24s system 13% cpu 28:26.70 total
Cache: svk sync --all //mirror/cvs/ops 29.81s user 17.10s system 4% cpu 18:37.83 total

6.2MB 178 files //mirror/cvs/dev cvs::ext:sferry@cvs:cvsroot:dev...

No Cache: svk sync --all //mirror/cvs/dev 7.28s user 1.14s system 20% cpu 40.908 total
Cache: svk sync --all //mirror/cvs/dev 5.59s user 0.65s system 30% cpu 20.502 total


Technorati Tags: , , ,

Jul 05 2006, 10:04:33 PM EST Permalink

Version Control with SVK
 I was a big fan of BitKeeper when it was free for open source development, and I still miss a number of it's features. Oh well. At this point however it's place in my heart has been replaced with SVN and further SVK.  SVK allows for one of the things I miss the most, decentralized version control. With SVN I was commonly frustrated when I wanted to push back code but wasn't: I commonly found myself in the position of having code that I was done with, or having made some changes I was (at least relatively) sure about and needing/wanting to commit.  With the goal being to move on to another change, modification or new function. Sometimes being quite sure that what I really wanted to do was poke around but not have to worry about taking a snapshot of the current code to get back to it after I took a horribly wrong approach.

SVK fills that void, by using SVN as a base but keeping a local copy and allowing mirroring and syncronization I can commit at will effectively check pointing code whenever I think I have completed something or when I know I am about to go off the rails with some wild idea.

SVK also makes rapid development/testing easier, since the workspace in SVK is a flat filesystem using rsync to push changes to a test system is quite effective without the  overhead of copying the local .svn structure to the test host.

A bit more on mirroring particularly CVS later.
See also: The SVK Wiki, The  Subversion Project Page

Technorati Tags: , , ,

Jul 05 2006, 06:29:49 PM EST Permalink

Blog Information Profile for YakShaving