[prev in list] [next in list] [prev in thread] [next in thread] 

List:       unison-users
Subject:    Re: [unison-users] Quoting problem with external merge in 2.26.9 (Windows)
From:       "Karl M" <karlm30 () hotmail ! com>
Date:       2006-12-30 0:54:36
Message-ID: BAY125-F9E13DC2B1D529E839FA4DB5C50 () phx ! gbl
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi Benjamin...

Attached are two patch files, one for files.ml and one for uigtk2.ml.

The files.ml patch does five things
(1) makes merge do quoting of file names like the diff command does
(2) adds an extra layer of quoting for commands in native windows to correct 
for strange windows quote handling (it strips off the first set of quotes if 
there is more than one set in the line)
(3) it changes your "if windows" for the merge command to allow Cygwin to 
use the 3 argument approach, so only native windows is dumbed down
(4) it changes the transient exception text for a user cancelled merge to 
only say cancelled
(5) it changes the handling of one of the file still exists cases to match 
the handling of the corresponding new files case

I left the showmerge call where it was because it is needed to get the 
"details" loaded for later viewing (a side effect).

The uigtk2 patch does two things
(1) it removes ok box for a failed merge
(2) it changes the text for the confirm box. Because we don't know if the 
merge was successful, it doesn't claim success.

I think things look solid for a MSVC native windows XP server and client. 
(That is all I have available.)

Thanks,

...Karl

> From: "Karl M"
> CC: unison-users@yahoogroups.com
> Subject: Re: [unison-users] Quoting problem with external merge in 2.26.9 
> (Windows)
> Date: Fri, 29 Dec 2006 10:10:43 -0800
> 
> Hi Benjamin...
> 
> Here is a better patch that also fixes the Win32 CMD quoting issues.
> 
> I changed your "if Win32" to "if Win32 and not cygwin"...I think that will
> do what you want. This will need to be tested under cygwin to verify.
> 
> Thanks,
> 
> ...Karl
> 
> > From: "Karl M" CC: unison-users@yahoogroups.com
> > Subject: Re: [unison-users] Quoting problem with external merge in 2.26.9
> > (Windows)
> > Date: Fri, 29 Dec 2006 08:33:21 -0800
> > 
> > Hi Benjamin...
> > 
> > Hold off on that last patch, I will send another after I test it. The
> > strange quoting behavior is due to Windows CMD processing of its command
> > line arguments. Read the text from "CMD /?" on a WinXP machine.
> > 
> > Thenak,
> > 
> > ...Karl
> > 
> > > From: "Karl M" CC: unison-users@yahoogroups.com
> > > Subject: Re: [unison-users] Quoting problem with external merge in 
> 2.26.9
> > > (Windows)
> > > Date: Thu, 28 Dec 2006 23:06:24 -0800
> > > 
> > > Hi Benjamin...
> > > 
> > > Attached is a patch (to svn head) to quote the arguments to the merge
> > > command as they are done for the diff command.
> > > 
> > > But (even with this patch) I still see the following...if the arguments
> > to
> > > the merge command are not quoted, then quoting the command works...but 
> if
> > > any of the arguments are quoted, then quotes around the command do not
> > work
> > > and I must not have spaced in the command name. Strange...livable...but
> > > strange.
> > > 
> > > Now something is still wrong, in that I get the "The merge exited
> > > successfully. Do you want..." dialog box in uigtk2 even when the merge
> > > failed (exit status 1).
> > > 
> > > Thanks,
> > > 
> > > ...Karl
> > > 
> > > > From: "Karl M" CC: unison-users@yahoogroups.com
> > > > Subject: Re: [unison-users] Quoting problem with external merge in
> > 2.26.9
> > > > (Windows)
> > > > Date: Thu, 28 Dec 2006 09:57:09 -0800
> > > > 
> > > > Hi Benjamin...
> > > > 
> > > > Cygwin is not used here. I use Cygwin for ssh transport, but the 
> merge
> > > > command would be handled the way that unison handles it (compiled 
> with
> > > MSVC
> > > > for Windows).
> > > > 
> > > > I looked at the code, but I am puzzeled.
> > > > 
> > > > I also noticed that after the merge completes, even with an exit 
> status
> > > of
> > > > 1, the dialog box that pops up says that the merge completed
> > > successfully.
> > > > (Why?)
> > > > 
> > > > Thanks,
> > > > 
> > > > ...Karl
> > > > 
> > > > > From: Benjamin Pierce CC: unison-users@yahoogroups.com
> > > > > Subject: Re: [unison-users] Quoting problem with external merge in
> > > 2.26.9
> > > > > (Windows)
> > > > > Date: Thu, 28 Dec 2006 12:45:42 -0500
> > > > > 
> > > > > Sounds like maybe a cygwin peculiarity?  (E.g., is the command
> > getting
> > > > > interpreted by a different shell in the two cases?)
> > > > > 
> > > > > - B
> > > > > 
> > > > > 
> > > > > On Dec 28, 2006, at 9:51 AM, Karl M wrote:
> > > > > 
> > > > > > Hi All...
> > > > > > 
> > > > > > When I use a merge command in my prf file like
> > > > > > 
> > > > > > merge = Name *.txt -> "C:\Program Files\WinMerge\WinMerge.exe" /ub
> > > > > > CURRENT1
> > > > > > CURRENT2
> > > > > > 
> > > > > > the merge program succeeds unless I have spaces in my file names
> > that
> > > I
> > > > > > am
> > > > > > synchronizing, so I added quotes around CURRENT1 and CURRENT2 like
> > > > > > 
> > > > > > merge = Name *.txt -> "C:\Program Files\WinMerge\WinMerge.exe" /ub
> > > > > > "CURRENT1" "CURRENT2"
> > > > > > 
> > > > > > then the external merge fails and the console window has 'C:
> > \Program'
> > > > is
> > > > > > not
> > > > > > a valid...
> > > > > > 
> > > > > > But if I copy the command from the details window (and remove the
> > > > > > .unison.merge1- and 2- stuff) and paste it into a command window 
> it
> > > > > > works.
> > > > > > 
> > > > > > Thanks,
> > > > > > 
> > > > > > ...Karl
> > > > > > 
> > > > > > _________________________________________________________________
> > > > > > Get live scores and news about your team: Add the Live.com 
> Football
> > > > Page
> > > > > > www.live.com/?addtemplate=football&icid=T001MSN30A0701
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > Yahoo! Groups Links
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > 
> > > > 
> > > > _________________________________________________________________
> > > > Get FREE Web site and company branded e-mail from Microsoft Office 
> Live
> > > > http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/
> > > > 
> > > 
> > > _________________________________________________________________
> > > Get FREE Web site and company branded e-mail from Microsoft Office Live
> > > http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/
> > 
> > 
> > > << files.ml.unison-patch >>
> > 
> > _________________________________________________________________
> > Experience the magic of the holidays. Talk to Santa on Messenger.
> > http://clk.atdmt.com/MSN/go/msnnkwme0080000001msn/direct/01/?href=http://imagine-windowslive.com/minisites/santabot/default.aspx?locale=en-us
> >  
> 
> _________________________________________________________________
> Get FREE Web site and company branded e-mail from Microsoft Office Live
> http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/


