Reporting "nearly-exact" adds (Was: Windows test suite state)
Adrian Buehlmann
adrian at cadifra.com
Fri Jun 6 19:00:10 CDT 2008
On 06.06.2008 01:42, Adrian Buehlmann wrote:
> Sigh. It seems we have some more serious issues with hg add
> than just test output differences:
>
> With your patches applied (plus that known bug fixed), on Windows
> (hgt = hg -- just my wrapper bat):
>
>> hgt sta
> --- running hg from W:\hg-crew-paul
> ? x\a.txt
>
>> hgt add x\a.txt
> --- running hg from W:\hg-crew-paul
> adding x\a.txt
>
>> hgt sta
> --- running hg from W:\hg-crew-paul
> A x\a.txt
> ? x\a.txt
>
> last output looks like there is some serious confusion
> in the dirstate (same file both "unkown" and "added").
Paul, this has been outdated by your newest resending of your
patches (which is good). But I just wanted to add something to the
above, which I think is important (I used that same outdated codebase
as above):
Looking at:
> hgt debugstate
--- running hg from W:\hg-crew-paul
a 0 -1 unset x\a.txt
I see that in this old version of the codebase, the paths
in the dirstate used *backslases* for the path separator.
With your newest codebase (c8b1fb9e1957, checked by using your
binary I downloaded) I see debugstate now returns *forward* slashes
-- which seems very good to me.
Since the dirstate is stored as a file at .hg/dirstate,
I think I now understand that the path separators inside the
dirstate by all means must be *forward* slahes (*not* backslashes).
The reason for this seems clear: the whole repo
-- that is, the directory which contains the .hg dir --
with all its contents ("working directory" plus .hg dir) must
be:
* Compatible from one Mercurial release to the next
* Transferrable from unix to Windows and vice versa
Unless there is a mechanism I don't know of which detects and
rebuilds the dirstate in both of these cases...
More information about the Mercurial-devel
mailing list