[PATCH] relink: abort earlier when on different devices (issue3916)

Simon Heimberg simohe at besonet.ch
Mon Nov 11 16:03:17 CST 2013


# HG changeset patch
# User Simon Heimberg <simohe at besonet.ch>
# Date 1384005058 -3600
#      Sat Nov 09 14:50:58 2013 +0100
# Node ID 879de101e03bc224aa1b7ba0cb00dc1408187b6e
# Parent  72deba4502a34ae9586ebd610979322b037ce523
relink: abort earlier when on different devices (issue3916)

Add a first check of the devices before collecting candidate files. This is
much quicker when big repos are on different devices.
Keep the existing check in prune. It checks for same device of the files. This
could probably be different in a special repo store (with symlinks).

diff -r 72deba4502a3 -r 879de101e03b hgext/relink.py
--- a/hgext/relink.py	Sat Nov 09 14:50:46 2013 +0100
+++ b/hgext/relink.py	Sat Nov 09 14:50:58 2013 +0100
@@ -48,6 +48,10 @@
         ui.status(_('there is nothing to relink\n'))
         return
 
+    if not util.samedevice(src.store.path, repo.store.path):
+        # No point in continuing
+        raise util.Abort(_('source and destination are on different devices'))
+
     locallock = repo.lock()
     try:
         remotelock = src.lock()


More information about the Mercurial-devel mailing list