|
|
|
|
|
by kazinator
812 days ago
|
|
In 2002 I wrote a Lisp program called Meta-CVS. It uses CVS to store files in a certain format, which allows versioning of the directory structure, symbolic links and permissions. As well, it has a "mcvs grab" command for importing snapshots of external code such that renames are identified. Plus it has merge automation with tracking. Plus interactive workflow when creating a repo, for identifying binary files and whatnot. The support for renaming in Meta-CVS blows git out of the water (since that basically doesn't have any). People continuing with CVS crazy not to be at least using Meta-CVS to make their lives easier. I used Meta-CVS once to clean up a mess. In the company I was working on, my friend, a configuration manager, came to me with a problem: merging some large amount of Java cruft from a branch where the developers did various renames. Not just A to B renames, but cyclic renames A.java renamed to B.java, while B.java renamed to C.java, while C.java again renamed to A! (Would you believe it.) This had to be merged to the trunk. I whipped out Meta-CVS for the task. "mcvs grab" easily identified the rotating renames and merged the content, which we were then able to check into the VC actually being used (might have been SVN). |
|