monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] An experience using Monotone along with CVS


From: Venkatesh Prasad Ranganath
Subject: [Monotone-devel] An experience using Monotone along with CVS
Date: Sun, 20 Aug 2006 04:31:40 -0500

In a recent documentation/writing project, I was developing artifacts on
machine A.  As machine A did not have robust backing up system/process
in place, I wanted to maintain the repository for the project on a
alternative machine that had a robust backing up system.  One such
machine was named B and it was on a different network and physical
location relative to machine A.

A simple solution would have been to simply set up a CVS repository on
machine B and access it from machine A.  The only obstacle was that I
did not want to rely on the availability of the network while I update
the project artifacts.  So, I looked at various distributed version
control systems and stumbled upon Monotone.

Monotone was an ideal candidate for the situation.  I could setup
monotone repositories on machine A and machine B, commit my updates to
the monotone repository on machine A, and periodically sync up with the
monotone repository on machine B.  

Since I was new to Monotone, I was unfamiliar with the usage of SHA
checksums to identify versions and relations between versions.  So, I
looked around for a graphical viewer/browser utility that could aid me
in understanding and learning the "Monotone way".  Unfortunately, I
could not find one that worked well (I did look at viewmtn and
monotone-viz, but I was unsatisfied).

Also, as the project was important and had a tight schedule, I did not
want to move to entirely new grounds and screw up things during crunch
time.

So, I did the following:

 1) I setup a CVS repository on machine A that I used as the primary
repository for the project artifacts.
 2) I setup a Monotone repository on machine A that I used as a
secondary backup and intermediary repository.
 3) I setup a Monotone repository on machine B that I used as the
primary backup repository.
 4) Finally, I added log scripts to the CVS repository to do the
following when a commit was performed on the CVS repository,
    a) trigger a commit on the Monotone repository on machine A and
    b) sync the Monotone repository on machine A with the Monotone
repository on machine B.

The above setup allowed me to function smoothly by relying on my CVS
knowledge while leveraging the distributed-ness of Monotone to ensure
the existence of a current backup of the repository.

Looking back, I could have merely setup an rsync that mirrored the CVS
repository on machine A onto machine B.  However, this was not an option
as the network in which machine B existed did not allow for rsync
access.

In summary, so far, my experience with Monotone has been great and the
above setup has worked well.  It would have been even better if there
was an intuitive graphical interface (even web-based) to grok the
version information embedded in Monotone repository.  I think a monotone
extension to viewvc could simplify the transition from using CVS/SVN to
Monotone.

If you have more questions or suggestions, then please post them on the
mailing list or directly to me.

-- 

Venkatesh Prasad Ranganath 
e-id: address@hidden 
e-id: address@hidden
web:  http://www.cis.ksu.edu/~rvprasad
blog: http://venkateshthinks.blogspot.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]