How do I debug git-cvsimport? (can't see complicated commit)
Asked Answered
B

1

2

About 40 minutes ago I committed a particularly complicated change involving several file renames, mergers, and deletes from git into cvs, using git-cvsexportcommit. This went fine, and a checkout from CVS sees the changes. However, the changes are not appearing when I run git-cvsimport to update my git mirror of the CVS repository.

I know that git-cvsimport delays importing very new changes to try to avoid making a git commit out of a multi-file CVS commit that isn't completed yet, but I'm pretty sure that delay is only ten minutes.

Any ideas what's wrong? How do I even debug this? Do I need to run cvsps by hand and, if so, what would I be looking for?

Bondman answered 25/3, 2009 at 19:31 Comment(0)
B
6

You should try deleting the relevant cvsps cache file (should be in in ~/.cvsps/). I've had similar issues in the past and I that is what cleared it up.

You could also try passing the -x option to cvsps which tells it to ignore the cache file. You can use git-cvsimport's "-p" option to do this.

If all else fails, I would guess a fresh git-cvsimport -C would pick up the change.

Good luck!

Baker answered 25/3, 2009 at 21:47 Comment(7)
Hmm, I think I'm already passing -p x or something like that. (Will have to check tomorrow when I get back to work.) I'll try it if I'm not. My next step was going to be a fresh git-cvsimport in the morning. Sigh... :)Bondman
Yep, I was already using -p x. I tried deleting ~/.cvsps/, not expecting it to work, and it didn't. So I'm doing a brand new import. At least I get to follow best practices from your other post this time. :) [I'll import into a remote named cvs this time, etc.]Bondman
A new cvsimport picked up what I was missing. I can see the patchset in the output of cvsps. Continued attempts to update my original git mirror don't work. Interestingly enough, my new git mirror and old share objectIDs for early commits, but not recent ones, even before the missing one.Bondman
Turns out instead of passing -p x, I need to pass -p -x. I'm going to be both mad and glad if that's all it is! Thank you, Brian. You have been an enormous help to me on this and other threads. I owe you lunch sometime if we are ever in the same state.Bondman
Just made a long post on thisBondman
You might be interested to know that I've now got the problem of git-cvsimport missing patchsets down to the point where I think I can file a bug report. It has to do with timestamp confusion, I think. You have to do some fairly detailed logging over many imports to see it. Many people with long repository histories probably have this happening and don't know it.Bondman
Got it!!! It finally happened again ... a patchset with a timestamp of exactly ten minutes ago will be skipped, subsequent patchsets will be imported, and then you're hosed. I'll be reporting it. :)Bondman

© 2022 - 2024 — McMap. All rights reserved.