[darcs-users] Real-world darcs scenario (was: Win32 build of darcs again)

Kevin Smith yarcs at qualitycode.com
Thu Mar 25 04:08:35 UTC 2004


libogen . wrote:
> I'd like to see how both systems handle the following scenario:

I'll share a few hints, because darcs is so radically different from 
conventional RCS systems like CVS or even Subversion. This is not your 
parent's RCS!

> i. At a certain point in the development of a webpage (which belongs to 
> a repository) there may be two different approaches to complete a 
> certain task eg. XSL transform a set of XML files.
> ii. Dev continues based on approach A until the task is complete.
> iii. Curious as to whether approach B would be better, I checkout the 
> revision of the webpage which existed at stage i.

Here, you are creating a branch. With darcs, this probably means 
creating a second repository. Most likely, you would use "get" to pull 
based on a tag in the original repo.

Contrast that with CVS, where you would be adding a new branch to the 
single, centralized repo.

> iv. Dev continues using approach B in parallel until the task is complete.
> v. The completed webpages based on both approaches are compared and the 
> one based on approach B is selected.
> vi. The redundant approach A's revisions are removed from the repository 
> leaving a complete history of the revisions to the webpage based only on 
> approach B.

With darcs, the A code was never in the B repo, and vice versa. So the B 
repo becomes the official repo, the entire A repo is deleted, and it is 
as if A never happened.

If you want to bring some or all of A into B, you can, using "pull". In 
fact, if other development is continuing that is common to both A and B, 
you'll be pushing or pulling those changes between A and B on a regular 
basis.

Note also that the B repo might be a copy on your local hard drive. Even 
if A is public, B does not have to be. This represents the power of a 
distributed RCS, where you can create a private fork without needing 
permission.

> I'm also keen to locate both system's repositories at my webhost and 
> access them using ssh but my current hosting plan doesn't include shell 
> access so I'll have to put in a request and cross fingers!

I used ftp to mirror my local repo up to a web host for a while. It's 
not ideal, but if your repo is small it's workable.

Kevin




More information about the darcs-users mailing list