Thanks, this is extremely helpful.
> Many of the problems in the core conversion stemmed from the weird way
> in which CVS deals with files that are added to branches later than they
> are added to mainline.
You mean something like branch REL_X_STABLE created, file A added to
trunk, some more commits to trunk, then eventually the addition of A
back-ported to REL_X_STABLE?
> Originally, CVS had no way to represent the fact
> that such a file had not existed on the branch all the way back to the
> time of its addition to mainline; although any tags you'd added to the
> branch in between would not be on such a file, making it apparent that
> it wasn't really there. So cvs2git sees an inconsistent history and has
> to do something ugly to fix it.
>
> Later on, the CVS people invented a kluge way to represent this situation,
> so it's possible that you don't have any such cases in recent history.
> Basically the kluge requires inserting a deletion event on the branch at
> the time of the file's creation on master. We did that by hand-editing
> the RCS files when we did the core conversion, which was a tad more
> exciting than I would've liked, but there weren't really enough cases
> to justify building a tool for it.
Okay, I'll dig into the RCS files from the dump Kris and sent out and
compare the (well-migrated) recent branches to the older branches
which show problems. I'm not one to shy away from excitement.
---
Maciek Sakrejda | System Architect | Truviso
1065 E. Hillsdale Blvd., Suite 215
Foster City, CA 94404
(650) 242-3500 Main
www.truviso.com