[darcs-users] Darcs evaluation

Siegel, Steven N. (GSFC-585.0)[TELOPHASE CORP] steven.n.siegel at nasa.gov
Thu Oct 6 18:24:09 UTC 2011


I could not find verification that I replied back to you so, this is to thank you for your help. The data will be used in the evaluation process.

Steven Siegel
Telophase Corporation
http://www.telophase.com
ssiegel at telophase.com
 
Cell (301) 452-2352
NASA Phone:  (301) 614-5409  or  x45409
NASA e-mail:  steven.n.siegel at nasa.gov


-----Original Message-----
From: Eric Kow [mailto:eric.kow at gmail.com] On Behalf Of Eric Kow
Sent: Thursday, September 29, 2011 10:30 AM
To: Siegel, Steven N. (GSFC-585.0)[TELOPHASE CORP]
Cc: darcs-users at darcs.net
Subject: Re: [darcs-users] Darcs evaluation

Steven,

Thanks for considering Darcs.

> I have a small questioner that I have
> attached and would like to evaluate your responses.

Two general notes:

1. Darcs is a revision/version control system (VCS), so I'm not sure
   how well it would fit your seemingly more general needs for a CM
   tool [I'm not familiar with CM tools, I'm afraid].  But if you are
   looking into Darcs as a general option of combining a generic VCS
   with some other CM components, we'd be happy to answer any questions

2. We do not currently recommend Darcs for use in large projects; however, it
   may be the case that you have many small-to-medium sized projects rather
   than a few single large projects.  In that case, Darcs may be used quite
   productively.

Now to the questions...
[hoping others chime in if they disagree with me]

On Tue, Sep 27, 2011 at 12:29:20 -0500, Siegel, Steven N. (GSFC-585.0)[TELOPHASE CORP] wrote:
> 1. Does the CM tool require purchase of any additional hardware or software?

Darcs runs on Linux, MacOS X and Windows.  Users typically run it on stock hardware, eg. personal laptops.

Support for Linux and Mac is still better than for Windows

> 2. How much administrative effort is required per month?

You may need to run darcs optimization commands.
These may be scripted with something like cron

> 3. What is the method for assigning user access rights and privileges?  
> At what level of granularity are access rights assigned?  [e.g., File, 
> Folder, Library, Other structure]

Unfortunately, Darcs does not provide permissions tracking or a notion of access rights, so the granularity for this would be at the repository level through your operating system

> 4. How are files checked out and where are the checked-out files placed?

Files are not checked out individually; rather, the user makes a copy of the full repository.

An important limitation to be aware of: Darcs does not currently have a notion of 'sub' projects. In some cases, systems like CVS/SVN may be preferable because individual directories are effectively sub-projects, whereas in Darcs a repository encompasses an entire directory tree.

> 5. How are versions of the different files stored in the 
> archive/repository? [e.g., only differences are stored, versions of 
> files are stored, other]

Darcs stores the differences only.

Darcs is fairly unique here in that it tends to focus on the differences (we call them "patches") rather than the versions.  Patches in Darcs have identifiers. If you transmit a patch from one repository to another, either by pushing over SSH, copying via HTTP or plain emailing and applying, and Darcs will recognise that both repositories contain the same patch.

For efficiency reasons, the last checked in version of the file is also stored in its entirety

> 6. Does the tool limit which editors you can use?

No

> 7. Is the check in/out feature tied to the change tracking tool and 
> visa versa such that versions of a file can be tagged with a Change 
> Request number and / or checkout cannot occur without an assigned CR?

Darcs uses a notion of a patch (changes to a set of files).  On patch creation time, you can name the patch using any arbitrary string, including a change request number.  However, once this patch has been shared with other users, renaming the patch is strongly discouraged.

You may also 'tag' a set of patches with an arbitrary string.  These tags can be added retrospectively

> 8. What audit trails are there for the software (I.e. version history, 
> build or baseline content, tracking tool information, traceability to 
> CRs)?

You can generate a version history.  Darcs also provides some search functionality to focus on particular parts of the version history.

For example, darcs changes --matches 'hunk foo'
displays all changes which involve 'foo' in one of the lines

> 9. If there is an automatic build tool, what are its limitations?

Darcs is only a revision control system, so I believe this is not applicable

> 10. Does the tool allow for promoting the state of a build or 
> baseline?  (e.g., build-for-test, acceptance-test, release)
 
It's possible (although not well supported) to use a third party mechanism such as a shell script to automatically tag patches that have eg. passed a unit test battery.

Within the darcs team, we use different darcs branches to keep track of different states of work in progress (ie. we have a main development branch, and also a upcoming-release branch that exchange patches)

> 11. How customizable are the change tracking forms and reports?

Not applicable to Darcs

> 12. Does the tool provide for bi-directional tracking of code changes, 
> to baselines, to requirements, to test cases?

> 13. What metrics reports does the tool generate?

None

> 14. How does the tool hold up under REAL concurrent use
> (load/volume/stress) (for example, selecting a deficiency number or 
> checking out/in files)?

No formal testing has been done on heavy concurrent use of Darcs See http://wiki.darcs.net/Benchmarks for some reports on on local operations

> 15. How stable is the tool?  How often are new releases made available?

We aim for a new release every six months, however we have recently fallen behind and may need to shift to a yearly schedule instead

> 16. What kind of technical support is provided?  For how long will 
> support be provided?

Darcs is an open source community. Technical support comes through email exchanges on this mailing list (by fellow Darcs users and developers).
We are also available for discussion on IRC.

It may be possible to arrange some sort of guaranteed support on a commercial basis with some members of the Darcs community, although to my awareness this has not been done before.

> 17. What, if any, changes are planned for the tool in the next two years?
 
See http://wiki.darcs.net/Roadmap

Our current objectives are

1. make darcs faster for its current users <-- we are here (moving to #2 soon) 2. build it on solid foundations (clean up library)

3. darcs3 - a rethink/rewrite of the core patch theory to Darcs [more
   than two years away]

There may be some minor feature requests and improvements along the way but basically we are moving to a stage where we'll have a lot of non-user-facing work coming up, just improving the internals.

Hope this helps,

--
Eric Kow <http://erickow.com>


More information about the darcs-users mailing list