initial merging for cvs conversion

Jamie Webb j at jwebb.sygneca.com
Fri Feb 15 11:30:26 CST 2008


On 2008-02-15 08:58:00 brianharris wrote:
> 
> This is a sort of feature enhancement request, though I'm not sure if
> this is already possible- hence this post.
> 
> I'm converting a CVS repository to Mercurial.  AFAIK you have to
> convert one CVS module at a time.  My issue is about the end result
> of merging all the converted modules' repositories together.
> 
> When I merge one at a time, the repo I merge _from_ gets all of its
> changesetIDs incremented by the highest id in the repo I merge _to_;
> this is expected but undesirable in this situation.  What I really
> want is for the changesetIDs to overlap based on the date, so that
> the various auditing tools that display changes in order of
> changesetID make more sense in the final converted repo.
> 
> So what I'd like to know is (a) if this multi-merge ability is
> currently possible, (b) if not, if it's theoretically possible given
> hg design, (c) if so, in what module you think this feature belongs.

Given directories merged1 and merged2, where merged1 is your existing
merged repository that you want to re-order and merged2 is empty, try
something like:

  cd merged2
  hg init
  hg log -R ../merged1 --template '{date}\t{node}\n' | sort | cut -f2 \
      | xargs -I@ hg pull -r @ ../merged1

I haven't run it, but the goal is to pull in revisions one-by-one in
date order. I think the dependency graph of your merged CVS import
should permit this.

/J


More information about the Mercurial mailing list