From bcpierce at cis.upenn.edu Tue Nov 10 17:01:12 2009 From: bcpierce at cis.upenn.edu (Benjamin Pierce) Date: Tue, 10 Nov 2009 17:01:12 -0500 Subject: [Unison-hackers] updated mac frontend (2.27) In-Reply-To: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> References: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> Message-ID: <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> Hi Onne, I'd be happy to incorporate this change, but I'm not confident I understand what needs to be done to the .xib file... - B On Sep 29, 2009, at 4:49 AM, Onne Gorter wrote: > Hi, > > my father in law uses unison, and a while back I updated the mac > frontend (2.27) to behave a bit nicer: > * when you close the app, it now quits unison, instead of leaving an > empty icon which won't do anything anymore > * fix a bug in the cell renderer usage, clicking in the progress > columns will corrupt memory and eventually crash the app > > (Every column uses one cell renderer, not a cell renderer per cell, so > you should not retain and release images, especially not on dealloc, > which will do an extra release of the last image; but honestly, I > don't know the implied usage of a cell renderer, and the documentation > doesn't really mention any of this. But it does fix the crash, and > does not introduce a leak.) > > I've mirrored the (then) stable release on github, after upgrading the > mac project to xcode 3 and xib format, this is the commit that fixes > things: > http://github.com/onnlucky/unison/commit/cc3840d2ee0e1d62dc8193e882b1b6863fa60c89 > > unfortunately, as xcode goes, the diff of the xib is rather useless, > the rest should be legible ... > > > I guess I should redo the work for the new stable, which at least has > already upgraded its xcode stuff, but as things go, I'll do that just > in time (when upgrading my in laws setup), if nobody beat me to it ... > > thanks for the great app, > > -regards, > Onne > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers From o.gorter at gmail.com Sat Nov 14 05:25:21 2009 From: o.gorter at gmail.com (Onne Gorter) Date: Sat, 14 Nov 2009 11:25:21 +0100 Subject: [Unison-hackers] updated mac frontend (2.27) In-Reply-To: <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> References: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> Message-ID: <29e188270911140225h400f4851jd10927f08894d2f@mail.gmail.com> On Tue, Nov 10, 2009 at 11:01 PM, Benjamin Pierce wrote: > Hi Onne, > > I'd be happy to incorporate this change, but I'm not confident I > understand what needs to be done to the .xib file... If you applied the other changes, all you need to do in Interface Builder is to ctrl+drag from Application to MyController and make MyController the delegate of Application. This will invoke the `applicationShouldTerminateAfterLastWindowClosed` when all windows are closed. regards, -Onne From bcpierce at cis.upenn.edu Sat Nov 28 22:47:17 2009 From: bcpierce at cis.upenn.edu (Benjamin Pierce) Date: Sat, 28 Nov 2009 22:47:17 -0500 Subject: [Unison-hackers] updated mac frontend (2.27) In-Reply-To: <29e188270911140225h400f4851jd10927f08894d2f@mail.gmail.com> References: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> <29e188270911140225h400f4851jd10927f08894d2f@mail.gmail.com> Message-ID: <8E4A0228-87DC-424E-86B7-79A7EB0A24C4@cis.upenn.edu> Sorry -- I'm really not an XCode hacker at all. Can you tell me which file to open in the Interface Builder? (I've applied the rest of the patch and things seem to be working.) - B On Nov 14, 2009, at 5:25 AM, Onne Gorter wrote: > On Tue, Nov 10, 2009 at 11:01 PM, Benjamin Pierce > wrote: >> Hi Onne, >> >> I'd be happy to incorporate this change, but I'm not confident I >> understand what needs to be done to the .xib file... > > If you applied the other changes, all you need to do in Interface > Builder is to ctrl+drag from Application to MyController and make > MyController the delegate of Application. > > This will invoke the > `applicationShouldTerminateAfterLastWindowClosed` when all windows are > closed. > > regards, > -Onne > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers From o.gorter at gmail.com Sun Nov 29 04:01:19 2009 From: o.gorter at gmail.com (Onne Gorter) Date: Sun, 29 Nov 2009 10:01:19 +0100 Subject: [Unison-hackers] updated mac frontend (2.27) In-Reply-To: <8E4A0228-87DC-424E-86B7-79A7EB0A24C4@cis.upenn.edu> References: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> <29e188270911140225h400f4851jd10927f08894d2f@mail.gmail.com> <8E4A0228-87DC-424E-86B7-79A7EB0A24C4@cis.upenn.edu> Message-ID: <29e188270911290101v3e1202hf88c7418b01288b5@mail.gmail.com> On Sun, Nov 29, 2009 at 4:47 AM, Benjamin Pierce wrote: > Sorry -- I'm really not an XCode hacker at all. ?Can you tell me which > file to open in the Interface Builder? ?(I've applied the rest of the > patch and things seem to be working.) good :) I think it is called MainMenu.xib (or .nib, depending). This is the default name, but it can be renamed, in that case look for something with *.xib or *.xib. You find this in the project sidebar in xcode, its the only thing that opens InterfaceBuilder when you double click it. regards, -Onne > ? ?- B > > > On Nov 14, 2009, at 5:25 AM, Onne Gorter wrote: > >> On Tue, Nov 10, 2009 at 11:01 PM, Benjamin Pierce >> wrote: >>> Hi Onne, >>> >>> I'd be happy to incorporate this change, but I'm not confident I >>> understand what needs to be done to the .xib file... >> >> If you applied the other changes, all you need to do in Interface >> Builder is to ctrl+drag from Application to MyController and make >> MyController the delegate of Application. >> >> This will invoke the >> `applicationShouldTerminateAfterLastWindowClosed` when all windows are >> closed. >> >> regards, >> -Onne >> _______________________________________________ >> Unison-hackers mailing list >> Unison-hackers at lists.seas.upenn.edu >> http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers > > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers From bcpierce at seas.upenn.edu Sun Nov 29 08:56:09 2009 From: bcpierce at seas.upenn.edu (bcpierce@seas.upenn.edu) Date: Sun, 29 Nov 2009 08:56:09 -0500 Subject: [Unison-hackers] [unison-svn] r389 - in trunk: doc src src/lwt src/uimacnew src/uimacnew/English.lproj/MainMenu.nib src/uimacnew/uimacnew.xcodeproj Message-ID: <200911291356.nATDu91x026729@yaws.seas.upenn.edu> Author: bcpierce Date: 2009-11-29 08:56:09 -0500 (Sun, 29 Nov 2009) New Revision: 389 Modified: trunk/doc/unison-manual.tex trunk/src/RECENTNEWS trunk/src/TODO.txt trunk/src/lwt/depend trunk/src/mkProjectInfo.ml trunk/src/props.ml trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib trunk/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib trunk/src/uimacnew/MyController.m trunk/src/uimacnew/ProgressCell.m trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj trunk/src/update.ml Log: * Small doc tweak in tutorial * Add preference to ignore existing archives (to avoid forcing users to delete them manually, in situations where one archive has gotten deleted or corrupted). * Small patch to property setting code suggested by Ulrich Gernkow. * Apply patch to fix some crashes in the OSX GUI, thanks to Onne Gorter. Modified: trunk/doc/unison-manual.tex =================================================================== --- trunk/doc/unison-manual.tex 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/doc/unison-manual.tex 2009-11-29 13:56:09 UTC (rev 389) @@ -439,6 +439,7 @@ \begin{verbatim} unison a.tmp b.tmp \end{verbatim} +(You may need to add \verb|-ui text|, depending how your unison binary was built.) \begin{textui} You should see a message notifying you that all the files are actually Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/RECENTNEWS 2009-11-29 13:56:09 UTC (rev 389) @@ -1,3 +1,17 @@ +CHANGES FROM VERSION 2.38.0 + +* Small doc tweak in tutorial + +* Add preference to ignore existing archives (to avoid forcing users + to delete them manually, in situations where one archive has gotten + deleted or corrupted). + +* Small patch to property setting code suggested by Ulrich Gernkow. + +* Apply patch to fix some crashes in the OSX GUI, thanks to Onne Gorter. + + +------------------------------- CHANGES FROM VERSION 2.37.11 * Fixed incompatible protocol change introduced in last commit Modified: trunk/src/TODO.txt =================================================================== --- trunk/src/TODO.txt 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/TODO.txt 2009-11-29 13:56:09 UTC (rev 389) @@ -102,11 +102,17 @@ *** See if we can get rid of some Osx.XXX stuff (e.g. ressLength!?) +*** Overlapping paths + If one -path argument is a prefix of another, the same files will get + scanned twice, found to need transferring twice, and transferred twice, but + the first transfer messes up the second. The fix would be to throw + away -path arguments that are suffixes of other ones. + *** Add the following to the Problems FAQ: - --- In unison-hackers at y..., "Matt Swift" wrote: - > I just posted a msg to cygwin at c... detailing some very strange - > behavior of chmod when a file's owner is also the file's group. It + --- In unison-hackers at y..., "Matt Swift" wrote: > I just + posted a msg to cygwin at c... detailing some very strange > behavior of + chmod when a file's owner is also the file's group. It I was right about the crucial circumstances of owner = group. Moral: do not let user=group under Cygwin. I know it causes a problem when Modified: trunk/src/lwt/depend =================================================================== --- trunk/src/lwt/depend 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/lwt/depend 2009-11-29 13:56:09 UTC (rev 389) @@ -6,5 +6,7 @@ lwt_util.cmx: lwt.cmx lwt_util.cmi pqueue.cmo: pqueue.cmi pqueue.cmx: pqueue.cmi +lwt.cmi: lwt_unix.cmi: lwt.cmi lwt_util.cmi: lwt.cmi +pqueue.cmi: Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/mkProjectInfo.ml 2009-11-29 13:56:09 UTC (rev 389) @@ -5,8 +5,8 @@ let projectName = "unison" let majorVersion = 2 -let minorVersion = 37 -let pointVersionOrigin = 377 (* Revision that corresponds to point version 0 *) +let minorVersion = 38 +let pointVersionOrigin = 388 (* Revision that corresponds to point version 0 *) (* Documentation: This is a program to construct a version of the form Major.Minor.Point, @@ -87,3 +87,4 @@ Printf.printf "VERSION=%d.%d.%d\n" majorVersion minorVersion pointVersion;; Printf.printf "NAME=%s\n" projectName;; + Modified: trunk/src/props.ml =================================================================== --- trunk/src/props.ml 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/props.ml 2009-11-29 13:56:09 UTC (rev 389) @@ -215,7 +215,7 @@ let check fspath path stats (fp, mask) = let fp' = stats.Unix.LargeFile.st_perm in - if fp land mask <> fp' land mask then + if (not (Prefs.read dontChmod)) && (fp land mask <> fp' land mask) then raise (Util.Transient (Format.sprintf Modified: trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib =================================================================== --- trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/uimacnew/English.lproj/MainMenu.nib/info.nib 2009-11-29 13:56:09 UTC (rev 389) @@ -3,7 +3,7 @@ IBFramework Version - 670 + 677 IBLastKnownRelativeProjectPath ../uimacnew.xcodeproj IBOldestOS @@ -11,15 +11,15 @@ IBOpenObjects 402 - 198 423 29 + 21 + 307 197 - 307 - 21 + 198 IBSystem Version - 9E17 + 9L30 targetFramework IBCocoaFramework Modified: trunk/src/uimacnew/English.lproj/MainMenu.nib/keyedobjects.nib =================================================================== (Binary files differ) Modified: trunk/src/uimacnew/MyController.m =================================================================== --- trunk/src/uimacnew/MyController.m 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/uimacnew/MyController.m 2009-11-29 13:56:09 UTC (rev 389) @@ -29,6 +29,10 @@ static int dontAsk = 1; static int doAsk = 2; +// BCP (11/09): Added per Onne Gorter: +// if user closes main window, terminate app, instead of keeping an empty app around with no window +- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication { return YES; } + - (id)init { if (([super init])) { Modified: trunk/src/uimacnew/ProgressCell.m =================================================================== --- trunk/src/uimacnew/ProgressCell.m 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/uimacnew/ProgressCell.m 2009-11-29 13:56:09 UTC (rev 389) @@ -62,23 +62,30 @@ return self; } -- (void)dealloc -{ - [_icon release]; - [_statusString release]; - [super dealloc]; -} +// BCP: Removed (11/09) per Onne Gorter +// - (void)dealloc +// { +// [_icon release]; +// [_statusString release]; +// [super dealloc]; +// } - (void)setStatusString:(NSString *)string { - [_statusString autorelease]; - _statusString = [string retain]; + // BCP: Removed (11/09) per Onne Gorter + // [_statusString autorelease]; + // _statusString = [string retain]; + // Added: + _statusString = string; } - (void)setIcon:(NSImage *)image { - [_icon autorelease]; - _icon = [image retain]; + // BCP: Removed (11/09) per Onne Gorter + // [_icon autorelease]; + // _icon = [image retain]; + // Added: + _icon = image; } - (void)setIsActive:(BOOL)yn Modified: trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj =================================================================== --- trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/uimacnew/uimacnew.xcodeproj/project.pbxproj 2009-11-29 13:56:09 UTC (rev 389) @@ -581,7 +581,7 @@ "-lunix", "-lthreadsnat", "-lstr", - "-lbigarray", + "-lbigarray", "-lasmrun", ); PREBINDING = NO; @@ -618,7 +618,7 @@ "-lunix", "-lthreadsnat", "-lstr", - "-lbigarray", + "-lbigarray", "-lasmrun", ); PREBINDING = NO; @@ -652,7 +652,7 @@ "-lunix", "-lthreadsnat", "-lstr", - "-lbigarray", + "-lbigarray", "-lasmrun", ); PREBINDING = NO; Modified: trunk/src/update.ml =================================================================== --- trunk/src/update.ml 2009-08-18 13:14:35 UTC (rev 388) +++ trunk/src/update.ml 2009-11-29 13:56:09 UTC (rev 389) @@ -634,34 +634,47 @@ ^ "on each host, containing a text summary of the archive, immediately " ^ "after loading it.") +let ignoreArchives = + Prefs.createBool "ignorearchives" false + "!ignore existing archive files" + ("When this preference is set, Unison will ignore any existing " + ^ "archive files and behave as though it were being run for the first " + ^ "time on these replicas. It is " + ^ "not a good idea to set this option in a profile: it is intended for " + ^ "command-line use.") + (* For all roots (local or remote), load the archive and cache *) let loadArchives (optimistic: bool) : bool Lwt.t = - Globals.allRootsMap (fun r -> loadArchiveOnRoot r optimistic) - >>= (fun checksums -> - let identicals = archivesIdentical checksums in - if not (optimistic || identicals) then - raise (Util.Fatal( - "Internal error: On-disk archives are not identical.\n" - ^ "\n" - ^ "This can happen when both machines have the same hostname.\n" - ^ "\n" - ^ "If this is not the case and you get this message repeatedly, please:\n" - ^ " a) Send a bug report to unison-users at yahoogroups.com (you may need" - ^ " to join the group before you will be allowed to post).\n" - ^ " b) Move the archive files on each machine to some other directory\n" - ^ " (in case they may be useful for debugging).\n" - ^ " The archive files on this machine are in the directory\n" - ^ (Printf.sprintf " %s\n" - (System.fspathToPrintString Os.unisonDir)) - ^ " and have names of the form\n" - ^ " arXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" - ^ " where the X's are a hexidecimal number .\n" - ^ " c) Run unison again to synchronize from scratch.\n")); - checkArchiveCaseSensitivity checksums >>= fun () -> - if Prefs.read dumpArchives then - Globals.allRootsMap (fun r -> dumpArchiveOnRoot r ()) - >>= (fun _ -> Lwt.return identicals) - else Lwt.return identicals) + if Prefs.read ignoreArchives then begin + Lwt.return false + end else begin + Globals.allRootsMap (fun r -> loadArchiveOnRoot r optimistic) + >>= (fun checksums -> + let identicals = archivesIdentical checksums in + if not (optimistic || identicals) then + raise (Util.Fatal( + "Internal error: On-disk archives are not identical.\n" + ^ "\n" + ^ "This can happen when both machines have the same hostname.\n" + ^ "\n" + ^ "If this is not the case and you get this message repeatedly, please:\n" + ^ " a) Send a bug report to unison-users at yahoogroups.com (you may need" + ^ " to join the group before you will be allowed to post).\n" + ^ " b) Move the archive files on each machine to some other directory\n" + ^ " (in case they may be useful for debugging).\n" + ^ " The archive files on this machine are in the directory\n" + ^ (Printf.sprintf " %s\n" + (System.fspathToPrintString Os.unisonDir)) + ^ " and have names of the form\n" + ^ " arXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n" + ^ " where the X's are a hexidecimal number .\n" + ^ " c) Run unison again to synchronize from scratch.\n")); + checkArchiveCaseSensitivity checksums >>= fun () -> + if Prefs.read dumpArchives then + Globals.allRootsMap (fun r -> dumpArchiveOnRoot r ()) + >>= (fun _ -> Lwt.return identicals) + else Lwt.return identicals) + end (*****************************************************************************) @@ -785,6 +798,39 @@ let exists = Safelist.exists (fun x -> x) let doArchiveCrashRecovery () = + let noArchives() = + foundArchives := false; + let expectedRoots = + String.concat "\n\t" (Safelist.map root2string (Globals.rootsList ())) in + Util.warn + ("No archive files were found for these roots, whose canonical names are:\n\t" + ^ expectedRoots ^ "\nThis can happen either\n" + ^ "because this is the first time you have synchronized these roots, \n" + ^ "or because you have upgraded Unison to a new version with a different\n" + ^ "archive format. \n\n" + ^ "Update detection may take a while on this run if the replicas are \n" + ^ "large.\n\n" + ^ "Unison will assume that the 'last synchronized state' of both replicas\n" + ^ "was completely empty. This means that any files that are different\n" + ^ "will be reported as conflicts, and any files that exist only on one\n" + ^ "replica will be judged as new and propagated to the other replica.\n" + ^ "If the two replicas are identical, then no changes will be reported.\n\n" + ^ "If you see this message repeatedly, it may be because one of your machines\n" + ^ "is getting its address from DHCP, which is causing its host name to change\n" + ^ "between synchronizations. See the documentation for the UNISONLOCALHOSTNAME\n" + ^ "environment variable for advice on how to correct this.\n" + ^ "\n" + ^ "Donations to the Unison project are gratefully accepted: \n" + ^ "http://www.cis.upenn.edu/~bcpierce/unison\n" + ^ "\n" + (* ^ "\nThe expected archive names were:\n" ^ expectedNames *) ); + Lwt.return () in + + (* See if we've been asked to ignore the archives *) + if Prefs.read ignoreArchives then + noArchives() + else + (* Check which hosts have copies of the old/new archive *) Globals.allRootsMap (fun r -> archivesExistOnRoot r ()) >>= (fun exl -> let oldnamesExist,newnamesExist = @@ -835,34 +881,10 @@ "The archive file is missing on some hosts."; "For safety, the remaining copies should be deleted."] @ whatToDo @ - ["Please delete archive files as appropriate and try again."])))) + ["Please delete archive files as appropriate and try again\n"; + "or invoke Unison with -ignorearchives flag."])))) else begin - foundArchives := false; - let expectedRoots = - String.concat "\n\t" (Safelist.map root2string (Globals.rootsList ())) in - Util.warn - ("No archive files were found for these roots, whose canonical names are:\n\t" - ^ expectedRoots ^ "\nThis can happen either\n" - ^ "because this is the first time you have synchronized these roots, \n" - ^ "or because you have upgraded Unison to a new version with a different\n" - ^ "archive format. \n\n" - ^ "Update detection may take a while on this run if the replicas are \n" - ^ "large.\n\n" - ^ "Unison will assume that the 'last synchronized state' of both replicas\n" - ^ "was completely empty. This means that any files that are different\n" - ^ "will be reported as conflicts, and any files that exist only on one\n" - ^ "replica will be judged as new and propagated to the other replica.\n" - ^ "If the two replicas are identical, then no changes will be reported.\n\n" - ^ "If you see this message repeatedly, it may be because one of your machines\n" - ^ "is getting its address from DHCP, which is causing its host name to change\n" - ^ "between synchronizations. See the documentation for the UNISONLOCALHOSTNAME\n" - ^ "environment variable for advice on how to correct this.\n" - ^ "\n" - ^ "Donations to the Unison project are gratefully accepted: \n" - ^ "http://www.cis.upenn.edu/~bcpierce/unison\n" - ^ "\n" - (* ^ "\nThe expected archive names were:\n" ^ expectedNames *) ); - Lwt.return () + noArchives() end)) (************************************************************************* From bcpierce at cis.upenn.edu Sun Nov 29 08:56:15 2009 From: bcpierce at cis.upenn.edu (Benjamin Pierce) Date: Sun, 29 Nov 2009 08:56:15 -0500 Subject: [Unison-hackers] updated mac frontend (2.27) In-Reply-To: <29e188270911290101v3e1202hf88c7418b01288b5@mail.gmail.com> References: <29e188270909290149u624535a0y2a3fcd7580627f5@mail.gmail.com> <6AE2B2D0-4580-4948-BBDA-97A8A8041CB6@cis.upenn.edu> <29e188270911140225h400f4851jd10927f08894d2f@mail.gmail.com> <8E4A0228-87DC-424E-86B7-79A7EB0A24C4@cis.upenn.edu> <29e188270911290101v3e1202hf88c7418b01288b5@mail.gmail.com> Message-ID: <3FD1CADD-171F-4BDD-9086-EB688A7FE6A1@cis.upenn.edu> Ah, it's called .nib, not .xib. Thanks, that's done too now, and I'm checking in a new version incorporating the changes. Thanks, - Benjamin On Nov 29, 2009, at 4:01 AM, Onne Gorter wrote: > On Sun, Nov 29, 2009 at 4:47 AM, Benjamin Pierce > wrote: >> Sorry -- I'm really not an XCode hacker at all. Can you tell me >> which >> file to open in the Interface Builder? (I've applied the rest of the >> patch and things seem to be working.) > > good :) > > I think it is called MainMenu.xib (or .nib, depending). This is the > default name, but it can be renamed, in that case look for something > with *.xib or *.xib. You find this in the project sidebar in xcode, > its the only thing that opens InterfaceBuilder when you double click > it. > > regards, > -Onne > >> - B >> >> >> On Nov 14, 2009, at 5:25 AM, Onne Gorter wrote: >> >>> On Tue, Nov 10, 2009 at 11:01 PM, Benjamin Pierce >>> wrote: >>>> Hi Onne, >>>> >>>> I'd be happy to incorporate this change, but I'm not confident I >>>> understand what needs to be done to the .xib file... >>> >>> If you applied the other changes, all you need to do in Interface >>> Builder is to ctrl+drag from Application to MyController and make >>> MyController the delegate of Application. >>> >>> This will invoke the >>> `applicationShouldTerminateAfterLastWindowClosed` when all windows >>> are >>> closed. >>> >>> regards, >>> -Onne >>> _______________________________________________ >>> Unison-hackers mailing list >>> Unison-hackers at lists.seas.upenn.edu >>> http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers >> >> _______________________________________________ >> Unison-hackers mailing list >> Unison-hackers at lists.seas.upenn.edu >> http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers > From mgross at informatik.uni-bremen.de Mon Nov 30 06:17:49 2009 From: mgross at informatik.uni-bremen.de (=?iso-8859-1?Q?Markus_Gro=DF?=) Date: Mon, 30 Nov 2009 12:17:49 +0100 Subject: [Unison-hackers] Updated MAC frontend (based on trunk) Message-ID: Hi, I use Unison on a daily basis and started working on the mac frontend. Perhabs someone finds this changes useful and wants to try it out. The github repository can be found here and is in sync with the latest svn (trunk) version: http://github.com/mgee/unison Changes: - Added autorelease pools to the CAMLPrim functions (otherwise objects were released without a pool) - Replaced deprecated functions with new ones - Fixed some warning when using SDK 10.6 - MainWindow saves position - Split-View saves splitter position - Added preferences window with options to: - open a profile on startup - delete log-file (~/unison.log) on complete sync - change details font - change diff font - Updates to the GUI using BWToolkit - New toolbar icons using developer-icons from www.mattballdesign.com - Updated connecting-view with a spinning progress-indicator This are quite a few changes so I don't know if merging these will make sense or not (since it could be a lot of work). PS: The git-repository is cloned from svn using git-svn, so commiting to svn should work, if that is an option. Cheers, Markus From bcpierce at cis.upenn.edu Mon Nov 30 16:25:37 2009 From: bcpierce at cis.upenn.edu (Benjamin Pierce) Date: Mon, 30 Nov 2009 16:25:37 -0500 Subject: [Unison-hackers] Updated MAC frontend (based on trunk) In-Reply-To: References: Message-ID: Hi Markus, This sounds very useful! Thanks for making it available. > This are quite a few changes so I don't know if merging these will > make sense or not (since it could be a lot of work). If your version is up to date with the trunk repository, then there's no merging to be done, right? It's just a matter of making sure your version is working as well or better than the current one and then overwriting...? Have you changed anything outside of the /uimacnew subdirectory? - Benjamin On Nov 30, 2009, at 6:17 AM, Markus Gro? wrote: > Hi, > > I use Unison on a daily basis and started working on the mac frontend. > Perhabs someone finds this changes useful and wants to try it out. > The github repository can be found here and is in sync with the > latest svn (trunk) version: > http://github.com/mgee/unison > > Changes: > - Added autorelease pools to the CAMLPrim functions (otherwise > objects were released without a pool) > - Replaced deprecated functions with new ones > - Fixed some warning when using SDK 10.6 > - MainWindow saves position > - Split-View saves splitter position > - Added preferences window with options to: > - open a profile on startup > - delete log-file (~/unison.log) on complete sync > - change details font > - change diff font > - Updates to the GUI using BWToolkit > - New toolbar icons using developer-icons from www.mattballdesign.com > - Updated connecting-view with a spinning progress-indicator > > This are quite a few changes so I don't know if merging these will > make sense or not (since it could be a lot of work). > PS: The git-repository is cloned from svn using git-svn, so > commiting to svn should work, if that is an option. > > Cheers, > Markus > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers From mgross at informatik.uni-bremen.de Mon Nov 30 16:44:37 2009 From: mgross at informatik.uni-bremen.de (=?iso-8859-1?Q?Markus_Gro=DF?=) Date: Mon, 30 Nov 2009 22:44:37 +0100 Subject: [Unison-hackers] Updated MAC frontend (based on trunk) In-Reply-To: References: Message-ID: <9C020D91-DABE-49E3-9D22-F1EF0E85D332@informatik.uni-bremen.de> On 30.11.2009, at 22:25, Benjamin Pierce wrote: > If your version is up to date with the trunk repository, then there's > no merging to be done, right? It's just a matter of making sure your > version is working as well or better than the current one and then > overwriting...? > > Have you changed anything outside of the /uimacnew subdirectory? My version is up to date (r389) so basically the changes could be comitted without any conflict. I changed nothing outside the uimacnew directory and tested my version using my own profiles. I didn't ran into any problems but that doesn't have to mean the changes I made are bug-free. The changes however are mostly related to gui code, so the synchronisation process/algorithm should work the same as before. Cheers, Markus From mgross at informatik.uni-bremen.de Mon Nov 30 17:18:51 2009 From: mgross at informatik.uni-bremen.de (=?iso-8859-1?Q?Markus_Gro=DF?=) Date: Mon, 30 Nov 2009 23:18:51 +0100 Subject: [Unison-hackers] Updated MAC frontend (based on trunk) In-Reply-To: <9C020D91-DABE-49E3-9D22-F1EF0E85D332@informatik.uni-bremen.de> References: <9C020D91-DABE-49E3-9D22-F1EF0E85D332@informatik.uni-bremen.de> Message-ID: <62CB2360-2C27-4181-876C-A5D2949ABEED@informatik.uni-bremen.de> On 30.11.2009, at 22:44, Markus Gro? wrote: > On 30.11.2009, at 22:25, Benjamin Pierce wrote: >> If your version is up to date with the trunk repository, then there's >> no merging to be done, right? It's just a matter of making sure your >> version is working as well or better than the current one and then >> overwriting...? >> >> Have you changed anything outside of the /uimacnew subdirectory? > > My version is up to date (r389) so basically the changes could be comitted without any conflict. > > I changed nothing outside the uimacnew directory and tested my version using my own profiles. > I didn't ran into any problems but that doesn't have to mean the changes I made are bug-free. > The changes however are mostly related to gui code, so the synchronisation process/algorithm should work the same as before. I forgot to mention that parts of my changes involve licensing issues. - Usage of BWToolkit. Uses BSD License - should be no problem. - New icon of Unison: from mac4lin project. Uses LGPL/GPL - again no problem. - New toolbar and table-icons: from www.mattballdesign.com I took some icons from the icon-set and also modified some icons of the set. The icon-set is under the Creative Commons Attribution 3.0 License so there should be no licensing issue. So my license check tells me that I was allowed to include the changes in unison (gpl). However I wonder whether or not the toolbar/table icons have to be given explicit credit (for example in the aboutbox). Benjamin, do you have more expertise in this area? Is everything license conform? Also the graphic changes are probably not everyone's cup of tea. So it's up to you if you want to stick with the current ones. Cheers, Markus