49975386b4
- Preserve previous major release 2.48.14 as net/unison248 for compatibility reasons
20 lines
880 B
OCaml
20 lines
880 B
OCaml
diff --git a/src/copy.ml b/src/copy.ml
|
|
index b9e10f6..19c2370 100644
|
|
--- copy.ml
|
|
+++ copy.ml
|
|
@@ -1004,7 +1004,14 @@ let recursively fspathFrom pathFrom fspathTo pathTo =
|
|
let ch = Os.childrenOf fspathFrom pFrom in
|
|
Safelist.iter
|
|
(fun n -> copy (Path.child pFrom n) (Path.child pTo n)) ch
|
|
- | `ABSENT -> assert false in
|
|
+ | `ABSENT ->
|
|
+ (* BCP 4/16: Was "assert false", but this causes unison to
|
|
+ crash when (1) the copyonconflict preference is used, (2)
|
|
+ there is a conflict between a deletion and a change, and
|
|
+ (3) the change is propagated on top of the deletion. Seems
|
|
+ better to silently ignore the copy request. *)
|
|
+ ()
|
|
+ in
|
|
debug (fun () -> Util.msg " Copying recursively %s / %s\n"
|
|
(Fspath.toDebugString fspathFrom) (Path.toString pathFrom));
|
|
copy pathFrom pathTo;
|