This is the mail archive of the cygwin-talk@cygwin.com mailing list for the cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: RFU: unison-2.9.1, unison-2.9.20, unison-2.10.2


On a sunny but wintry Sunday, the 6th day of March, 2005, Dave Korn's
computer emitted the following stream of bytes:

> >> This design choice was apparently made to safeguard against possible
> >> changes in both the network protocol and archive formats between
> >> versions of Unison.> >
> > Could someone airdrop a clue here?  Shouldn't it be a trivial
> > realization that the wire protocol, archive format, and program
> > version could be different things?
>
>   I guess just because future versions of the protocol are
> backwardly-compatible, they still want the code to be safe against
> forwardly-incompatible changes to past versions of the code.  What if
> someone goes back in a time machine and changes the behaviour of an
> older version of the code, after all?  This protocol protects against
> it!
>
>   Oooh, but what if the same malicious time-travelling software
> engineers also changed the version number string?
>
>   Hmm.  I suggest this patch:
>
> DKAdmin@ubik /usr/src/unison-2.9.20> cp remote.ml remote.ml.new
> DKAdmin@ubik /usr/src/unison-2.9.20> diff -pu remote.ml remote.ml.new
> --- remote.ml   2005-03-06 10:42:07.725894400 +0000
> +++ remote.ml.new       2005-03-06 10:41:58.923236800 +0000
> @@ -1002,8 +1002,12 @@ let rec checkHeader conn prefix buffer p
>             ^ "\" but received \"" ^ String.escaped (prefix ^ buffer) ^ "\".\n"
>             ^ "This is probably because you have different versions of Unison\n"
>             ^ "installed on the client and server machines.\n"))
> -    else
> -      checkHeader conn (prefix ^ buffer) buffer (pos + 1) len)
> +    else
> +      (* mummy i'm scared *)
> +      Lwt.fail
> +        (Util.Fatal
> +          ("Matching version on client and server.\n"
> +          ^ "But what if it's not compatible with itself?  Aborting to be safe.\n"))

You got a ChangeLog with that?

OAU


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]