> << files.ml.unison-patch >>

_________________________________________________________________
Dave vs. Carl: The Insignificant Championship Series.  Who will win? 
http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://davevscarl.spaces.live.com/?icid=T001MSN38C07001



[Attachment #5 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" \
"http://www.w3.org/TR/html4/strict.dtd"> <html>
<head>
</head>

<!-- Network content -->


<body style="background-color: #ffffff;">

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="width:655px; position:relative;">
  <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left;  \
z-index:1;"> <!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id="ygrp-text">
            <p>Hi Benjamin...<br>
<br>
Attached are two patch files, one for files.ml and one for uigtk2.ml.<br>
<br>
The files.ml patch does five things<br>
(1) makes merge do quoting of file names like the diff command does<br>
(2) adds an extra layer of quoting for commands in native windows to correct <br>
for strange windows quote handling (it strips off the first set of quotes if <br>
there is more than one set in the line)<br>
(3) it changes your &quot;if windows&quot; for the merge command to allow Cygwin to \
<br> use the 3 argument approach, so only native windows is dumbed down<br>
(4) it changes the transient exception text for a user cancelled merge to <br>
only say cancelled<br>
(5) it changes the handling of one of the file still exists cases to match <br>
the handling of the corresponding new files case<br>
<br>
I left the showmerge call where it was because it is needed to get the <br>
&quot;details&quot; loaded for later viewing (a side effect).<br>
<br>
The uigtk2 patch does two things<br>
(1) it removes ok box for a failed merge<br>
(2) it changes the text for the confirm box. Because we don't know if the <br>
merge was successful, it doesn't claim success.<br>
<br>
I think things look solid for a MSVC native windows XP server and client. <br>
(That is all I have available.)<br>
<br>
Thanks,<br>
<br>
...Karl<br>
<br>
&gt;From: &quot;Karl M&quot;<br>
&gt;CC: <a href="mailto:unison-users%40yahoogroups.com">unison-users@<wbr>yahoogroups.<wbr>com</a><br>
 &gt;Subject: Re: [unison-users] Quoting problem with external merge in 2.26.9 <br>
&gt;(Windows)<br>
&gt;Date: Fri, 29 Dec 2006 10:10:43 -0800<br>
&gt;<br>
&gt;Hi Benjamin...<br>
&gt;<br>
&gt;Here is a better patch that also fixes the Win32 CMD quoting issues.<br>
&gt;<br>
&gt;I changed your &quot;if Win32&quot; to &quot;if Win32 and not cygwin&quot;...I \
think that will<br> &gt;do what you want. This will need to be tested under cygwin to \
verify.<br> &gt;<br>
&gt;Thanks,<br>
&gt;<br>
&gt;...Karl<br>
&gt;<br>
&gt; &gt;From: &quot;Karl M&quot; CC: <a \
href="mailto:unison-users%40yahoogroups.com">unison-users@<wbr>yahoogroups.<wbr>com</a><br>
 &gt; &gt;Subject: Re: [unison-users] Quoting problem with external merge in \
2.26.9<br> &gt; &gt;(Windows)<br>
&gt; &gt;Date: Fri, 29 Dec 2006 08:33:21 -0800<br>
&gt; &gt;<br>
&gt; &gt;Hi Benjamin...<br>
&gt; &gt;<br>
&gt; &gt;Hold off on that last patch, I will send another after I test it. The<br>
&gt; &gt;strange quoting behavior is due to Windows CMD processing of its command<br>
&gt; &gt;line arguments. Read the text from &quot;CMD /?&quot; on a WinXP \
machine.<br> &gt; &gt;<br>
&gt; &gt;Thenak,<br>
&gt; &gt;<br>
&gt; &gt;...Karl<br>
&gt; &gt;<br>
&gt; &gt; &gt;From: &quot;Karl M&quot; CC: <a \
href="mailto:unison-users%40yahoogroups.com">unison-users@<wbr>yahoogroups.<wbr>com</a><br>
 &gt; &gt; &gt;Subject: Re: [unison-users] Quoting problem with external merge in \
<br> &gt;2.26.9<br>
&gt; &gt; &gt;(Windows)<br>
&gt; &gt; &gt;Date: Thu, 28 Dec 2006 23:06:24 -0800<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Hi Benjamin...<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Attached is a patch (to svn head) to quote the arguments to the \
merge<br> &gt; &gt; &gt;command as they are done for the diff command.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;But (even with this patch) I still see the following...<wbr>if the \
arguments<br> &gt; &gt;to<br>
&gt; &gt; &gt;the merge command are not quoted, then quoting the command works...but \
<br> &gt;if<br>
&gt; &gt; &gt;any of the arguments are quoted, then quotes around the command do \
not<br> &gt; &gt;work<br>
&gt; &gt; &gt;and I must not have spaced in the command name. \
Strange...livable.<wbr>..but<br> &gt; &gt; &gt;strange.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Now something is still wrong, in that I get the &quot;The merge \
exited<br> &gt; &gt; &gt;successfully. Do you want...&quot; dialog box in uigtk2 even \
when the merge<br> &gt; &gt; &gt;failed (exit status 1).<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;Thanks,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;...Karl<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;From: &quot;Karl M&quot; CC: <a \
href="mailto:unison-users%40yahoogroups.com">unison-users@<wbr>yahoogroups.<wbr>com</a><br>
 &gt; &gt; &gt; &gt;Subject: Re: [unison-users] Quoting problem with external merge \
in<br> &gt; &gt;2.26.9<br>
&gt; &gt; &gt; &gt;(Windows)<br>
&gt; &gt; &gt; &gt;Date: Thu, 28 Dec 2006 09:57:09 -0800<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;Hi Benjamin...<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;Cygwin is not used here. I use Cygwin for ssh transport, but the \
<br> &gt;merge<br>
&gt; &gt; &gt; &gt;command would be handled the way that unison handles it (compiled \
<br> &gt;with<br>
&gt; &gt; &gt;MSVC<br>
&gt; &gt; &gt; &gt;for Windows).<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;I looked at the code, but I am puzzeled.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;I also noticed that after the merge completes, even with an exit \
<br> &gt;status<br>
&gt; &gt; &gt;of<br>
&gt; &gt; &gt; &gt;1, the dialog box that pops up says that the merge completed<br>
&gt; &gt; &gt;successfully.<br>
&gt; &gt; &gt; &gt;(Why?)<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;Thanks,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;...Karl<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;From: Benjamin Pierce CC: <a \
href="mailto:unison-users%40yahoogroups.com">unison-users@<wbr>yahoogroups.<wbr>com</a><br>
 &gt; &gt; &gt; &gt; &gt;Subject: Re: [unison-users] Quoting problem with external \
merge in<br> &gt; &gt; &gt;2.26.9<br>
&gt; &gt; &gt; &gt; &gt;(Windows)<br>
&gt; &gt; &gt; &gt; &gt;Date: Thu, 28 Dec 2006 12:45:42 -0500<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;Sounds like maybe a cygwin peculiarity?  (E.g., is the \
command<br> &gt; &gt;getting<br>
&gt; &gt; &gt; &gt; &gt;interpreted by a different shell in the two cases?)<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;    - B<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;On Dec 28, 2006, at 9:51 AM, Karl M wrote:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Hi All...<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;When I use a merge command in my prf file like<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;merge = Name *.txt -&gt; &quot;C:\Program \
Files\WinMerge\<wbr>WinMerge.<wbr>exe&quot; /ub<br> &gt; &gt; &gt; &gt; \
&gt;&gt;CURRENT1<br> &gt; &gt; &gt; &gt; &gt;&gt;CURRENT2<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;the merge program succeeds unless I have spaces in my \
file names<br> &gt; &gt;that<br>
&gt; &gt; &gt;I<br>
&gt; &gt; &gt; &gt; &gt;&gt;am<br>
&gt; &gt; &gt; &gt; &gt;&gt;synchronizing, so I added quotes around CURRENT1 and \
CURRENT2 like<br> &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;merge = Name *.txt -&gt; &quot;C:\Program \
Files\WinMerge\<wbr>WinMerge.<wbr>exe&quot; /ub<br> &gt; &gt; &gt; &gt; \
&gt;&gt;&quot;CURRENT1&quot; &quot;CURRENT2&quot;<br> &gt; &gt; &gt; &gt; \
&gt;&gt;<br> &gt; &gt; &gt; &gt; &gt;&gt;then the external merge fails and the \
console window has 'C:<br> &gt; &gt;\Program'<br>
&gt; &gt; &gt; &gt;is<br>
&gt; &gt; &gt; &gt; &gt;&gt;not<br>
&gt; &gt; &gt; &gt; &gt;&gt;a valid...<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;But if I copy the command from the details window (and \
remove the<br> &gt; &gt; &gt; &gt; &gt;&gt;.unison.merge1- and 2- stuff) and paste it \
into a command window <br> &gt;it<br>
&gt; &gt; &gt; &gt; &gt;&gt;works.<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Thanks,<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;...Karl<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;__________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>___<br>
 &gt; &gt; &gt; &gt; &gt;&gt;Get live scores and news about your team: Add the \
Live.com <br> &gt;Football<br>
&gt; &gt; &gt; &gt;Page<br>
&gt; &gt; &gt; &gt; &gt;&gt;www.live.com/<wbr>?addtemplate=<wbr>football&amp;<wbr>icid=T001MSN30A0<wbr>701<br>
 &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;Yahoo! Groups Links<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;___________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>__<br>
 &gt; &gt; &gt; &gt;Get FREE Web site and company branded e-mail from Microsoft \
Office <br> &gt;Live<br>
&gt; &gt; &gt; &gt;<a \
href="http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/">http://clk.atdmt.<wbr>com/MRT/go/<wbr>mcrssaub00500014<wbr>11mrt/direct/<wbr>01/</a><br>
 &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;___________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>__<br>
 &gt; &gt; &gt;Get FREE Web site and company branded e-mail from Microsoft Office \
Live<br> &gt; &gt; &gt;<a \
href="http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/">http://clk.atdmt.<wbr>com/MRT/go/<wbr>mcrssaub00500014<wbr>11mrt/direct/<wbr>01/</a><br>
 &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt;&lt;&lt; files.ml.unison-<wbr>patch &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt;___________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>__<br>
 &gt; &gt;Experience the magic of the holidays. Talk to Santa on Messenger.<br>
&gt; &gt;<a href="http://clk.atdmt.com/MSN/go/msnnkwme0080000001msn/direct/01/?href=ht \
tp://imagine-windowslive.com/minisites/santabot/default.aspx?locale=en-us">http://clk. \
atdmt.<wbr>com/MSN/go/<wbr>msnnkwme00800000<wbr>01msn/direct/<wbr>01/?href=<wbr>http:/ \
/imagine-<wbr>windowslive.<wbr>com/minisites/<wbr>santabot/<wbr>default.aspx?<wbr>locale=en-<wbr>us</a><br>
 &gt; &gt;<br>
&gt;<br>
&gt;___________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>__<br>
 &gt;Get FREE Web site and company branded e-mail from Microsoft Office Live<br>
&gt;<a href="http://clk.atdmt.com/MRT/go/mcrssaub0050001411mrt/direct/01/">http://clk.atdmt.<wbr>com/MRT/go/<wbr>mcrssaub00500014<wbr>11mrt/direct/<wbr>01/</a><br>
 <br>
&gt;&lt;&lt; files.ml.unison-<wbr>patch &gt;&gt;<br>
<br>
____________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_________<wbr>_<br>
 Dave vs. Carl: The Insignificant Championship Series.  Who will win? <br>
<a href="http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://dave \
vscarl.spaces.live.com/?icid=T001MSN38C07001">http://clk.atdmt.<wbr>com/MSN/go/<wbr>ms \
nnkwsp00700000<wbr>01msn/direct/<wbr>01/?href=<wbr>http://davevscar<wbr>l.spaces.<wbr>live.com/<wbr>?icid=T001MSN38C<wbr>07001</a><br>
 </p>
    </div>  

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <span width="1" style="color: white;">__._,_.___</span>
    <!-- Start the section with Message In topic -->
    <div id="ygrp-actbar">
              <span class="left">
          <a href="">
            Messages in this topic          </a> (<span class="bld"></span>)
        </span>
        <a href="">
          <span class="bld">
            Reply          </span> (via web post)
        </a>  | 
        <a href="" class="bld">
          Start a new topic        </a>
          </div> 
    <!-------     Start Nav Bar  ------>
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-vitnav">
        
        
        
        
        
        
        
        
    </div>  
    <!-- |**|end egp html banner|**| -->

    <!-- Do not have place to put it yet -->
    <div id="ygrp-grft">
          </div>

    <!-- yahoo logo -->
    <!-- |**|begin egp html banner|**| -->
    <div id="ygrp-ft">
      <a href="">
      <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" \
height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br>  <a href="">Change \
settings via the Web</a> (Yahoo! ID required) <br>  Change settings via email: <a \
href="mailto:unison-users-digest@yahoogroups.com?subject=Email Delivery: \
Digest">Switch delivery to Daily Digest</a> | <a href = \
"mailto:unison-users-traditional@yahoogroups.com?subject=Change Delivery Format: \
Traditional">Switch format to Traditional</a> <br>

      <a href="">
        Visit Your Group 
      </a> |
      <a href="http://docs.yahoo.com/info/terms/">
        Yahoo! Groups Terms of Use      </a> |
      <a href="mailto:unison-users-unsubscribe@yahoogroups.com?subject=">
        Unsubscribe      </a> 
    </div>     <!-- |**|end egp html banner|**| -->
  </div> <!-- ygrp-msg -->

  
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: \
5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;">  \
<!-- Network content -->  
    <!-- Start vitality -->
    <div id="ygrp-vital">
              <div id="vithd">Recent Activity</div>
        <ul style="list-style-type:none; padding: 0; margin: 2px 0;">
            
            
            
            
            
            
        </ul>
            <a href="">
        Visit Your Group      </a>
    </div> 
                <div id="hd">SPONSORED LINKS</div>
      <div id="ov">
        <ul>
                    <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiMHAzNDgwBF9TAzk3MzU5NzE0BF9wAzEEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzQ0MDI0NQ--?t=ms&k=Comp \
uter+telephony&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+case&w4 \
=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=bd1ju6uqJx39MEsoiawksg">Computer \
telephony</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJidHA0Y2E1BF9TAzk3MzU5NzE0BF9wAzIEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzQ0MDI0NQ--?t=ms&k=Port \
able+computer&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+case&w4= \
Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=klZKMuOolG_eNWty_hYh4w">Portable \
computer</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiaGJmaXR0BF9TAzk3MzU5NzE0BF9wAzMEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzQ0MDI0NQ--?t=ms&k=Port \
able+computer+case&w1=Computer+telephony&w2=Portable+computer&w3=Portable+computer+cas \
e&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=AsamkASYZNbe7ftQYzzWGQ">Portable \
computer case</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiYTRjZmFiBF9TAzk3MzU5NzE0BF9wAzQEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzQ0MDI0NQ--?t=ms&k=Comm \
unication+and+networking&w1=Computer+telephony&w2=Portable+computer&w3=Portable+comput \
er+case&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=yoxe9tLE4V_B-4X1sEro_A">Communication \
and networking</a></li>  <li><a \
href="http://groups.yahoo.com/gads;_ylc=X3oDMTJiazBkYjBtBF9TAzk3MzU5NzE0BF9wAzUEZ3JwSW \
QDNDc5NzY3BGdycHNwSWQDMTcwNTAwNDcyNgRzZWMDc2xtb2QEc3RpbWUDMTE2NzQ0MDI0NQ--?t=ms&k=Comp \
uter+telephony+integration&w1=Computer+telephony&w2=Portable+computer&w3=Portable+comp \
uter+case&w4=Communication+and+networking&w5=Computer+telephony+integration&c=5&s=145&g=2&.sig=MRKosOdSpqJyJnCQzkaUqg">Computer \
telephony integration</a></li>  </ul>
      </div>
    
    <!-- Network content -->
                <div id="nc">
              <div class="ad">
                      <div id="hd1">Yahoo! for Good</div>
<p><a href="http://us.ard.yahoo.com/SIG=12jtjmhh0/M=493064.10021865.10705514.9706567/D \
=groups/S=1705004726:NC/Y=YAHOO/EXP=1167447445/A=3836825/R=0/SIG=11fpa9v8q/*http://promotions.yahoo.com/giving/topten.php">Get \
Inspired to Give</a></p>  <p>Donate before the</p> 
<p>end of the year.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Y! Messenger</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12i0bd7jq/M=493064.9803215.10510209.8674578/D= \
groups/S=1705004726:NC/Y=YAHOO/EXP=1167447445/A=3848583/R=0/SIG=11umg3fun/*http://us.rd.yahoo.com/evt=42403/*http://messenger.yahoo.com">Want \
a quick chat?</a></p>  <p>Chat over IM with</p> 
<p>group members.</p>                  </div>
                    <div class="ad">
                      <div id="hd1">Need traffic?</div> 
<p><a href="http://us.ard.yahoo.com/SIG=12iob447l/M=493064.9803227.10510220.8674578/D= \
groups/S=1705004726:NC/Y=YAHOO/EXP=1167447445/A=3848644/R=0/SIG=131l83flq/*http://sear \
chmarketing.yahoo.com/arp/srchv2.php?o=US2006&cmp=Yahoo&ctv=Groups5&s=Y&s2=&s3=&b=50">Drive \
customers</a></p>  <p>With search ads</p> 
<p>on Yahoo!</p>                  </div>
          </div>
      
  </div>   <!-- |**|end egp html banner|**| -->
  <div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src="" width="1" height="1"> <br>
<span  style="color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: \
arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg table \
{font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% \
arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% \
monospace;*font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
    font-family: Georgia;	
}
#ygrp-text p{
    margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
    font-family: Arial;	
    clear: both;
}
#ygrp-vitnav{
	padding-top: 10px;
	font-family: Verdana;
	font-size: 77%;
	margin: 0;
}
#ygrp-vitnav a{
	padding: 0 1px;
}
#ygrp-actbar{
	clear: both;
	margin: 25px 0;
	white-space:nowrap;
	color: #666;
	text-align: right;
}
#ygrp-actbar .left{
	float: left;
	white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
	font-family: Verdana;
	font-size: 77%;
	padding: 15px 0;
}
#ygrp-ft{
  font-family: verdana;
  font-size: 77%;
  border-top: 1px solid #666; 
  padding: 5px 0; 
}
#ygrp-mlmsg #logo{
  padding-bottom: 10px;
}

#ygrp-vital{
	background-color: #e0ecee;
	margin-bottom: 20px;
	padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
	font-size: 77%;
	font-family: Verdana;
	font-weight: bold;
	color: #333;
	text-transform: uppercase;
}
#ygrp-vital ul{
	padding: 0;
	margin: 2px 0;
}
#ygrp-vital ul li{
  list-style-type: none;
  clear: both;
  border: 1px solid #e0ecee;  
}
#ygrp-vital ul li .ct{
  font-weight: bold;
  color: #ff7900;
  float: right;
  width: 2em;
  text-align:right;
  padding-right: .5em;
}
#ygrp-vital ul li .cat{
  font-weight: bold;
}
#ygrp-vital a {
	text-decoration: none;
}

#ygrp-vital a:hover{
  text-decoration: underline;
}

#ygrp-sponsor #hd{
	color: #999;
	font-size: 77%;
}
#ygrp-sponsor #ov{
	padding: 6px 13px;
	background-color: #e0ecee;
	margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
	padding: 0 0 0 8px;
	margin: 0;
}
#ygrp-sponsor #ov li{
	list-style-type: square;
	padding: 6px 0;
	font-size: 77%;
}
#ygrp-sponsor #ov li a{
	text-decoration: none;
	font-size: 130%;
}
#ygrp-sponsor #nc {
  background-color: #eee;
  margin-bottom: 20px;
  padding: 0 8px;
}
#ygrp-sponsor .ad{
	padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
	font-family: Arial;
	font-weight: bold;
	color: #628c2a;
	font-size: 100%;
	line-height: 122%;
}
#ygrp-sponsor .ad a{
	text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
	text-decoration: underline;
}
#ygrp-sponsor .ad p{
	margin: 0;
}
o {font-size: 0; }
.MsoNormal {
   margin: 0 0 0 0;
}
#ygrp-text tt{
  font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->


["files.ml.unison-patch" (text/plain)]

--- src/files.ml.orig	2006-12-28 19:28:20.000000000 -0800
+++ src/files.ml	2006-12-29 16:03:41.267000600 -0800
@@ -621,17 +621,21 @@
         ^ " " ^ (quotes (Fspath.toString fspath1))
         ^ " " ^ (quotes (Fspath.toString fspath2))
       else
         Util.replacesubstrings (Prefs.read diffCmd)
           ["CURRENT1", quotes (Fspath.toString fspath1);
            "CURRENT2", quotes (Fspath.toString fspath2)] in
     (* Doesn't seem to work well on Windows!
        let c = Lwt_unix.run (Lwt_unix.open_process_in cmd) in *)
-    let c = Unix.open_process_in cmd in
+    let c = Unix.open_process_in
+      (if Util.osType = `Win32 && not Util.isCygwin then
+         "\"" ^ cmd ^ "\""
+       else
+         cmd) in
     showDiff cmd (readChannelTillEof c);
     ignore (Unix.close_process_in c) in
   let (desc1, fp1, ress1, desc2, fp2, ress2) = Common.fileInfos ui1 ui2 in
   match root1,root2 with
     (Local,fspath1),(Local,fspath2) ->
       Util.convertUnixErrorsToTransient
         "diffing files"
         (fun () ->
@@ -868,29 +872,29 @@
       Os.delete workingDirForMerge newarch;
       let info1 = Fileinfo.get false workingDirForMerge working1 in
       (* FIX: Why split out the parts of the pair?  Why is it not abstract 
anyway??? *)
       let dig1 = Os.fingerprint workingDirForMerge working1 info1 in
       let info2 = Fileinfo.get false workingDirForMerge working2 in
       let dig2 = Os.fingerprint workingDirForMerge working2 info2 in
       let cmd = formatMergeCmd
           path
-          (Fspath.concatToString workingDirForMerge working1)
-          (Fspath.concatToString workingDirForMerge working2)
+          (quotes (Fspath.concatToString workingDirForMerge working1))
+          (quotes (Fspath.concatToString workingDirForMerge working2))
           (match arch with
	    None -> None
-	  | Some f -> Some(Fspath.toString f))
-          (Fspath.concatToString workingDirForMerge new1)
-          (Fspath.concatToString workingDirForMerge new2)
-          (Fspath.concatToString workingDirForMerge newarch) in
+	  | Some f -> Some(quotes (Fspath.toString f)))
+          (quotes (Fspath.concatToString workingDirForMerge new1))
+          (quotes (Fspath.concatToString workingDirForMerge new2))
+          (quotes (Fspath.concatToString workingDirForMerge newarch)) in
       Trace.log (Printf.sprintf "Merge command: %s\n" cmd);

       let returnValue, mergeResultLog =
-        if Util.osType = `Win32 then
-          let c = Unix.open_process_in cmd in
+        if Util.osType = `Win32 && not Util.isCygwin then
+          let c = Unix.open_process_in ("\"" ^ cmd ^ "\"") in
           let mergeLog = readChannelTillEof c in
           let returnValue = Unix.close_process_in c in

           let mergeResultLog =
             cmd ^
             (if mergeLog <> "" then "\n\n" ^ mergeLog else "") ^
             (if returnValue <> Unix.WEXITED 0 then
                "\n\n" ^ Util.process_status_to_string returnValue
@@ -922,17 +926,17 @@
       debug (fun () -> Util.msg "Merge result = %s\n"
                    (showStatus returnValue));

       if not
           (showMergeFn
	     true
              (Printf.sprintf "Results of merging %s" (Path.toString path))
              mergeResultLog) then
-        raise (Util.Transient ("Merge command failed or cancelled by the 
user"));
+        raise (Util.Transient ("Merge cancelled by the user"));

       (* Check which files got created by the merge command and do 
something appropriate
          with them *)
       debug (fun()-> Util.msg "New file 1 = %s\n" (Fspath.concatToString 
workingDirForMerge new1));
       let new1exists = Sys.file_exists (Fspath.concatToString 
workingDirForMerge new1) in
       let new2exists = Sys.file_exists (Fspath.concatToString 
workingDirForMerge new2) in
       let newarchexists = Sys.file_exists (Fspath.concatToString 
workingDirForMerge newarch) in

@@ -995,17 +999,16 @@
             copy [(working2,working1);(working2,workingarch)]
           end else
	    if returnValue <> Unix.WEXITED 0 then
	      raise (Util.Transient ("Error: the merge function changed both of "
                                      ^ "its inputs but did not make them 
equal"))
	    else begin
	      debug (fun () -> (Util.msg "Merge program changed both of its inputs 
in";
				Util.msg "different ways, but returned zero.\n"));
-              copy [(working2,working1);(working2,workingarch)];
	    end
         end

         else if working1_still_exists && (not working2_still_exists)
	    && returnValue = Unix.WEXITED 0 then begin
               debug (fun () -> Util.msg "No outputs and second replica has 
been deleted \n");
               copy [(working1,working2); (working1,workingarch)];
             end


["uigtk2.ml.unison-patch" (text/plain)]

--- src/uigtk2.ml.orig	2006-12-28 19:28:20.000000000 -0800
+++ src/uigtk2.ml	2006-12-29 15:45:13.179607100 -0800
@@ -1896,35 +1896,27 @@
                   return ()
                 else
                   catch (fun () ->
                            Transport.transportItem
                              theSI.ri (Uutil.File.ofLine i)
                              (fun proceed title text ->
			    (*    Trace.status (Printf.sprintf "\n%s\n\n%s\n\n" title text); *)
			       textDetailed := (Some text);
-			       if proceed then
-				 if Prefs.read Uicommon.confirmmerge then
-				   twoBoxAdvanced
-				     ~title:title
-				     ~message:("The merge exited successfully."
-					       ^ " Do you want to commit the changes to"
-					       ^ " the replicas ?")
-				     ~longtext:text
-				     ~advLabel:"View details..."
-				     ~astock:`YES
-				     ~bstock:`NO
-				 else
-				   true
+                               if Prefs.read Uicommon.confirmmerge then
+				 twoBoxAdvanced
+				   ~title:title
+				   ~message:("Do you want to commit the changes to"
+					     ^ " the replicas ?")
+				   ~longtext:text
+				   ~advLabel:"View details..."
+				   ~astock:`YES
+				   ~bstock:`NO
			       else
-				 (okBox ~title:title ~typ:`INFO
-				    ~message:("\nThe merge function was unsuccessful, "
-					      ^ "changes will not be commited to "
-					      ^ "the replicas.");
-				  false))
+				 true)
                            >>= (fun () ->
                              return Util.Succeeded))
                          (fun e ->
                            match e with
                              Util.Transient s ->
                                return (Util.Failed s)
                            | _ ->
                                fail e)



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic