aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido Falsi <madpilot@FreeBSD.org>2018-01-05 18:12:14 +0000
committerGuido Falsi <madpilot@FreeBSD.org>2018-01-05 18:12:14 +0000
commit35e8af4c286f26e51787ea12eafe3780a16e2276 (patch)
tree274fa542811d77e7f0322df68314416aa6772d67
parent9adc305fd2865e3b5db39982cbcf4eae284b08ef (diff)
downloadports-35e8af4c286f26e51787ea12eafe3780a16e2276.tar.gz
ports-35e8af4c286f26e51787ea12eafe3780a16e2276.zip
Notes
-rw-r--r--net/unison/Makefile2
-rw-r--r--net/unison/files/patch-copy.ml20
2 files changed, 21 insertions, 1 deletions
diff --git a/net/unison/Makefile b/net/unison/Makefile
index 7bed7fdc682b..56370df9b7ea 100644
--- a/net/unison/Makefile
+++ b/net/unison/Makefile
@@ -3,7 +3,7 @@
PORTNAME= unison
PORTVERSION= 2.48.4
-PORTREVISION?= 1
+PORTREVISION?= 2
CATEGORIES= net
MASTER_SITES= http://www.cis.upenn.edu/~bcpierce/unison/download/releases/${DISTNAME}/
DISTFILES= ${EXTRACT_ONLY} ${EXTRA_DOCS}
diff --git a/net/unison/files/patch-copy.ml b/net/unison/files/patch-copy.ml
new file mode 100644
index 000000000000..3c961c6773ee
--- /dev/null
+++ b/net/unison/files/patch-copy.ml
@@ -0,0 +1,20 @@
+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;