Mercurial change from Large CVS repository + Large Binary Libraries
Jesse Glick
jesse.glick at sun.com
Tue Feb 19 13:55:50 CST 2008
Francisco Diaz Trepat - gmail wrote:
> Large CVS repositories being Converted to Mercurial.
Worked OK for me, after throwing out branches and "Attic" files. In
practice I find that when developers say they want history imported,
they usually mean they want to be able to run 'hg ann' and get some
useful output - for which you only need trunk history of files which
existed in the trunk at the time of conversion. In the rare case you
need to reconstruct an entire historical snapshot of your sources, you
can still use CVS (keep the server around read-only). Of course your
team may have different needs.
> How can we handle libraries? Should they be in the repository, what
> are your thoughts in general?
If you *can* use something like Maven, you will certainly have less to
worry about. This can be a big change, and you need to be sure that
libraries are never changed in the repository without supplying a new
version number.
> In your experience what are the main points to gain from converting
> CVS to Mercurial.
No more
* trying to remember what was the last base tag you used when merging
the trunk into a branch
* coaxing people into using -kb at the right times
* figuring out how to add a directory full of files
* tracking down the original version of a renamed file
* maintaining dozens of little separate .cvsignore files
* finding out that the reason a colleague's code works only on their own
computer is that they have not bothered to update the rest of the
repository in over three months
* urgent screams that the server is down again and no one can get any
work done
> Are they any disadvantages as far as you know in converting from CVS
> to Mercurial?
* no way to check out just part of a repo
* no way to avoid pulling down a big history
* "merge contention" if too many people are trying to push into one
central server (even if they are working on unrelated files)
* baffled stares when you try to explain to longtime CVS users how
Mercurial history and merging work
> what are the CVS users more prone to dislike an more to like about
> Mercurial?
If you don't know what you are doing and mess something up (usually
during a merge), you can innocently dump incorrect changes into an
entire repository, whereas with CVS if you do all operations within your
own small directory at least you know you are not affecting anything
outside that area.
More information about the Mercurial
mailing list