EOL extension

Colin Caughie c.caughie at indigovision.com
Thu Dec 3 04:24:54 CST 2009

> I made a first pass at trying to use the eol extension for real.  I
> started with a fresh clone of an existing repository.  After adding
> and
> committing my .hgeol file, I wondered how to convert the working
> tree to
> the new format - and figured I could do "hg up -r 0" followed by "hg
> up".  It has since been pointed out I probably wanted '-r null', and
> although I don't get the same problem with '-r null' this problem
> seems
> worth reporting anyway.

I also just tried it with one of our own repos. This is a repo that has been using win32text, so internally all of its EOLs are LF, but in our Windows work areas they are CRLF.

I disabled win32text, added an .hgeol file (also with "**=native"), committed it, did "hg up null", then "hg up 6.0" (6.0 being a named branch).

Running "hg status" at this point shows several files being marked as modified. "hg diff" shows all of the lines in these files as having changed. If I run "hg winmerge" on the other hand (I have WinMerge configured as an external diff tool), WinMerge reports no changes, even though it is configured not to ignore line ending differences. Moreover all of the affected files have the correct CRLF line endings in my working directory, and I know they are LF in the repository.

Very mysterious. Even stranger, each time I do "hg up null" followed by "hg up 6.0" I get a slightly different set of files being reported as changed, although it always seems to be centred around a small set in one or two subdirectories.

If I do "hg debugrebuildstate", "hg status" thereafter reports absolutely everything as changed. After an "hg revert --all" I'm back to the small set I saw before.

I'm going to hack around and see if I can figure out what's going wrong, but if anyone has any ideas it would be helpful.


Latest News at: http://www.indigovision.com/news2009.php

More information about the Mercurial-devel mailing list