From b66996e0a104faeacf96918521930e2ea2e1206d Mon Sep 17 00:00:00 2001 From: "Mr. Outis" Date: Fri, 6 Sep 2019 13:24:25 -0500 Subject: [PATCH] ssh: support reflinks in Darwin --- dvc/remote/ssh/connection.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dvc/remote/ssh/connection.py b/dvc/remote/ssh/connection.py index 039652e61..4e1e52a43 100644 --- a/dvc/remote/ssh/connection.py +++ b/dvc/remote/ssh/connection.py @@ -295,7 +295,15 @@ class SSHConnection: self.sftp.symlink(src, dest) def reflink(self, src, dest): - self.execute("cp --reflink {} {}".format(src, dest)) + if self.uname == "Linux": + return self.execute("cp --reflink {} {}".format(src, dest)) + + if self.uname == "Darwin": + return self.execute("cp -c {} {}".format(src, dest)) + + raise DvcException( + "'{}' is not supported as a SSH remote".format(self.uname) + ) def hardlink(self, src, dest): self.execute("ln {} {}".format(src, dest))