diff options
author | Benjamin C. Pierce <bcpierce@cis.upenn.edu> | 2008-06-23 22:05:17 +0000 |
---|---|---|
committer | Benjamin C. Pierce <bcpierce@cis.upenn.edu> | 2008-06-23 22:05:17 +0000 |
commit | 1934ced844bcbe57f5e50f21e5958f035641b8b4 (patch) | |
tree | a4678a530b49f02a66b1c1a240ba0839c19ae117 | |
parent | 829bd6646dea57c89842f254051741106861d91d (diff) | |
download | unison-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. :-)
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 @@ -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))) @@ -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 @@ -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 *) @@ -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* |