diff --git a/core/results.py b/core/results.py index b6f11f28..1ba728a9 100644 --- a/core/results.py +++ b/core/results.py @@ -376,7 +376,8 @@ class Results(Markable): try: do_write(outfile) except OSError as e: - # If our OSError is because dest is already a directory, we want to handle that. + # If our OSError is because dest is already a directory, we want to handle that. 21 is + # the code we get on OS X and Linux (EISDIR), 13 is what we get on Windows (EACCES). if e.errno in (EISDIR, EACCES): p = str(outfile) dirname, basename = op.split(p) diff --git a/hscommon/conflict.py b/hscommon/conflict.py index 31e72e54..0675efd0 100644 --- a/hscommon/conflict.py +++ b/hscommon/conflict.py @@ -76,7 +76,8 @@ def smart_copy(source_path: Path, dest_path: Path) -> None: try: _smart_move_or_copy(shutil.copy, source_path, dest_path) except OSError as e: - if e.errno in (EISDIR, EACCES): # it's a directory + # It's a directory, code is 21 on OS X / Linux (EISDIR) and 13 on Windows (EACCES) + if e.errno in (EISDIR, EACCES): _smart_move_or_copy(shutil.copytree, source_path, dest_path) else: raise