Too many tags after converting CVS repo

Matt Mackall mpm at selenic.com
Tue Jan 20 00:46:12 UTC 2009


On Mon, 2009-01-19 at 17:09 -0500, Greg Ward wrote:
> Hi all -- I'm playing around with my first experimental "hg convert" run
> on our large-ish CVS repository.  (Specifically: 8 years of history,
> ~17000 files in a trunk checkout, ~28000 files total, ~106000
> changesets.)  Happily, "hg convert" chugs through the whole darn thing
> without blowing up or creating garbage.  That's a good start!
> 
> But one of the quirks of our CVS workflow is a completely ludicrous
> number of tags to workaround CVS' merging deficiencies: every time we
> fix a bug, we bracket the checkin with a pair of tags.  Repeat for each
> merge.  So if a bug is fixed on branch 3.1 and merged to branches 3.2,
> 3.3, and trunk, we create 8 tags.  Over the years, that adds up: my
> brand-new .hgtags file has ~108000 tags, of which ~62000 are tags that
> wrap bugfix commits.
> 
> One side effect of having ~108000 tags is that it takes 7 sec to run "hg
> tip", because Mercurial needs to read through the enormous .hgtags file
> to see what tags apply to the tip changeset.  Ugh.  (I imagine Mercurial
> was not designed to have tens of thousands of tags, so I have to wonder
> what other performance problems are lurking out of sight.)
> 
> These tags have zero value outside of CVS, so I would just like to drop
> them when converting the repository.  I don't see anything obvious in
> "hg help convert".  Am I missing something, i.e. is there an way to do
> this?

emacs .hgtags
hg ci

If anyone comes up with a non-silly reason to have 100k tags or even 10k
tags, we might look at improving the performance.

-- 
http://selenic.com : development and support for Mercurial and Linux





More information about the Mercurial mailing list