summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin C. Pierce <bcpierce@cis.upenn.edu>2008-06-23 22:05:17 +0000
committerBenjamin C. Pierce <bcpierce@cis.upenn.edu>2008-06-23 22:05:17 +0000
commit1934ced844bcbe57f5e50f21e5958f035641b8b4 (patch)
treea4678a530b49f02a66b1c1a240ba0839c19ae117
parent829bd6646dea57c89842f254051741106861d91d (diff)
downloadunison-1934ced844bcbe57f5e50f21e5958f035641b8b4.zip
unison-1934ced844bcbe57f5e50f21e5958f035641b8b4.tar.gz
unison-1934ced844bcbe57f5e50f21e5958f035641b8b4.tar.bz2
* When using the internal transfer method, remove any temp file on the
destination (which may be left over from a previous interrupted run of Unison) before starting the transfer. * Fixed (hopefully!) the bug causing Unison to backup the new archive version after a (partially or fully) successful merge. * Updated copyright notices to 2008. :-)
-rwxr-xr-xdoc/unison-manual.tex2
-rw-r--r--src/RECENTNEWS13
-rw-r--r--src/abort.ml2
-rw-r--r--src/case.ml2
-rw-r--r--src/case.mli2
-rw-r--r--src/checksum.ml2
-rw-r--r--src/checksum.mli2
-rw-r--r--src/clroot.ml2
-rw-r--r--src/clroot.mli2
-rw-r--r--src/common.ml2
-rw-r--r--src/common.mli2
-rw-r--r--src/copy.ml11
-rw-r--r--src/fileinfo.ml2
-rw-r--r--src/fileinfo.mli2
-rw-r--r--src/files.ml3
-rw-r--r--src/files.mli2
-rw-r--r--src/fileutil.ml2
-rw-r--r--src/fileutil.mli2
-rw-r--r--src/fingerprint.ml2
-rw-r--r--src/fingerprint.mli2
-rw-r--r--src/fspath.ml2
-rw-r--r--src/fspath.mli2
-rw-r--r--src/globals.ml2
-rw-r--r--src/globals.mli2
-rw-r--r--src/linkgtk.ml2
-rw-r--r--src/linkgtk2.ml2
-rw-r--r--src/linktext.ml2
-rw-r--r--src/linktk.ml2
-rw-r--r--src/lock.ml2
-rw-r--r--src/lock.mli2
-rw-r--r--src/lwt/pqueue.ml2
-rw-r--r--src/lwt/pqueue.mli2
-rw-r--r--src/main.ml2
-rw-r--r--src/mkProjectInfo.ml1
-rw-r--r--src/name.ml2
-rw-r--r--src/name.mli2
-rw-r--r--src/os.ml23
-rw-r--r--src/os.mli2
-rw-r--r--src/osx.ml2
-rw-r--r--src/osx.mli2
-rw-r--r--src/osxsupport.c2
-rw-r--r--src/path.ml2
-rw-r--r--src/path.mli2
-rw-r--r--src/pixmaps.ml2
-rw-r--r--src/pred.ml2
-rw-r--r--src/pred.mli2
-rw-r--r--src/props.ml2
-rw-r--r--src/props.mli2
-rw-r--r--src/recon.ml2
-rw-r--r--src/recon.mli2
-rw-r--r--src/remote.ml2
-rw-r--r--src/remote.mli2
-rw-r--r--src/sortri.ml2
-rw-r--r--src/sortri.mli2
-rw-r--r--src/stasher.ml2
-rw-r--r--src/strings.mli2
-rw-r--r--src/test.ml2
-rw-r--r--src/test.mli2
-rw-r--r--src/transfer.ml2
-rw-r--r--src/transfer.mli2
-rw-r--r--src/transport.ml2
-rw-r--r--src/transport.mli2
-rw-r--r--src/tree.ml2
-rw-r--r--src/tree.mli2
-rw-r--r--src/ubase/rx.ml2
-rw-r--r--src/ubase/rx.mli2
-rw-r--r--src/ubase/safelist.ml2
-rw-r--r--src/ubase/safelist.mli2
-rw-r--r--src/ubase/trace.ml2
-rw-r--r--src/ubase/trace.mli2
-rw-r--r--src/ubase/uarg.ml2
-rw-r--r--src/ubase/util.ml2
-rw-r--r--src/ubase/util.mli2
-rw-r--r--src/ui.mli2
-rw-r--r--src/uicommon.ml2
-rw-r--r--src/uicommon.mli2
-rw-r--r--src/uigtk2.ml2
-rw-r--r--src/uigtk2.mli2
-rw-r--r--src/uimacnew/ProgressCell.m2
-rw-r--r--src/uitext.ml2
-rw-r--r--src/uitext.mli2
-rw-r--r--src/update.ml4
-rw-r--r--src/update.mli2
-rw-r--r--src/uutil.ml2
-rw-r--r--src/uutil.mli2
-rw-r--r--src/xferhint.ml2
-rw-r--r--src/xferhint.mli2
87 files changed, 119 insertions, 98 deletions
diff --git a/doc/unison-manual.tex b/doc/unison-manual.tex
index e7e85cd..a7c22f3 100755
--- a/doc/unison-manual.tex
+++ b/doc/unison-manual.tex
@@ -2042,7 +2042,7 @@ whole-file transfers. (This is probably slower than letting Unison copy
small files by itself, but can be useful for testing.) If you set it to a
larger value, Unison will use the external utility for all files larger than
this size (which is given in kilobytes, so setting it to 1000 will cause the
-external tool to be used for all transfers larger than a megabyte).
+external tool to be used for all transfers larger than a megabyte).
If you want to use a different external copy utility, set the {\tt copyprog}
preference.
diff --git a/src/RECENTNEWS b/src/RECENTNEWS
index 3fa1f02..0f1c548 100644
--- a/src/RECENTNEWS
+++ b/src/RECENTNEWS
@@ -1,3 +1,16 @@
+CHANGES FROM VERSION 2.29.4
+
+* When using the internal transfer method, remove any temp file on the
+ destination (which may be left over from a previous interrupted run
+ of Unison) before starting the transfer.
+
+* Fixed (hopefully!) the bug causing Unison to backup the new archive
+ version after a (partially or fully) successful merge.
+
+* Updated copyright notices to 2008. :-)
+
+
+-------------------------------
CHANGES FROM VERSION 2.29.3
* Updated documentation to describe new features
diff --git a/src/abort.ml b/src/abort.ml
index 20cabff..71c978e 100644
--- a/src/abort.ml
+++ b/src/abort.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/abort.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let debug = Trace.debug "abort"
diff --git a/src/case.ml b/src/case.ml
index 647388d..ac98a7b 100644
--- a/src/case.ml
+++ b/src/case.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/case.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* The update detector, reconciler, and transporter behave differently *)
(* depending on whether the local and/or remote file system is case *)
diff --git a/src/case.mli b/src/case.mli
index 569f10e..ea15539 100644
--- a/src/case.mli
+++ b/src/case.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/case.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
val insensitive : unit -> bool
diff --git a/src/checksum.ml b/src/checksum.ml
index adaae66..48824c0 100644
--- a/src/checksum.ml
+++ b/src/checksum.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/checksum.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* The checksum (or fast fingerprinting) algorithm must be fast and has to *)
(* be called in a rolling fashion (i.e. we must be able to calculate a new *)
diff --git a/src/checksum.mli b/src/checksum.mli
index 8c2a4e9..673d85f 100644
--- a/src/checksum.mli
+++ b/src/checksum.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/checksum.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type t = int
type u = int array
diff --git a/src/clroot.ml b/src/clroot.ml
index d1c6c60..7849908 100644
--- a/src/clroot.ml
+++ b/src/clroot.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/clroot.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*
This file parses the unison command-line arguments that
diff --git a/src/clroot.mli b/src/clroot.mli
index ada4123..6788b0e 100644
--- a/src/clroot.mli
+++ b/src/clroot.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/clroot.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Command-line roots *)
type clroot =
diff --git a/src/common.ml b/src/common.ml
index c8a57d0..a3d3e97 100644
--- a/src/common.ml
+++ b/src/common.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/common.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type hostname = string
diff --git a/src/common.mli b/src/common.mli
index c91e144..3a941e4 100644
--- a/src/common.mli
+++ b/src/common.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/common.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(***************************************************************************)
(* COMMON TYPES USED BY ALL MODULES *)
diff --git a/src/copy.ml b/src/copy.ml
index 42c38d4..e9c497d 100644
--- a/src/copy.ml
+++ b/src/copy.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/copy.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let (>>=) = Lwt.bind
@@ -326,8 +326,13 @@ let reallyTransferFile
(if ressOnly then
(* Skip data fork *)
Lwt.return ()
- else
+ else begin
(* Data fork *)
+ if Os.exists fspathTo pathTo then begin
+ debug (fun() -> Util.msg "Removing old temp file %s / %s\n"
+ (Fspath.toString fspathTo) (Path.toString pathTo));
+ Os.delete fspathTo pathTo
+ end;
startReceivingFile
fspathTo pathTo realPathTo `DATA update srcFileSize id file_id
>>= (fun (outfd, infd, firstBi, remBi) ->
@@ -348,7 +353,7 @@ let reallyTransferFile
Remote.MsgIdMap.remove file_id !decompressor; (* For GC *)
close_all_no_error infd outfd;
Lwt.fail e)
- )) >>= (fun () ->
+ )end) >>= (fun () ->
(* Resource fork *)
(if ressLength > Uutil.Filesize.zero then begin
diff --git a/src/fileinfo.ml b/src/fileinfo.ml
index 7dfdc05..038c9a3 100644
--- a/src/fileinfo.ml
+++ b/src/fileinfo.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fileinfo.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let debugV = Util.debug "fileinfo+"
diff --git a/src/fileinfo.mli b/src/fileinfo.mli
index ab6c92d..c1048d7 100644
--- a/src/fileinfo.mli
+++ b/src/fileinfo.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fileinfo.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type typ = [`ABSENT | `FILE | `DIRECTORY | `SYMLINK]
val type2string : typ -> string
diff --git a/src/files.ml b/src/files.ml
index 72e20ac..9139553 100644
--- a/src/files.ml
+++ b/src/files.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/files.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
open Lwt
@@ -884,6 +884,7 @@ let merge root1 root2 path id ui1 ui2 showMergeFn =
(Path.toString path));
if not (Stasher.shouldBackupCurrent path) then
Util.msg "Warning: 'backupcurrent' is not set for path %s\n" (Path.toString path);
+ Stasher.stashCurrentVersion workingDirForMerge localPath1 (Some workingarch);
let infoarch = Fileinfo.get false workingDirForMerge workingarch in
let dig = Os.fingerprint arch_fspath Path.empty infoarch in
debug (fun () -> Util.msg "New digest is %s\n" (Os.fullfingerprint_to_string dig));
diff --git a/src/files.mli b/src/files.mli
index c5e865e..8271cc3 100644
--- a/src/files.mli
+++ b/src/files.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/files.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* As usual, these functions should only be called by the client (i.e., in *)
(* the same address space as the user interface). *)
diff --git a/src/fileutil.ml b/src/fileutil.ml
index 8fb22ce..4499f81 100644
--- a/src/fileutil.ml
+++ b/src/fileutil.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fileutil.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Convert backslashes in a string to forward slashes. Useful in Windows. *)
let backslashes2forwardslashes s0 =
diff --git a/src/fileutil.mli b/src/fileutil.mli
index b4ac2b7..8ee6265 100644
--- a/src/fileutil.mli
+++ b/src/fileutil.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fileutil.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Convert backslashes in a string to forward slashes. Useful in Windows. *)
val backslashes2forwardslashes : string -> string
diff --git a/src/fingerprint.ml b/src/fingerprint.ml
index 3f176ae..4b48264 100644
--- a/src/fingerprint.ml
+++ b/src/fingerprint.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fingerprint.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* NOTE: IF YOU CHANGE TYPE "FINGERPRINT", THE ARCHIVE FORMAT CHANGES; *)
(* INCREMENT "UPDATE.ARCHIVEFORMAT" *)
diff --git a/src/fingerprint.mli b/src/fingerprint.mli
index a67ba0a..af8e7a8 100644
--- a/src/fingerprint.mli
+++ b/src/fingerprint.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fingerprint.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type t
diff --git a/src/fspath.ml b/src/fspath.ml
index ce32a4e..c9c1ae8 100644
--- a/src/fspath.ml
+++ b/src/fspath.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fspath.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Defines an abstract type of absolute filenames (fspaths). Keeping the *)
(* type abstract lets us enforce some invariants which are important for *)
diff --git a/src/fspath.mli b/src/fspath.mli
index a6a4efa..8246580 100644
--- a/src/fspath.mli
+++ b/src/fspath.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/fspath.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Defines an abstract type of absolute filenames (fspaths) *)
diff --git a/src/globals.ml b/src/globals.ml
index 901c9e3..5ac7776 100644
--- a/src/globals.ml
+++ b/src/globals.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/globals.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
diff --git a/src/globals.mli b/src/globals.mli
index fb30218..4f8ba28 100644
--- a/src/globals.mli
+++ b/src/globals.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/globals.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Global variables and functions needed by top-level modules and user *)
(* interfaces *)
diff --git a/src/linkgtk.ml b/src/linkgtk.ml
index 087d999..9f5e35b 100644
--- a/src/linkgtk.ml
+++ b/src/linkgtk.ml
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/linkgtk.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module TopLevel = Main.Body(Uigtk.Body)
diff --git a/src/linkgtk2.ml b/src/linkgtk2.ml
index f3e0932..f73432d 100644
--- a/src/linkgtk2.ml
+++ b/src/linkgtk2.ml
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/linkgtk2.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module TopLevel = Main.Body(Uigtk2.Body)
diff --git a/src/linktext.ml b/src/linktext.ml
index afc7524..166aa2d 100644
--- a/src/linktext.ml
+++ b/src/linktext.ml
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/linktext.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module TopLevel = Main.Body(Uitext.Body)
diff --git a/src/linktk.ml b/src/linktk.ml
index fc6f192..74659ae 100644
--- a/src/linktk.ml
+++ b/src/linktk.ml
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/linktk.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module TopLevel = Main.Body(Uitk.Body)
diff --git a/src/lock.ml b/src/lock.ml
index fe4a41c..745e806 100644
--- a/src/lock.ml
+++ b/src/lock.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/lock.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let rename oldFile newFile =
begin try Unix.link oldFile newFile with Unix.Unix_error _ -> () end;
diff --git a/src/lock.mli b/src/lock.mli
index b843c8b..7140bb4 100644
--- a/src/lock.mli
+++ b/src/lock.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/lock.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* A simple utility module for setting and releasing inter-process locks
using entries in the filesystem. *)
diff --git a/src/lwt/pqueue.ml b/src/lwt/pqueue.ml
index 7e2d8db..6982b7b 100644
--- a/src/lwt/pqueue.ml
+++ b/src/lwt/pqueue.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/lwt/pqueue.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module type OrderedType =
sig
diff --git a/src/lwt/pqueue.mli b/src/lwt/pqueue.mli
index 5bd3c76..152d1b5 100644
--- a/src/lwt/pqueue.mli
+++ b/src/lwt/pqueue.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/lwt/pqueue.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module type OrderedType =
sig
diff --git a/src/main.ml b/src/main.ml
index 332a0df..9648299 100644
--- a/src/main.ml
+++ b/src/main.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/main.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* ---------------------------------------------------------------------- *)
diff --git a/src/mkProjectInfo.ml b/src/mkProjectInfo.ml
index 2f90384..1a010e7 100644
--- a/src/mkProjectInfo.ml
+++ b/src/mkProjectInfo.ml
@@ -74,3 +74,4 @@ Printf.printf "NAME=%s\n" projectName;;
+
diff --git a/src/name.ml b/src/name.ml
index c5154a2..4de900a 100644
--- a/src/name.ml
+++ b/src/name.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/name.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* NOTE: IF YOU CHANGE TYPE "NAME", THE ARCHIVE FORMAT CHANGES;
INCREMENT "UPDATE.ARCHIVEFORMAT" *)
diff --git a/src/name.mli b/src/name.mli
index 748d0df..3d36ec5 100644
--- a/src/name.mli
+++ b/src/name.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/name.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type t
diff --git a/src/os.ml b/src/os.ml
index 9edd56a..a41bc42 100644
--- a/src/os.ml
+++ b/src/os.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/os.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* This file attempts to isolate operating system specific details from the *)
(* rest of the program. *)
@@ -388,11 +388,11 @@ let runExternalProgram cmd =
if Util.osType = `Win32 && not Util.isCygwin then begin
debug (fun()-> Util.msg "Executing external program windows-style\n");
let c = Unix.open_process_in ("\"" ^ cmd ^ "\"") in
- let mergeLog = readChannelTillEof c in
+ let log = readChannelTillEof c in
let returnValue = Unix.close_process_in c in
let mergeResultLog =
cmd ^
- (if mergeLog <> "" then "\n\n" ^ mergeLog else "") ^
+ (if log <> "" then "\n\n" ^ log else "") ^
(if returnValue <> Unix.WEXITED 0 then
"\n\n" ^ Util.process_status_to_string returnValue
else
@@ -403,18 +403,19 @@ let runExternalProgram cmd =
Lwt_unix.open_process_full cmd (Unix.environment ())
>>= (fun (out, ipt, err) ->
readChannelsTillEof [out;err]
- >>= (function [mergeLogOut;mergeLogErr] ->
+ >>= (function [logOut;logErr] ->
Lwt_unix.close_process_full (out, ipt, err)
>>= (fun returnValue ->
+ let logOut = Util.trimWhitespace logOut in
+ let logErr = Util.trimWhitespace logErr in
return (returnValue, (
- cmd
- ^ "\n\n" ^
- (if mergeLogOut = "" || mergeLogErr = ""
- then mergeLogOut ^ mergeLogErr
- else mergeLogOut ^ "\n\n" ^ ("Error Output:"^mergeLogErr))
- ^"\n\n"
+ (* cmd
+ ^ "\n\n" ^ *)
+ (if logOut = "" || logErr = ""
+ then logOut ^ logErr
+ else logOut ^ "\n\n" ^ ("Error Output:" ^ logErr))
^ (if returnValue = Unix.WEXITED 0
then ""
- else Util.process_status_to_string returnValue))))
+ else "\n\n" ^ Util.process_status_to_string returnValue))))
(* Stop typechechecker from complaining about non-exhaustive pattern above *)
| _ -> assert false)))
diff --git a/src/os.mli b/src/os.mli
index b8bdcc5..888c169 100644
--- a/src/os.mli
+++ b/src/os.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/os.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
val myCanonicalHostName : string
diff --git a/src/osx.ml b/src/osx.ml
index a2c54d8..a841a5a 100644
--- a/src/osx.ml
+++ b/src/osx.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/osx.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
external isMacOSXPred : unit -> bool = "isMacOSX"
diff --git a/src/osx.mli b/src/osx.mli
index 8392b57..aade3c1 100644
--- a/src/osx.mli
+++ b/src/osx.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/osx.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
val init : bool -> unit
val isMacOSX : bool
diff --git a/src/osxsupport.c b/src/osxsupport.c
index a0a9457..2a1f638 100644
--- a/src/osxsupport.c
+++ b/src/osxsupport.c
@@ -1,5 +1,5 @@
/* Unison file synchronizer: src/osxsupport.c */
-/* Copyright 1999-2007 (see COPYING for details) */
+/* Copyright 1999-2008 (see COPYING for details) */
#include <caml/mlvalues.h>
#include <caml/alloc.h>
diff --git a/src/path.ml b/src/path.ml
index 9233707..1f45da0 100644
--- a/src/path.ml
+++ b/src/path.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/path.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Defines an abstract type of relative pathnames *)
diff --git a/src/path.mli b/src/path.mli
index ebd6122..2beb609 100644
--- a/src/path.mli
+++ b/src/path.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/path.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Abstract type of relative pathnames *)
type 'a path
diff --git a/src/pixmaps.ml b/src/pixmaps.ml
index 8b97e5e..dd02c35 100644
--- a/src/pixmaps.ml
+++ b/src/pixmaps.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/pixmaps.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let copyAB color = [|
(* width height num_colors chars_per_pixel *)
diff --git a/src/pred.ml b/src/pred.ml
index 5a4b5be..5236795 100644
--- a/src/pred.ml
+++ b/src/pred.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/pred.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let debug = Util.debug "pred"
diff --git a/src/pred.mli b/src/pred.mli
index cb4a6fb..cdf97f9 100644
--- a/src/pred.mli
+++ b/src/pred.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/pred.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Predicates over paths.
diff --git a/src/props.ml b/src/props.ml
index 3871d90..a44173c 100644
--- a/src/props.ml
+++ b/src/props.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/props.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let debug = Util.debug "props"
diff --git a/src/props.mli b/src/props.mli
index a9b6941..ce94dfe 100644
--- a/src/props.mli
+++ b/src/props.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/props.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* File properties: time, permission, length, etc. *)
diff --git a/src/recon.ml b/src/recon.ml
index f4245a2..0bbb6e7 100644
--- a/src/recon.ml
+++ b/src/recon.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/recon.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
diff --git a/src/recon.mli b/src/recon.mli
index 7017cdf..ddf3345 100644
--- a/src/recon.mli
+++ b/src/recon.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/recon.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
val reconcileAll :
Common.updateItem list Common.oneperpath
diff --git a/src/remote.ml b/src/remote.ml
index 5713035..e414f8e 100644
--- a/src/remote.ml
+++ b/src/remote.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/remote.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*
XXX
diff --git a/src/remote.mli b/src/remote.mli
index 433847e..841ee6c 100644
--- a/src/remote.mli
+++ b/src/remote.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/remote.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module Thread : sig
val unwindProtect : (unit -> 'a Lwt.t) -> (exn -> unit Lwt.t) -> 'a Lwt.t
diff --git a/src/sortri.ml b/src/sortri.ml
index 4ea32df..fa591da 100644
--- a/src/sortri.ml
+++ b/src/sortri.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/sortri.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
diff --git a/src/sortri.mli b/src/sortri.mli
index a259e1c..edb85b9 100644
--- a/src/sortri.mli
+++ b/src/sortri.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/sortri.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Sort a list of recon items according to the current setting of
various preferences (defined in sort.ml, and accessible from the
diff --git a/src/stasher.ml b/src/stasher.ml
index d13d50f..c5f3d01 100644
--- a/src/stasher.ml
+++ b/src/stasher.ml
@@ -1,6 +1,6 @@
(* Unison file synchronizer: src/stasher.ml *)
(* $I2: Last modified by lescuyer *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*------------------------------------------------------------------------------------*)
(* Preferences for backing up and stashing *)
diff --git a/src/strings.mli b/src/strings.mli
index e1c6785..0d9d37e 100644
--- a/src/strings.mli
+++ b/src/strings.mli
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/strings.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
val docs : (string * (string * string)) list
diff --git a/src/test.ml b/src/test.ml
index 450d896..47e91fe 100644
--- a/src/test.ml
+++ b/src/test.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/test.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let (>>=) = Lwt.(>>=)
diff --git a/src/test.mli b/src/test.mli
index 42be7a7..279070f 100644
--- a/src/test.mli
+++ b/src/test.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/test.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Internal self-tests *)
diff --git a/src/transfer.ml b/src/transfer.ml
index 34d945b..09534e1 100644
--- a/src/transfer.ml
+++ b/src/transfer.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/transfer.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* rsync compression algorithm
diff --git a/src/transfer.mli b/src/transfer.mli
index 925456b..dde5b8d 100644
--- a/src/transfer.mli
+++ b/src/transfer.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/transfer.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*
Rsync : general algorithm description
diff --git a/src/transport.ml b/src/transport.ml
index a5f0a43..9b891f9 100644
--- a/src/transport.ml
+++ b/src/transport.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/transport.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
open Lwt
diff --git a/src/transport.mli b/src/transport.mli
index 0fdd3c4..2571d25 100644
--- a/src/transport.mli
+++ b/src/transport.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/transport.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Executes the actions implied by the reconItem list. *)
val transportItem :
diff --git a/src/tree.ml b/src/tree.ml
index 5a3a947..24f5af3 100644
--- a/src/tree.ml
+++ b/src/tree.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/tree.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type ('a, 'b) t =
Node of ('a * ('a, 'b) t) list * 'b option
diff --git a/src/tree.mli b/src/tree.mli
index f1537d3..c31aa1d 100644
--- a/src/tree.mli
+++ b/src/tree.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/tree.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* An ('a, 'b) t is a tree with 'a-labeled arcs and 'b-labeled nodes. *)
(* Labeling for the internal nodes is optional *)
diff --git a/src/ubase/rx.ml b/src/ubase/rx.ml
index 24ac3c1..503f9e0 100644
--- a/src/ubase/rx.ml
+++ b/src/ubase/rx.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/rx.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*
Inspired by some code and algorithms from Mark William Hopkins
(regexp.tar.gz, available in the comp.compilers file archive)
diff --git a/src/ubase/rx.mli b/src/ubase/rx.mli
index ece4233..4705570 100644
--- a/src/ubase/rx.mli
+++ b/src/ubase/rx.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/rx.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
type t
diff --git a/src/ubase/safelist.ml b/src/ubase/safelist.ml
index 78bfc88..90ea10a 100644
--- a/src/ubase/safelist.ml
+++ b/src/ubase/safelist.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/safelist.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let filterBoth f l =
let rec loop r1 r2 = function
diff --git a/src/ubase/safelist.mli b/src/ubase/safelist.mli
index 738984e..4f7a15a 100644
--- a/src/ubase/safelist.mli
+++ b/src/ubase/safelist.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/safelist.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* All functions here are tail recursive and will work for arbitrary
sized lists (unlike some of the standard ones). The intention is that
diff --git a/src/ubase/trace.ml b/src/ubase/trace.ml
index 936ba5b..a4bc904 100644
--- a/src/ubase/trace.ml
+++ b/src/ubase/trace.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/trace.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* ---------------------------------------------------------------------- *)
(* Choosing where messages go *)
diff --git a/src/ubase/trace.mli b/src/ubase/trace.mli
index f0a9eea..124aad5 100644
--- a/src/ubase/trace.mli
+++ b/src/ubase/trace.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/trace.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* ---------------------------------------------------------------------- *)
(* Debugging support *)
diff --git a/src/ubase/uarg.ml b/src/ubase/uarg.ml
index 1bd9ce4..a47f767 100644
--- a/src/ubase/uarg.ml
+++ b/src/ubase/uarg.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/uarg.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* by Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
(* Slightly modified by BCP, July 1999 *)
diff --git a/src/ubase/util.ml b/src/ubase/util.ml
index 53c0e27..912ceb7 100644
--- a/src/ubase/util.ml
+++ b/src/ubase/util.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/util.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*****************************************************************************)
(* CASE INSENSITIVE COMPARISON *)
diff --git a/src/ubase/util.mli b/src/ubase/util.mli
index 1e91f26..d286b32 100644
--- a/src/ubase/util.mli
+++ b/src/ubase/util.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ubase/util.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Miscellaneous utility functions and datatypes *)
diff --git a/src/ui.mli b/src/ui.mli
index 10a4095..96ae185 100644
--- a/src/ui.mli
+++ b/src/ui.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/ui.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* The module Ui provides only the user interface signature.
Implementations are provided by Uitext and Uitk. *)
diff --git a/src/uicommon.ml b/src/uicommon.ml
index 0014734..569d43b 100644
--- a/src/uicommon.ml
+++ b/src/uicommon.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uicommon.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
open Lwt
diff --git a/src/uicommon.mli b/src/uicommon.mli
index 5a400fd..25f4960 100644
--- a/src/uicommon.mli
+++ b/src/uicommon.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uicommon.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* Kinds of UI *)
type interface =
diff --git a/src/uigtk2.ml b/src/uigtk2.ml
index 8a589d1..a3b5ea6 100644
--- a/src/uigtk2.ml
+++ b/src/uigtk2.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uigtk2.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
open Lwt
diff --git a/src/uigtk2.mli b/src/uigtk2.mli
index 4909835..992a91d 100644
--- a/src/uigtk2.mli
+++ b/src/uigtk2.mli
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/uigtk2.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module Body : Uicommon.UI
diff --git a/src/uimacnew/ProgressCell.m b/src/uimacnew/ProgressCell.m
index bfa1ea7..3e04024 100644
--- a/src/uimacnew/ProgressCell.m
+++ b/src/uimacnew/ProgressCell.m
@@ -1,5 +1,5 @@
/******************************************************************************
- * Copyright 2007 (see file COPYING for more information)
+ * Copyright 2008 (see file COPYING for more information)
*
* Loosely based on TorrentCell from Transmission (.png files are from
* the original).
diff --git a/src/uitext.ml b/src/uitext.ml
index b2ec468..da873aa 100644
--- a/src/uitext.ml
+++ b/src/uitext.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uitext.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
open Lwt
diff --git a/src/uitext.mli b/src/uitext.mli
index 9314a9c..8777b66 100644
--- a/src/uitext.mli
+++ b/src/uitext.mli
@@ -1,4 +1,4 @@
(* Unison file synchronizer: src/uitext.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module Body : Uicommon.UI
diff --git a/src/update.ml b/src/update.ml
index 31f42c8..a732009 100644
--- a/src/update.ml
+++ b/src/update.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/update.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
open Common
let (>>=) = Lwt.(>>=)
@@ -1668,7 +1668,7 @@ let updateArchiveLocal fspath path ui id =
let (localPath, subArch) = getPathInArchive archive Path.empty path in
let newArch = updateArchiveRec ui (stripArchive path subArch) in
let commit () =
- let _ = Stasher.stashCurrentVersion fspath localPath in
+ let _ = Stasher.stashCurrentVersion fspath localPath None in
let archive = getArchive root in
let archive, () =
updatePathInArchive archive fspath Path.empty path
diff --git a/src/update.mli b/src/update.mli
index dd5c15b..c0b4ced 100644
--- a/src/update.mli
+++ b/src/update.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/update.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
module NameMap : Map.S with type key = Name.t
diff --git a/src/uutil.ml b/src/uutil.ml
index 6492923..e82c3fe 100644
--- a/src/uutil.ml
+++ b/src/uutil.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uutil.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(*****************************************************************************)
(* Unison name and version *)
diff --git a/src/uutil.mli b/src/uutil.mli
index 4232960..577d64b 100644
--- a/src/uutil.mli
+++ b/src/uutil.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/uutil.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* This module collects a number of low-level, Unison-specific utility
functions. It is kept separate from the Util module so that that module
diff --git a/src/xferhint.ml b/src/xferhint.ml
index cee287b..e60e5c1 100644
--- a/src/xferhint.ml
+++ b/src/xferhint.ml
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/xferhint.ml *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
let debug = Trace.debug "xferhint"
diff --git a/src/xferhint.mli b/src/xferhint.mli
index 65452ce..e3286e4 100644
--- a/src/xferhint.mli
+++ b/src/xferhint.mli
@@ -1,5 +1,5 @@
(* Unison file synchronizer: src/xferhint.mli *)
-(* Copyright 1999-2007 (see COPYING for details) *)
+(* Copyright 1999-2008 (see COPYING for details) *)
(* This module maintains a cache that can be used to map
an Os.fingerprint to a (Fspath.t * Path.t) naming a file that *may*