Mercurial EolExtension is broken beyond repair...
I have an admittedly complex setup with EOL conversion because development is on a Windows host where some programs require CRLFs.
But even so, I've never had any trouble with git in similar circumstances, and this happens multiple times per week: at some point during MQ patch refreshment, EolExtension gets confused and reports »abort: inconsistent newline style in ...
«.
Subsequently, hg stat
takes forever (once) and hg diff
shows all files as added with Unix line endings, even though the actual physical files have Windows line endings just like before.
While trying to get all the files to show up as unmodified again, the following happens.
And the real fun part: because the files are actually still using the correct line endings on disk, hg revert
is completely ineffective! How is that even possible?!
Because it's a really large repo, I don't really fancy going via hg up -C null
since that takes forever.
But in the end it was the only way to remedy the »situation«.
And don't even get me started on the observed fact that hg stat
does caching – why else would it take so long only the first time after EolExtension screws up? I'll never use Mercurial on any project if I get a choice, and that's especially true on Windows where according to some it works so much better than git.
Doing some more investigating, it turns out that the problematic files show up with missing data in hg debugstate
:
n 0 -1 unset browser/components/places/tests/unit/test_txnGUIDs.js n 0 -1 unset browser/components/search/test/browser_415700.js n 0 -1 unset browser/components/sessionstore/test/browser/browser_346337_sample.html
This suggests that running hg debugrebuildstate -r tip
might help to fix the problem.
After this, hg status
takes a long time again, but without setting the correct file size.
n 644 -1 1970-01-01 01:00:00 browser/components/places/tests/unit/test_txnGUIDs.js n 644 -1 1970-01-01 01:00:00 browser/components/search/test/browser_415700.js n 644 -1 1970-01-01 01:00:00 browser/components/sessionstore/test/browser/browser_346337_sample.html
After going through the lengthy hg co -C null
and hg update -C tip
exercise, the state of the above files looks like this:
n 644 4030 2016-07-16 02:48:59 browser/components/places/tests/unit/test_txnGUIDs.js n 644 3729 2016-07-16 02:49:00 browser/components/search/test/browser_415700.js n 644 1049 2016-07-16 02:49:00 browser/components/sessionstore/test/browser/browser_346337_sample.html
I have the same issues almost each day. Have you found a way to avoid such errors?
ReplyDelete