Comment 0 for bug 535211

Revision history for this message
Leo (leorolla) wrote :

Binary package hint: unison

When a directory contains files whose name bare both capitalized and not capitalized letters (though not the same names, even ignoring case), the Unison archive is created in a way that switching on or off the "ignorecase" flag makes it crash.

Expected:

Unison re-sorts the archive to overcome the new user setting.

It should just proceed comparison normally
(unless "ignorecase" was set to "false" before and now with "ignorecase=true" it happens that two files have the same name, e.g., "AaAaa" and "aaaAA")

Reproducing this bug:

$ mkdir tmp
$ cd tmp
$ mkdir a ; mkdir b
$ ls > a/Aa
$ ls > a/Ee
$ ls > b/a
$ ls > b/e
$ unison a b -ignorecase=false -fastcheck=false
Fatal error: Corrupted archive: the files are not correctely ordered in directory
$ unison a b -ignorecase=false -fastcheck=false
Warning: No archive files were found for these roots, whose canonical names are:
...
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.

Update detection may take a while on this run if the replicas are
large.

Unison will assume that the 'last synchronized state' of both replicas
was completely empty. This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations. See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison

Press return to continue.[<spc>]
a b
file ----> Aa
file ----> Ee
         <---- file a
         <---- file e

Proceed with propagating updates? [] g[BGN] Copying Aa...
[END] Copying Aa
...
[END] Copying e
Synchronization complete (4 items transferred, 0 skipped, 0 failures)
$ unison a b -ignorecase=false -fastcheck=false
$ unison a b -ignorecase=true -fastcheck=false
Fatal error: Corrupted archive: the files are not correctely ordered in directory
$ unison -version
unison version 2.27.57
$

ProblemType: Bug
Architecture: i386
Date: Tue Mar 9 18:51:30 2010
DistroRelease: Ubuntu 9.10
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release i386 (20091028.5)
Package: unison 2.27.57-2ubuntu1
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-20.57-generic
SourcePackage: unison
Uname: Linux 2.6.31-20-generic i686