Saturday, July 8, 2006

Out of Shape

Went for a ride yesterday, the first in a few weeks or so and the longest this year...sad.

~42 miles at ~14.5mph, need to get a new battery for my computer.

I am not in shape for Hero of the Day a 250 mile ride  September 15-17 from Warrenton, NC to Washington, DC.

9 weeks to the start, 2 weeks of vacation in the middle and standard training to a Century is 9 weeks. 
So a Century will be fine but the rest will probably be a bit more work.

Need to get more time in the saddle.

Wednesday, July 5, 2006

Mirroring CVS with SVK (Faster)

As I stated href="http://blogs.sun.com/roller/page/yakshaving?entry=version_control_with_svk">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 href="http://svk.elixus.org/plugin/attachments/FasterMirrorCVS/cvs.pm.patch">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: rel="tag">SVK, href="http://technorati.com/tag/SVN" rel="tag">SVN,
,

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 href="http://subversion.tigris.org/">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:

  • online

  • finished


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: rel="tag">SVK, href="http://technorati.com/tag/SVN" rel="tag">SVN,
,