<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xml" href="compare-ml.xsl"?>
<!DOCTYPE comparison SYSTEM "comparison.dtd">
<!--
TODO:

* Add intelligent merging of renamed paths.
* Add IDE integration.
* Add Speed (?)
-->
<comparison>
    <meta>
        <implementations>
            <impl id="cvs">
                <name>CVS</name>
                <url>http://www.cvshome.org/</url>
            </impl>
            <impl id="svn">
                <name>SVN</name>
                <url>http://subversion.tigris.org/</url>
                <fullname>Subversion Version Control System</fullname>
            </impl>
            <impl id="bazaar">
                <name>Bazaar</name>
                <url>http://bazaar-vcs.org/</url>
                <vendor>Canonical</vendor>
            </impl>
            <impl id="toobad">
                <name>Toobad</name>
                <url>http://toobad.tld/</url>
                <fullname>Not-Too-Bad</fullname>
                <vendor>MyCompany</vendor>
            </impl>

        </implementations>
        <timestamp>
            $Id: scm-comparison.xml 61 2005-04-06 17:09:28Z shlomif $
        </timestamp>
    </meta>
    <contents>
<section id="main">
    <title>Version Control System Comparison</title>
    <expl>
        This is a comparison of version-control systems. It is split
        into several categories and sub-categories under which the
        systems are checked.
    </expl>
    <section id="repos_operations">
        <title>Repository Operations</title>
        <section id="atomic_commits">
            <title>Atomic Commits</title>
            <expl>
                Support for atomic commits means that if an operation on the
                repository is interrupted in the middle, the repository will
                not be left in an inconsistant state. Are the check-in
                operations atomic? Are the check-in operations atomic, or can
                interrupting an operation leave the repository in an
                intermediate state?
            </expl>
            <compare>
                <s id="cvs">No. CVS commits are not atomic.</s>
                <s id="arch">Yes. Commits are atomic.</s>
                <s id="darcs">Yes. Commits are atomic.</s>
                <s id="subversion">Commits are atomic.</s>
                <s id="superversion">Commits are atomic.</s>
                <s id="svk">Commits are atomic.</s>
                <s id="aegis">Commits are atomic.</s>
                <s id="bitkeeper">Yes (but need to verify)</s>
                <s id="monotone">Yes.</s>
                <s id="opencm">Yes. Commits are atomic.</s>
                <s id="perforce">Yes. Commits are atomic.</s>
                <s id="vesta">Yes. Commits are atomic.</s>
                <s id="co-op">Yes. Commits are atomic.</s>
                <s id="vss">No. VSS commits are not atomic.</s>
                <s id="cmsynergy">Yes. Commits are atomic.</s>
            </compare>
        </section>
    </section>
</section>
    </contents>
</comparison>
