Index: vcpx/repository/darcs/source.py
===================================================================
--- vcpx/repository/darcs/source.py	(revision 1571)
+++ vcpx/repository/darcs/source.py	(revision 1573)
@@ -40,4 +40,16 @@
             for e in entries:
                 self.addEntry(e, revision)
+
+    def __eq__(self, other):
+        return (self.revision == other.revision and
+                self.date == other.date and
+                self.author == other.author and
+                self.darcs_hash == getattr(other, 'darcs_hash', None))
+
+    def __ne__(self, other):
+        return (self.revision <> other.revision or
+                self.date <> other.date or
+                self.author <> other.author or
+                self.darcs_hash <> getattr(other, 'darcs_hash', None))
 
     def addEntry(self, entry, revision):
Index: vcpx/repository/darcs/__init__.py
===================================================================
--- vcpx/repository/darcs/__init__.py	(revision 1558)
+++ vcpx/repository/darcs/__init__.py	(revision 1574)
@@ -15,5 +15,5 @@
 
 from vcpx.repository import Repository
-from vcpx.shwrap import ExternalCommand
+from vcpx.shwrap import ExternalCommand, PIPE
 from vcpx.target import TargetInitializationFailure
 
@@ -26,4 +26,8 @@
         cget = project.config.get
         self.EXECUTABLE = cget(self.name, 'darcs-command', 'darcs')
+        cmd = self.command('--version')
+        version = ExternalCommand(command=cmd)
+        self.darcs_version = version.execute(stdout=PIPE)[0].read().strip()
+        self.log.debug('Using %s, version %s', self.EXECUTABLE, self.darcs_version)
         init_options = cget(self.name, 'init-options', '')
         if init_options:
