From M.Richardson at ed.ac.uk Thu Aug 7 05:21:42 2008 From: M.Richardson at ed.ac.uk (Matthew Richardson) Date: Thu, 07 Aug 2008 10:21:42 +0100 Subject: [Unison-hackers] path option 'root testing' bug Message-ID: <489ABEA6.5050706@ed.ac.uk> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I've encountered what looks like a well-reported 'bug' in unison, which I'm interested in having resolved, but I don't have any ocaml expertise under my belt, and thus am appealing to the list to try and get this looked at. The problem is simple - if you specify a path of format: path = a/b/c Then folders a and b must exist on both source and target prior to unison running - if this isn't true, then unison fails with the error: "path a/b is not valid because a/b is not a directory in one of the replicas" I've had a look at the code, and I believe I can see why this is occurring. As far as I can tell, the unison code treats path options as temporary moves of the root to a new 'base'. In this case it moves to a/b and then tries to sync from there. As neither of these exist, it fails. The relevant code block is: | Some(name, path') -> if not (isDir fspath here) then let error = if Path.isEmpty here then (* error 1 *) Printf.sprintf "path %s is not valid because the root of one of the replicas \ is not a directory" (Path.toString fullpath) else (* error 2 *) Printf.sprintf "path %s is not valid because %s is not a directory in one of \ the replicas" (Path.toString fullpath) (Path.toString here) The test runs as follows: Test if both paths are directories. If path is 'empty' - error 1 reported. Otherwise - error 2 reported. I would suggest that the following might be a better test: Test if both paths are directories. If path is 'empty' - error 1 reported. If target isn't a directory, try recursively making the path and repeating the test - succeed or fail as appropriate. If this 'mkdir -p' fails, report error 2. This should allow the problem of the directories not existing to be resolved, but should still fail if one replica has files, symlinks etc where a directory is expected. Of course, I might have completely misunderstood what unison is doing here (in which case fell free to shoot me down), and I don't speak any ocaml to implement this change (although if there's agreement this change would be useful I could make the effort to learn if there isn't any available coding effort). Comments? Matthew -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFImr6mQwGHl7Fegc8RAnjBAJ9XPNF+Zurxwj5bCgNCmLHpTaV/nwCeMuit 39EofwHcsvHTs0IPNzPuMgw= =EZs3 -----END PGP SIGNATURE----- -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336. From bcpierce at seas.upenn.edu Thu Aug 21 11:39:08 2008 From: bcpierce at seas.upenn.edu (Benjamin C. Pierce) Date: Thu, 21 Aug 2008 11:39:08 -0400 Subject: [Unison-hackers] [unison-svn] r305 - in trunk: . doc src src/lwt Message-ID: <200808211539.m7LFd8wV015923@yaws.seas.upenn.edu> Author: bcpierce Date: 2008-08-21 11:39:05 -0400 (Thu, 21 Aug 2008) New Revision: 305 Modified: trunk/Makefile trunk/doc/unison-manual.tex trunk/src/Makefile trunk/src/Makefile.OCaml trunk/src/NEWS trunk/src/RECENTNEWS trunk/src/TODO.txt trunk/src/copy.ml trunk/src/lwt/Makefile trunk/src/main.ml trunk/src/mkProjectInfo.ml trunk/src/os.ml trunk/src/pty.c trunk/src/strings.ml trunk/src/update.ml Log: * Updated documentation with recently added preferences. * Applied patch from Antoine Reilles for NetBSD compilation * Makefile tidying Modified: trunk/Makefile =================================================================== --- trunk/Makefile 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/Makefile 2008-08-21 15:39:05 UTC (rev 305) @@ -186,9 +186,9 @@ exportnative: -$(RM) -r $(EXPORTTMP) cp -r src $(EXPORTTMP) - make realexportnative + $(MAKE) realexportnative ifeq ($(OSARCH),linux) - make realexportnative EXPORTSTATIC=true KIND=-static + $(MAKE) realexportnative EXPORTSTATIC=true KIND=-static endif $(RM) -r $(EXPORTTMP) Modified: trunk/doc/unison-manual.tex =================================================================== --- trunk/doc/unison-manual.tex 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/doc/unison-manual.tex 2008-08-21 15:39:05 UTC (rev 305) @@ -2025,15 +2025,16 @@ \SUBSECTION{Making Unison Faster on Large Files}{speeding} Unison's built-in implementation of the rsync algorithm makes transferring -updates to existing files pretty fast. However, for whole-file copies, the -built-in transfer method is not highly optimized. Also, if Unison is -interrupted in the middle of transferring a large file, it will attempt to -retransfer the whole thing on the next run. +updates to existing files pretty fast. However, for whole-file copies of +newly created files, the built-in transfer method is not highly optimized. +Also, if Unison is interrupted in the middle of transferring a large file, +it will attempt to retransfer the whole thing on the next run. -These shortcomings can be addressed by telling Unison to use an external -file copying utility for whole-file transfers. The recommended one is the -standalone {\tt rsync} tool, which is available by default on most Unix -systems and can easily be installed on Windows systems using Cygwin. +These shortcomings can be addressed with a little extra work by telling +Unison to use an external file copying utility for whole-file transfers. +The recommended one is the standalone {\tt rsync} tool, which is available +by default on most Unix systems and can easily be installed on Windows +systems using Cygwin. If you have {\tt rsync} installed on both hosts, you can make Unison use it simply by setting the {\tt copythreshold} flag to something non-negative. @@ -2044,15 +2045,35 @@ 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). -If you want to use a different external copy utility, set the {\tt copyprog} -preference. +If you want to use a different external copy utility, set both the {\tt + copyprog} and {\tt copyprogpartial} preferences---the former is used for +the first transfer of a file, while the latter is used when Unison sees a +partially transferred temp file on the receiving host. Be careful here: +Your external tool needs to be instructed to copy files in place (otherwise +if the transfer is interrupted Unison will not notice that some of the data +has already been transferred, the next time it tries). The default values +are: +\begin{verbatim} + copyprog = rsync --inplace --compress + copyprogrest = rsync --partial --inplace --compress +\end{verbatim} +You may also need to set the {\tt copyquoterem} preference. When it is set +to {\tt true}, this causes Unison to add an extra layer of quotes to +the remote path passed to the external copy program. This is is needed by +rsync, for example, which internally uses an ssh connection, requiring an +extra level of quoting for paths containing spaces. When this flag is set to +{\tt default}, extra quotes are added if the value of {\tt copyprog} +contains the string {\tt rsync}. The default value is {\tt default}, +naturally. If a {\em directory} transfer is interrupted, the next run of Unison will -skip any files that were completely transferred before the interruption. -Note, though, that the new directory will not appear in the destination -filesystem until everything has been transferred---partially transferred -directories are kept in a temporary location (with names like {\tt - .unison.DIRNAME....}) until the transfer is complete. +automatically skip any files that were completely transferred before the +interruption. (This behavior is always on: it does not depend on the +setting of the {\tt copythreshold} preference.) Note, though, that the new +directory will not appear in the destination filesystem until everything has +been transferred---partially transferred directories are kept in a temporary +location (with names like {\tt .unison.DIRNAME....}) until the transfer is +complete. \SUBSECTION{Fast Update Detection}{fastcheck} Modified: trunk/src/Makefile =================================================================== --- trunk/src/Makefile 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/Makefile 2008-08-21 15:39:05 UTC (rev 305) @@ -74,10 +74,10 @@ install: doinstall installtext: - make -C .. installtext + $(MAKE) -C .. installtext text: - make -C .. text + $(MAKE) -C .. text doinstall: $(NAME)$(EXEC_EXT) -mv $(INSTALLDIR)/$(NAME)$(EXEC_EXT) /tmp/$(NAME)-$(shell echo $$$$) Modified: trunk/src/Makefile.OCaml =================================================================== --- trunk/src/Makefile.OCaml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/Makefile.OCaml 2008-08-21 15:39:05 UTC (rev 305) @@ -29,9 +29,13 @@ else ifeq ($(shell uname),OpenBSD) OSARCH=OpenBSD +else +ifeq ($(shell uname),NetBSD) + OSARCH=NetBSD endif endif endif +endif ETAGS=etags endif endif @@ -261,6 +265,10 @@ endif endif +ifeq ($(OSARCH), NetBSD) + OCAMLDOT=false +endif + # Rebuild dependencies (must be invoked manually) .PHONY: depend depend:: Modified: trunk/src/NEWS =================================================================== --- trunk/src/NEWS 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/NEWS 2008-08-21 15:39:05 UTC (rev 305) @@ -1,5 +1,5 @@ -Changes in Version 2.30.4 +Changes in Version 2.31.3 Changes since 2.17: * Major rewrite and cleanup of the whole Mac OS X graphical user Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/RECENTNEWS 2008-08-21 15:39:05 UTC (rev 305) @@ -1,3 +1,12 @@ +CHANGES FROM VERSION 2.31.3 + +* Updated documentation with recently added preferences. + +* Applied patch from Antoine Reilles for NetBSD compilation + +* Makefile tidying + +------------------------------- CHANGES FROM VERSION 2.31.2 * Added a bit of debugging code for Alan. Modified: trunk/src/TODO.txt =================================================================== --- trunk/src/TODO.txt 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/TODO.txt 2008-08-21 15:39:05 UTC (rev 305) @@ -30,7 +30,29 @@ * See if there are other hacks that should be propagated to 2.27 (the directory transfer throttle for sure!), and Jerome's recent suggested fix +* Rsync debugging + - R can't run with debugging (even in 2.13) -- Alan cannot reproduce + + - when using socket mode under windows, upon completion of the first + external rsync call, the connection to the server is dropped (the + server gets an EOF and closes the connection; the client sees a + broken connection) + + - only with rsync, not scp + - only with socket mode connection by Unison, not ssh mode + - seems to have nothing to do with ssh tunneling + + - calling Unix.open_process_in instead of + Lwt_unix.open_process_full seems to make no difference + + - one difference we can see is that, at the end of the transfer, + the ssh started by rsync (when run with with -v -v) says + something like "FD1 clearing O_NONBLOCK". The similar call to + ssh from scp does not print this. + + We're running under Cygwin (which is needed to have rsync) + ########################################################################### SOON Modified: trunk/src/copy.ml =================================================================== --- trunk/src/copy.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/copy.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -529,7 +529,7 @@ "!add quotes to remote file name for copyprog (true/false/default)" ("When set to {\\tt true}, this flag causes Unison to add an extra layer " ^ "of quotes to the remote path passed to the external copy program. " - ^ "This is needed by rsync, for example, which internal uses an ssh " + ^ "This is needed by rsync, for example, which internally uses an ssh " ^ "connection requiring an extra level of quoting for paths containing " ^ "spaces. When this flag is set to {\\tt default}, extra quotes are " ^ "added if the value of {\\tt copyprog} contains the string " Modified: trunk/src/lwt/Makefile =================================================================== --- trunk/src/lwt/Makefile 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/lwt/Makefile 2008-08-21 15:39:05 UTC (rev 305) @@ -51,4 +51,4 @@ rm -f *.cmi *.cmo *.cmx *.cma *.cmxa *.a *.o *~ *.bak clean:: - cd example && make clean + cd example && $(MAKE) clean Modified: trunk/src/main.ml =================================================================== --- trunk/src/main.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/main.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -13,17 +13,17 @@ A non-functor interface is provided to allow the Mac GUI to reuse the startup code for non-GUI options. -*) + *) (* ---------------------------------------------------------------------- *) (* Some command-line arguments are handled specially during startup, e.g., - -doc - -help - -version - -server - -socket - -ui + -doc + -help + -version + -server + -socket + -ui They are expected to appear on the command-line only, not in a profile. In particular, -version and -doc will print to the standard output, so they only make sense if invoked from the @@ -36,8 +36,8 @@ without loading a profile; and then we can't do command-line parsing because it is intertwined with profile loading. - NB: the Mac GUI handles these options and needs to change if they - any more are added. + NB: the Mac GUI handles these options itself and needs to change + if any more are added. *) let versionPrefName = "version" @@ -185,7 +185,7 @@ begin try let i = List.hd (Util.StringMap.find socketPrefName argv) in catch_all (fun () -> - Os.createUnisonDir(); + Os.createUnisonDir(); Remote.waitOnPort (begin try match Util.StringMap.find serverHostName argv with Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/mkProjectInfo.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -89,3 +89,4 @@ + Modified: trunk/src/os.ml =================================================================== --- trunk/src/os.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/os.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -357,6 +357,7 @@ let readChannelTillEof c = let rec loop lines = try let l = input_line c in + (* Util.msg "%s\n" l; *) loop (l::lines) with End_of_file -> lines in String.concat "\n" (Safelist.rev (loop [])) Modified: trunk/src/pty.c =================================================================== --- trunk/src/pty.c 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/pty.c 2008-08-21 15:39:05 UTC (rev 305) @@ -15,7 +15,7 @@ #define HAS_OPENPTY 1 #endif -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(__NetBSD__) #include #define HAS_OPENPTY 1 #endif Modified: trunk/src/strings.ml =================================================================== --- trunk/src/strings.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/strings.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -4,7 +4,7 @@ let docs = ("about", ("About Unison", "Unison File Synchronizer\n\ - Version 2.30.4\n\ + Version 2.31.3\n\ \n\ ")) :: @@ -1148,8 +1148,6 @@ \032-contactquietly suppress the 'contacting server' message during startup\n\ \032-copyprog xxx external program for copying large files\n\ \032-copyprogrest xxx variant of copyprog for resuming partial transfers\n\ - \032-copyquoterem xxx add quotes to remote file name for copyprog (true/false/def\n\ - ault)\n\ \032-copythreshold n use copyprog on files bigger than this (if >=0, in Kb)\n\ \032-debug xxx debug module xxx ('all' -> everything, 'verbose' -> more)\n\ \032-diff xxx command for showing differences between files\n\ @@ -1307,14 +1305,6 @@ \032 will just be copyprog with one extra option (e.g., -partial,\n\ \032 for rsync). The default setting invokes rsync with appropriate\n\ \032 options--most users should not need to change it.\n\ - \032 copyquoterem xxx\n\ - \032 When set to true, this flag causes Unison to add an extra layer\n\ - \032 of quotes to the remote path passed to the external copy\n\ - \032 program. This is needed by rsync, for example, which internal\n\ - \032 uses an ssh connection requiring an extra level of quoting for\n\ - \032 paths containing spaces. When this flag is set to default,\n\ - \032 extra quotes are added if the value of copyprog contains the\n\ - \032 string rsync.\n\ \032 copythreshold n\n\ \032 A number indicating above what filesize (in kilobytes) Unison\n\ \032 should use the external copying utility specified by copyprog.\n\ @@ -2346,16 +2336,16 @@ \n\ \032 Unison's built-in implementation of the rsync algorithm makes\n\ \032 transferring updates to existing files pretty fast. However, for\n\ - \032 whole-file copies, the built-in transfer method is not highly\n\ - \032 optimized. Also, if Unison is interrupted in the middle of\n\ - \032 transferring a large file, it will attempt to retransfer the whole\n\ + \032 whole-file copies of newly created files, the built-in transfer method\n\ + \032 is not highly optimized. Also, if Unison is interrupted in the middle\n\ + \032 of transferring a large file, it will attempt to retransfer the whole\n\ \032 thing on the next run.\n\ \n\ - \032 These shortcomings can be addressed by telling Unison to use an\n\ - \032 external file copying utility for whole-file transfers. The\n\ - \032 recommended one is the standalone rsync tool, which is available by\n\ - \032 default on most Unix systems and can easily be installed on Windows\n\ - \032 systems using Cygwin.\n\ + \032 These shortcomings can be addressed with a little extra work by\n\ + \032 telling Unison to use an external file copying utility for whole-file\n\ + \032 transfers. The recommended one is the standalone rsync tool, which is\n\ + \032 available by default on most Unix systems and can easily be installed\n\ + \032 on Windows systems using Cygwin.\n\ \n\ \032 If you have rsync installed on both hosts, you can make Unison use it\n\ \032 simply by setting the copythreshold flag to something non-negative. If\n\ @@ -2367,16 +2357,33 @@ \032 it to 1000 will cause the external tool to be used for all transfers\n\ \032 larger than a megabyte).\n\ \n\ - \032 If you want to use a different external copy utility, set the copyprog\n\ - \032 preference.\n\ + \032 If you want to use a different external copy utility, set both the\n\ + \032 copyprog and copyprogpartial preferences--the former is used for the\n\ + \032 first transfer of a file, while the latter is used when Unison sees a\n\ + \032 partially transferred temp file on the receiving host. Be careful\n\ + \032 here: Your external tool needs to be instructed to copy files in place\n\ + \032 (otherwise if the transfer is interrupted Unison will not notice that\n\ + \032 some of the data has already been transferred, the next time it\n\ + \032 tries). The default values are:\n\ + \032 copyprog = rsync --inplace --compress\n\ + \032 copyprogrest = rsync --partial --inplace --compress\n\ \n\ + \032 You may also need to set the copyquoterem preference. When it is set\n\ + \032 to true, this causes Unison to add an extra layer of quotes to the\n\ + \032 remote path passed to the external copy program. This is is needed by\n\ + \032 rsync, for example, which internally uses an ssh connection, requiring\n\ + \032 an extra level of quoting for paths containing spaces. When this flag\n\ + \032 is set to default, extra quotes are added if the value of copyprog\n\ + \032 contains the string rsync. The default value is default, naturally.\n\ + \n\ \032 If a directory transfer is interrupted, the next run of Unison will\n\ - \032 skip any files that were completely transferred before the\n\ - \032 interruption. Note, though, that the new directory will not appear in\n\ - \032 the destination filesystem until everything has been\n\ - \032 transferred--partially transferred directories are kept in a temporary\n\ - \032 location (with names like .unison.DIRNAME....) until the transfer is\n\ - \032 complete.\n\ + \032 automatically skip any files that were completely transferred before\n\ + \032 the interruption. (This behavior is always on: it does not depend on\n\ + \032 the setting of the copythreshold preference.) Note, though, that the\n\ + \032 new directory will not appear in the destination filesystem until\n\ + \032 everything has been transferred--partially transferred directories are\n\ + \032 kept in a temporary location (with names like .unison.DIRNAME....)\n\ + \032 until the transfer is complete.\n\ \n\ Fast Update Detection\n\ \n\ @@ -2553,8 +2560,8 @@ \n\ ")) :: - ("news", ("Changes in Version 2.30.4", - "Changes in Version 2.30.4\n\ + ("news", ("Changes in Version 2.31.3", + "Changes in Version 2.31.3\n\ \n\ \032 Changes since 2.17:\n\ \032 * Major rewrite and cleanup of the whole Mac OS X graphical user\n\ Modified: trunk/src/update.ml =================================================================== --- trunk/src/update.ml 2008-07-05 17:43:33 UTC (rev 304) +++ trunk/src/update.ml 2008-08-21 15:39:05 UTC (rev 305) @@ -1746,7 +1746,7 @@ let dig' = Os.fingerprint fspath path info in let ress' = Osx.stamp info.Fileinfo.osX in if dig' <> dig then begin -(* if deleteBadTempFiles then Os.delete fspath path; *) + if deleteBadTempFiles then Os.delete fspath path; raise (Util.Transient (Printf.sprintf "The file %s was incorrectly transferred (fingerprint mismatch in %s)%s" (Path.toString path) From bcpierce at seas.upenn.edu Sun Aug 24 10:52:45 2008 From: bcpierce at seas.upenn.edu (Benjamin C. Pierce) Date: Sun, 24 Aug 2008 10:52:45 -0400 Subject: [Unison-hackers] [unison-svn] r306 - trunk/src Message-ID: <200808241452.m7OEqjVn005662@yaws.seas.upenn.edu> Author: bcpierce Date: 2008-08-24 10:52:39 -0400 (Sun, 24 Aug 2008) New Revision: 306 Modified: trunk/src/NEWS trunk/src/RECENTNEWS trunk/src/mkProjectInfo.ml trunk/src/stasher.ml trunk/src/strings.ml Log: * Don't ignore files that look like backup files if the {\\tt backuplocation} preference is set to {\\tt central} Modified: trunk/src/NEWS =================================================================== --- trunk/src/NEWS 2008-08-21 15:39:05 UTC (rev 305) +++ trunk/src/NEWS 2008-08-24 14:52:39 UTC (rev 306) @@ -1,5 +1,5 @@ -Changes in Version 2.31.3 +Changes in Version 2.31.4 Changes since 2.17: * Major rewrite and cleanup of the whole Mac OS X graphical user Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2008-08-21 15:39:05 UTC (rev 305) +++ trunk/src/RECENTNEWS 2008-08-24 14:52:39 UTC (rev 306) @@ -1,3 +1,9 @@ +CHANGES FROM VERSION 2.31.4 + +* Don't ignore files that look like backup files if the {\\tt + backuplocation} preference is set to {\\tt central} + +------------------------------- CHANGES FROM VERSION 2.31.3 * Updated documentation with recently added preferences. Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2008-08-21 15:39:05 UTC (rev 305) +++ trunk/src/mkProjectInfo.ml 2008-08-24 14:52:39 UTC (rev 306) @@ -90,3 +90,4 @@ + Modified: trunk/src/stasher.ml =================================================================== --- trunk/src/stasher.ml 2008-08-21 15:39:05 UTC (rev 305) +++ trunk/src/stasher.ml 2008-08-24 14:52:39 UTC (rev 306) @@ -2,7 +2,7 @@ (* $I2: Last modified by lescuyer *) (* Copyright 1999-2008 (see COPYING for details) *) -(*------------------------------------------------------------------------------------*) +(* --------------------------------------------------------------------------*) (* Preferences for backing up and stashing *) let debug = Util.debug "stasher" @@ -147,7 +147,7 @@ let _ = Pred.alias backupcurrent "backupcurrent" let _ = Pred.alias backupcurrentnot "backupcurrentnot" -(*------------------------------------------------------------------------------------*) +(* ---------------------------------------------------------------------------*) (* NB: We use Str.regexp here because we need group matching to retrieve and increment version numbers from backup file names. We only use @@ -185,8 +185,8 @@ else raise (Util.Fatal "Either backupprefix or backupsuffix must contain '$VERSION'") -(* We ignore files whose name ends in .unison.bak, since people may still have these lying around - from using previous versions of Unison. *) +(* We ignore files whose name ends in .unison.bak, since people may still have these + lying around from using previous versions of Unison. *) let oldBackupPrefPathspec = "Name *.unison.bak" (* This function creates Rx regexps based on the preferences to ignore @@ -209,10 +209,14 @@ match dir_rx with None -> "Regex " ^ full | Some _ -> "Regex " ^ dir in - debug (fun () -> - Util.msg "New pattern being added to ignore preferences: %s\n" theRegExp); + Globals.addRegexpToIgnore oldBackupPrefPathspec; - Globals.addRegexpToIgnore theRegExp + if Prefs.read backuplocation = "local" then begin + debug (fun () -> + Util.msg "New pattern being added to ignore preferences (for backup files):\n %s\n" + theRegExp); + Globals.addRegexpToIgnore theRegExp + end (* We use references for functions that compute the prefixes and suffixes in order to avoid using functions from the Str module each time we need them. *) Modified: trunk/src/strings.ml =================================================================== --- trunk/src/strings.ml 2008-08-21 15:39:05 UTC (rev 305) +++ trunk/src/strings.ml 2008-08-24 14:52:39 UTC (rev 306) @@ -4,7 +4,7 @@ let docs = ("about", ("About Unison", "Unison File Synchronizer\n\ - Version 2.31.3\n\ + Version 2.31.4\n\ \n\ ")) :: @@ -2560,8 +2560,8 @@ \n\ ")) :: - ("news", ("Changes in Version 2.31.3", - "Changes in Version 2.31.3\n\ + ("news", ("Changes in Version 2.31.4", + "Changes in Version 2.31.4\n\ \n\ \032 Changes since 2.17:\n\ \032 * Major rewrite and cleanup of the whole Mac OS X graphical user\n\ From schmitta at seas.upenn.edu Tue Aug 26 07:07:08 2008 From: schmitta at seas.upenn.edu (ALAN SCHMITT) Date: Tue, 26 Aug 2008 07:07:08 -0400 Subject: [Unison-hackers] [unison-svn] r307 - in trunk/src: . uimacnew/English.lproj/MainMenu.nib uimacnew/uimacnew.xcodeproj Message-ID: <200808261107.m7QB78gQ002906@yaws.seas.upenn.edu> Author: schmitta Date: 2008-08-26 07:07:00 -0400 (Tue, 26 Aug 2008) New Revision: 307 Modified: trunk/src/RECENTNEWS trunk/src/mkProjectInfo.ml trunk/src/uimacnew/English.lproj/MainMenu.nib/classes.nib trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib trunk/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj Log: Resizing the update window vertically no longer moves the status label. Fix contributed by Pedro Melo. Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2008-08-24 14:52:39 UTC (rev 306) +++ trunk/src/RECENTNEWS 2008-08-26 11:07:00 UTC (rev 307) @@ -1,3 +1,7 @@ +CHANGES FROM VERSION 2.31.5 + +Resizing the update window vertically no longer moves the status label. Fix contributed by Pedro Melo. +------------------------------- CHANGES FROM VERSION 2.31.4 * Don't ignore files that look like backup files if the {\\tt Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2008-08-24 14:52:39 UTC (rev 306) +++ trunk/src/mkProjectInfo.ml 2008-08-26 11:07:00 UTC (rev 307) @@ -91,3 +91,4 @@ + Modified: trunk/src/uimacnew/English.lproj/MainMenu.nib/classes.nib =================================================================== --- trunk/src/uimacnew/English.lproj/MainMenu.nib/classes.nib 2008-08-24 14:52:39 UTC (rev 306) +++ trunk/src/uimacnew/English.lproj/MainMenu.nib/classes.nib 2008-08-26 11:07:00 UTC (rev 307) @@ -1,127 +1,267 @@ -{ - IBClasses = ( - { - ACTIONS = { - copyLR = id; - copyRL = id; - forceNewer = id; - forceOlder = id; - ignoreExt = id; - ignoreName = id; - ignorePath = id; - leaveAlone = id; - merge = id; - revert = id; - selectConflicts = id; - showDiff = id; - }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = MessageProgressIndicator; - LANGUAGE = ObjC; - SUPERCLASS = NSProgressIndicator; - }, - { - ACTIONS = { - cancelProfileButton = id; - cltoolNoButton = id; - cltoolYesButton = id; - createButton = id; - endPasswordWindow = id; - installCommandLineTool = id; - onlineHelp = id; - openButton = id; - raiseAboutWindow = id; - raiseCltoolWindow = id; - raiseWindow = id; - rescan = id; - restartButton = id; - saveProfileButton = id; - syncButton = id; - tableModeChanged = id; - }; - CLASS = MyController; - LANGUAGE = ObjC; - OUTLETS = { - ConnectingView = NSView; - aboutWindow = NSWindow; - chooseProfileView = NSView; - cltoolPref = NSButton; - cltoolWindow = NSWindow; - detailsTextView = NSTextView; - diffView = NSTextView; - diffWindow = NSWindow; - mainWindow = NSWindow; - notificationController = NotificationController; - passwordCancelButton = NSButton; - passwordPrompt = NSTextField; - passwordText = NSTextField; - passwordWindow = NSWindow; - preferencesController = PreferencesController; - preferencesView = NSView; - profileController = ProfileController; - progressBar = NSProgressIndicator; - statusText = NSTextField; - tableModeSelector = NSSegmentedControl; - tableView = ReconTableView; - updatesText = NSTextField; - updatesView = NSView; - versionText = NSTextField; - }; - SUPERCLASS = NSObject; - }, - {CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, - {CLASS = NotificationController; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = {anyEnter = id; localClick = id; remoteClick = id; }; - CLASS = PreferencesController; - LANGUAGE = ObjC; - OUTLETS = { - firstRootText = NSTextField; - localButtonCell = NSButtonCell; - profileNameText = NSTextField; - remoteButtonCell = NSButtonCell; - secondRootHost = NSTextField; - secondRootText = NSTextField; - secondRootUser = NSTextField; - }; - SUPERCLASS = NSObject; - }, - { - CLASS = ProfileController; - LANGUAGE = ObjC; - OUTLETS = {tableView = NSTableView; }; - SUPERCLASS = NSObject; - }, - { - CLASS = ProfileTableView; - LANGUAGE = ObjC; - OUTLETS = {myController = MyController; }; - SUPERCLASS = NSTableView; - }, - {CLASS = ReconItem; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = { - copyLR = id; - copyRL = id; - forceNewer = id; - forceOlder = id; - ignoreExt = id; - ignoreName = id; - ignorePath = id; - leaveAlone = id; - merge = id; - revert = id; - selectConflicts = id; - showDiff = id; - }; - CLASS = ReconTableView; - LANGUAGE = ObjC; - SUPERCLASS = NSOutlineView; - } - ); - IBVersion = 1; -} \ No newline at end of file + + + + + IBClasses + + + CLASS + NSSegmentedControl + LANGUAGE + ObjC + SUPERCLASS + NSControl + + + CLASS + NSOutlineView + LANGUAGE + ObjC + SUPERCLASS + NSTableView + + + CLASS + ProfileTableView + LANGUAGE + ObjC + OUTLETS + + myController + MyController + + SUPERCLASS + NSTableView + + + CLASS + ProfileController + LANGUAGE + ObjC + OUTLETS + + tableView + NSTableView + + SUPERCLASS + NSObject + + + CLASS + NotificationController + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + ACTIONS + + anyEnter + id + localClick + id + remoteClick + id + + CLASS + PreferencesController + LANGUAGE + ObjC + OUTLETS + + firstRootText + NSTextField + localButtonCell + NSButtonCell + profileNameText + NSTextField + remoteButtonCell + NSButtonCell + secondRootHost + NSTextField + secondRootText + NSTextField + secondRootUser + NSTextField + + SUPERCLASS + NSObject + + + ACTIONS + + copyLR + id + copyRL + id + forceNewer + id + forceOlder + id + ignoreExt + id + ignoreName + id + ignorePath + id + leaveAlone + id + merge + id + revert + id + selectConflicts + id + showDiff + id + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + CLASS + MessageProgressIndicator + LANGUAGE + ObjC + SUPERCLASS + NSProgressIndicator + + + ACTIONS + + cancelProfileButton + id + cltoolNoButton + id + cltoolYesButton + id + createButton + id + endPasswordWindow + id + installCommandLineTool + id + onlineHelp + id + openButton + id + raiseAboutWindow + id + raiseCltoolWindow + id + raiseWindow + NSWindow + rescan + id + restartButton + id + saveProfileButton + id + syncButton + id + tableModeChanged + id + + CLASS + MyController + LANGUAGE + ObjC + OUTLETS + + ConnectingView + NSView + aboutWindow + NSWindow + chooseProfileView + NSView + cltoolPref + NSButton + cltoolWindow + NSWindow + detailsTextView + NSTextView + diffView + NSTextView + diffWindow + NSWindow + mainWindow + NSWindow + notificationController + NotificationController + passwordCancelButton + NSButton + passwordPrompt + NSTextField + passwordText + NSTextField + passwordWindow + NSWindow + preferencesController + PreferencesController + preferencesView + NSView + profileController + ProfileController + progressBar + NSProgressIndicator + statusText + NSTextField + tableModeSelector + NSSegmentedControl + tableView + ReconTableView + updatesText + NSTextField + updatesView + NSView + versionText + NSTextField + + SUPERCLASS + NSObject + + + ACTIONS + + copyLR + id + copyRL + id + forceNewer + id + forceOlder + id + ignoreExt + id + ignoreName + id + ignorePath + id + leaveAlone + id + merge + id + revert + id + selectConflicts + id + showDiff + id + + CLASS + ReconTableView + LANGUAGE + ObjC + SUPERCLASS + NSOutlineView + + + IBVersion + 1 + + Modified: trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib =================================================================== --- trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2008-08-24 14:52:39 UTC (rev 306) +++ trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2008-08-26 11:07:00 UTC (rev 307) @@ -1,41 +1,26 @@ - + - IBDocumentLocation - 48 53 538 389 0 0 1920 1178 - IBEditorPositions - - 197 - 745 623 383 323 0 0 1920 1178 - 198 - 584 479 697 588 0 0 1920 1178 - 29 - 256 460 294 44 0 0 1920 1178 - 307 - 659 639 554 292 0 0 1920 1178 - 423 - 491 475 891 619 0 0 1920 1178 - IBFramework Version - 446.1 - IBLockedObjects - - 234 - 402 - 21 - + 670 + IBLastKnownRelativeProjectPath + ../uimacnew.xcodeproj + IBOldestOS + 5 IBOpenObjects 402 + 198 + 423 29 197 - 21 307 - 423 - 198 + 21 IBSystem Version - 8P2137 + 9E17 + targetFramework + IBCocoaFramework Modified: trunk/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj =================================================================== --- trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2008-08-24 14:52:39 UTC (rev 306) +++ trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2008-08-26 11:07:00 UTC (rev 307) @@ -156,7 +156,7 @@ 69BA7DA804FD695200CF23A4 /* ReconTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReconTableView.h; sourceTree = ""; }; 69BA7DA904FD695200CF23A4 /* ReconTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReconTableView.m; sourceTree = ""; }; 69C625CA0664E94E00B3C46A /* Unison.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Unison.icns; sourceTree = ""; }; - 69C625F40664EC3300B3C46A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = ""; }; + 69C625F40664EC3300B3C46A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 69C625F50664EC3300B3C46A /* Unison.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Unison.app; sourceTree = BUILT_PRODUCTS_DIR; }; 69D3C6F904F1CC3700CF23A4 /* ReconItem.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ReconItem.m; sourceTree = ""; }; 69D3C6FA04F1CC3700CF23A4 /* ReconItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ReconItem.h; sourceTree = ""; }; @@ -575,7 +575,6 @@ INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = ""; NSZombieEnabled = YES; - OPTIMIZATION_CFLAGS = "-O0"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-L$(OCAMLLIBDIR)", From schmitta at seas.upenn.edu Tue Aug 26 07:11:02 2008 From: schmitta at seas.upenn.edu (ALAN SCHMITT) Date: Tue, 26 Aug 2008 07:11:02 -0400 Subject: [Unison-hackers] [unison-svn] r308 - in branches/2.27/src: . uimacnew/English.lproj/MainMenu.nib uimacnew/uimacnew.xcodeproj Message-ID: <200808261111.m7QBB2Y2003054@yaws.seas.upenn.edu> Author: schmitta Date: 2008-08-26 07:10:52 -0400 (Tue, 26 Aug 2008) New Revision: 308 Modified: branches/2.27/src/RECENTNEWS branches/2.27/src/mkProjectInfo.ml branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/classes.nib branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/info.nib branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib branches/2.27/src/uimacnew/uimacnew.xcodeproj/project.pbxproj Log: Resizing the update window vertically no longer moves the status label. Fix contributed by Pedro Melo. Modified: branches/2.27/src/RECENTNEWS =================================================================== --- branches/2.27/src/RECENTNEWS 2008-08-26 11:07:00 UTC (rev 307) +++ branches/2.27/src/RECENTNEWS 2008-08-26 11:10:52 UTC (rev 308) @@ -1,3 +1,7 @@ +CHANGES FROM VERSION 2.27.76 + +Resizing the update window vertically no longer moves the status label. Fix contributed by Pedro Melo. +------------------------------- CHANGES FROM VERSION 2.27.75 * Tiny typo fix to docs Modified: branches/2.27/src/mkProjectInfo.ml =================================================================== --- branches/2.27/src/mkProjectInfo.ml 2008-08-26 11:07:00 UTC (rev 307) +++ branches/2.27/src/mkProjectInfo.ml 2008-08-26 11:10:52 UTC (rev 308) @@ -76,3 +76,4 @@ + Modified: branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/classes.nib =================================================================== --- branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/classes.nib 2008-08-26 11:07:00 UTC (rev 307) +++ branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/classes.nib 2008-08-26 11:10:52 UTC (rev 308) @@ -1,127 +1,267 @@ -{ - IBClasses = ( - { - ACTIONS = { - copyLR = id; - copyRL = id; - forceNewer = id; - forceOlder = id; - ignoreExt = id; - ignoreName = id; - ignorePath = id; - leaveAlone = id; - merge = id; - revert = id; - selectConflicts = id; - showDiff = id; - }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = MessageProgressIndicator; - LANGUAGE = ObjC; - SUPERCLASS = NSProgressIndicator; - }, - { - ACTIONS = { - cancelProfileButton = id; - cltoolNoButton = id; - cltoolYesButton = id; - createButton = id; - endPasswordWindow = id; - installCommandLineTool = id; - onlineHelp = id; - openButton = id; - raiseAboutWindow = id; - raiseCltoolWindow = id; - raiseWindow = id; - rescan = id; - restartButton = id; - saveProfileButton = id; - syncButton = id; - tableModeChanged = id; - }; - CLASS = MyController; - LANGUAGE = ObjC; - OUTLETS = { - ConnectingView = NSView; - aboutWindow = NSWindow; - chooseProfileView = NSView; - cltoolPref = NSButton; - cltoolWindow = NSWindow; - detailsTextView = NSTextView; - diffView = NSTextView; - diffWindow = NSWindow; - mainWindow = NSWindow; - notificationController = NotificationController; - passwordCancelButton = NSButton; - passwordPrompt = NSTextField; - passwordText = NSTextField; - passwordWindow = NSWindow; - preferencesController = PreferencesController; - preferencesView = NSView; - profileController = ProfileController; - progressBar = NSProgressIndicator; - statusText = NSTextField; - tableModeSelector = NSSegmentedControl; - tableView = ReconTableView; - updatesText = NSTextField; - updatesView = NSView; - versionText = NSTextField; - }; - SUPERCLASS = NSObject; - }, - {CLASS = NSSegmentedControl; LANGUAGE = ObjC; SUPERCLASS = NSControl; }, - {CLASS = NotificationController; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = {anyEnter = id; localClick = id; remoteClick = id; }; - CLASS = PreferencesController; - LANGUAGE = ObjC; - OUTLETS = { - firstRootText = NSTextField; - localButtonCell = NSButtonCell; - profileNameText = NSTextField; - remoteButtonCell = NSButtonCell; - secondRootHost = NSTextField; - secondRootText = NSTextField; - secondRootUser = NSTextField; - }; - SUPERCLASS = NSObject; - }, - { - CLASS = ProfileController; - LANGUAGE = ObjC; - OUTLETS = {tableView = NSTableView; }; - SUPERCLASS = NSObject; - }, - { - CLASS = ProfileTableView; - LANGUAGE = ObjC; - OUTLETS = {myController = MyController; }; - SUPERCLASS = NSTableView; - }, - {CLASS = ReconItem; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = { - copyLR = id; - copyRL = id; - forceNewer = id; - forceOlder = id; - ignoreExt = id; - ignoreName = id; - ignorePath = id; - leaveAlone = id; - merge = id; - revert = id; - selectConflicts = id; - showDiff = id; - }; - CLASS = ReconTableView; - LANGUAGE = ObjC; - SUPERCLASS = NSOutlineView; - } - ); - IBVersion = 1; -} \ No newline at end of file + + + + + IBClasses + + + CLASS + NSSegmentedControl + LANGUAGE + ObjC + SUPERCLASS + NSControl + + + CLASS + NSOutlineView + LANGUAGE + ObjC + SUPERCLASS + NSTableView + + + CLASS + ProfileTableView + LANGUAGE + ObjC + OUTLETS + + myController + MyController + + SUPERCLASS + NSTableView + + + CLASS + ProfileController + LANGUAGE + ObjC + OUTLETS + + tableView + NSTableView + + SUPERCLASS + NSObject + + + CLASS + NotificationController + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + ACTIONS + + anyEnter + id + localClick + id + remoteClick + id + + CLASS + PreferencesController + LANGUAGE + ObjC + OUTLETS + + firstRootText + NSTextField + localButtonCell + NSButtonCell + profileNameText + NSTextField + remoteButtonCell + NSButtonCell + secondRootHost + NSTextField + secondRootText + NSTextField + secondRootUser + NSTextField + + SUPERCLASS + NSObject + + + ACTIONS + + copyLR + id + copyRL + id + forceNewer + id + forceOlder + id + ignoreExt + id + ignoreName + id + ignorePath + id + leaveAlone + id + merge + id + revert + id + selectConflicts + id + showDiff + id + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + CLASS + MessageProgressIndicator + LANGUAGE + ObjC + SUPERCLASS + NSProgressIndicator + + + ACTIONS + + cancelProfileButton + id + cltoolNoButton + id + cltoolYesButton + id + createButton + id + endPasswordWindow + id + installCommandLineTool + id + onlineHelp + id + openButton + id + raiseAboutWindow + id + raiseCltoolWindow + id + raiseWindow + NSWindow + rescan + id + restartButton + id + saveProfileButton + id + syncButton + id + tableModeChanged + id + + CLASS + MyController + LANGUAGE + ObjC + OUTLETS + + ConnectingView + NSView + aboutWindow + NSWindow + chooseProfileView + NSView + cltoolPref + NSButton + cltoolWindow + NSWindow + detailsTextView + NSTextView + diffView + NSTextView + diffWindow + NSWindow + mainWindow + NSWindow + notificationController + NotificationController + passwordCancelButton + NSButton + passwordPrompt + NSTextField + passwordText + NSTextField + passwordWindow + NSWindow + preferencesController + PreferencesController + preferencesView + NSView + profileController + ProfileController + progressBar + NSProgressIndicator + statusText + NSTextField + tableModeSelector + NSSegmentedControl + tableView + ReconTableView + updatesText + NSTextField + updatesView + NSView + versionText + NSTextField + + SUPERCLASS + NSObject + + + ACTIONS + + copyLR + id + copyRL + id + forceNewer + id + forceOlder + id + ignoreExt + id + ignoreName + id + ignorePath + id + leaveAlone + id + merge + id + revert + id + selectConflicts + id + showDiff + id + + CLASS + ReconTableView + LANGUAGE + ObjC + SUPERCLASS + NSOutlineView + + + IBVersion + 1 + + Modified: branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/info.nib =================================================================== --- branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2008-08-26 11:07:00 UTC (rev 307) +++ branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2008-08-26 11:10:52 UTC (rev 308) @@ -1,41 +1,26 @@ - + - IBDocumentLocation - 48 53 538 389 0 0 1920 1178 - IBEditorPositions - - 197 - 745 623 383 323 0 0 1920 1178 - 198 - 584 479 697 588 0 0 1920 1178 - 29 - 256 460 294 44 0 0 1920 1178 - 307 - 659 639 554 292 0 0 1920 1178 - 423 - 491 475 891 619 0 0 1920 1178 - IBFramework Version - 446.1 - IBLockedObjects - - 234 - 402 - 21 - + 670 + IBLastKnownRelativeProjectPath + ../uimacnew.xcodeproj + IBOldestOS + 5 IBOpenObjects - 402 + 423 29 197 + 402 21 - 307 - 423 198 + 307 IBSystem Version - 8P2137 + 9E17 + targetFramework + IBCocoaFramework Modified: branches/2.27/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: branches/2.27/src/uimacnew/uimacnew.xcodeproj/project.pbxproj =================================================================== --- branches/2.27/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2008-08-26 11:07:00 UTC (rev 307) +++ branches/2.27/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2008-08-26 11:10:52 UTC (rev 308) @@ -156,7 +156,7 @@ 69BA7DA804FD695200CF23A4 /* ReconTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReconTableView.h; sourceTree = ""; }; 69BA7DA904FD695200CF23A4 /* ReconTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ReconTableView.m; sourceTree = ""; }; 69C625CA0664E94E00B3C46A /* Unison.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Unison.icns; sourceTree = ""; }; - 69C625F40664EC3300B3C46A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Info.plist; sourceTree = ""; }; + 69C625F40664EC3300B3C46A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 69C625F50664EC3300B3C46A /* Unison.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Unison.app; sourceTree = BUILT_PRODUCTS_DIR; }; 69D3C6F904F1CC3700CF23A4 /* ReconItem.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = ReconItem.m; sourceTree = ""; }; 69D3C6FA04F1CC3700CF23A4 /* ReconItem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ReconItem.h; sourceTree = ""; }; @@ -575,7 +575,6 @@ INSTALL_PATH = "$(HOME)/Applications"; LIBRARY_SEARCH_PATHS = ""; NSZombieEnabled = YES; - OPTIMIZATION_CFLAGS = "-O0"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-L$(OCAMLLIBDIR)", From alan.schmitt at polytechnique.org Wed Aug 27 03:02:01 2008 From: alan.schmitt at polytechnique.org (Alan Schmitt) Date: Wed, 27 Aug 2008 09:02:01 +0200 Subject: [Unison-hackers] Small change to the tutorial Message-ID: <9FA34D94-D475-4187-A1B0-F3A0A112CF1B@polytechnique.org> Hello, I just had an exchange of emails with a user who had trouble getting through the tutorial. After a little bit of investigating, it turned out he was using the OS X version in the terminal (after running the "install command line tool" command) but this actually launches the unison GUI. As it seems that the GUI ignores the arguments it is given, he could not do a "unison a.tmp b.tmp". Maybe we could add to the tutorial that one should use the "-ui text" option when going through it? Alan -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 186 bytes Desc: This is a digitally signed message part Url : http://lists.seas.upenn.edu/pipermail/unison-hackers/attachments/20080827/0b7d6198/PGP.sig