rcls / crap

Cvs Remote Access Program
GNU General Public License v3.0
46 stars 12 forks source link

Fails to get a specific revision of a specific file #27

Open luc-j-bourhis opened 4 years ago

luc-j-bourhis commented 4 years ago

I get the following error

...
2002-08-02 04:33:18 RDT COMMITMissed first time round: plugins/saint/makefile.win32-msvc 1.1
cvs checkout - failed to get plugins/saint/makefile.win32-msvc 1.1
fatal: stream ends early
...

After checking out the repo with CVS, the following works

cvs up -r1.1 -p Makefile.win32-msvc

Unfortunately I cannot share the repository with you as this is company code! crap has been working for years on that repository, flawlessly so. I am at a loss at what could have happened suddenly.

This is with CVS 1.11.23 on Cygwin with crap at commit d985bbb (the merge of the pull request of mine adding keyword support).

rcls commented 4 years ago

The error message has 'makefile...' your manual command has 'Makefile...'. Is this a Windows CVS server by any chance? If so the server may get confused if there is a deleted file with one capitalization and a non-deleted file with the other? A proper fix would be to close the CVS connection and reopen it if getting a file revision fails. We can probably workaround by getting crap's version cache populated for this file, once that is done, crap won't attempt to download that version again.

luc-j-bourhis commented 4 years ago

Well spotted indeed! This issue is then related to the old #19 we agreed was too complicated to fix: what I did after that was to make my Windows disk case-sensitive and it solved the problem. I have just checked: the disk is case-insensitive now. Probably some IT intervention. I did not see the problem because of crap-clone caching. It resurfaced only because I ran it from scratch again, I guess.

So it would be nice if you could work out a hack on your side for sure. But I can perform the same hack again on my side. Thanks again for that great tool which saves my day every day!

luc-j-bourhis commented 4 years ago

Eventually the best solution is to install Ubuntu inside WSL, which is available out of the box on Windows 10. The filesystem is case-sensitive by default and crap-clone runs faster than on Cygwin. You may therefore close this issue as this is a bullet-proof solution for anybody who needs crap-clone on Windows 10.