Questions after trying builtin cvsps based CVS conversion
David I.
yigyw4d02 at sneakemail.com
Wed Oct 8 21:03:39 UTC 2008
I pulled crew-6788608627c4 to test out the builtin cvsps based
conversion.
It appears to work OK. My biggest module has about 10,000 changesets and
it only took a few hours. Good job!
I do have 4 questions though:
=========== 1 ===========
This email talks about support for a start revision. Is that in my copy
of "crew" or is it in a later one? What is the syntax? Where is it
documented?
http://marc.info/?l=mercurial&m=121870430409407&w=2
I only want the last couple of years of history if possible. Suggestions
on ways to do that are welcome.
=========== 2 ===========
I seem to have lots of heads in my converted repositories. I want to
move toward having separate repositories for each branch, with only one
head in each repository. I'm not sure if these multiple heads will cause
me problems in the future. I thought I would clone the converted repo
using the various branch tags I'm interested in to make separate repos
per branch.
It appears that when I clone a particular module and use a tag (carried
over from the CVS conversion) with -r, I get only 1 head and no tags in
the clone. Does that sound correct? I like that behavior in this
instance, so it is OK with me.
However, if I do a normal clone with no revision specified, I get all
heads. I don't see where there is documentation on the use of clone and
it's affect on branches, tags, and heads. Something is said here:
http://www.selenic.com/mercurial/wiki/index.cgi/ConcatenatingChangesets,
but not here http://www.selenic.com/mercurial/wiki/index.cgi/Clone.
I tried to clone with -r tip and got some errors, but it appears to
work...
In the original repot of imat_admin, there are 3 heads: rev 1, 404, &
406.
>hg heads
changeset: 406:7095ed5d277c
tag: tip
user: convert-repo
date: Wed Oct 08 00:34:38 2008 +0000
summary: update tags
changeset: 404:0e89bc0059a2
tag: BRANCH_version-5_1_prod_merge_latest
tag: BRANCH_version-5_1_prod_merge_20081006
user: name <e.mail at co.com>
date: Thu Oct 02 14:30:42 2008 +0000
summary: blah blah
changeset: 1:636ca2009e7f
tag: release-tag
user: name <e.mail at co.com>
date: Tue Jan 29 21:39:15 2002 +0000
summary: initial import
>hg parents
changeset: 406:7095ed5d277c
tag: tip
user: convert-repo
date: Wed Oct 08 00:34:38 2008 +0000
summary: update tags
In new repo:
>hg clone -r tip ~/hg/imat_admin/ imat_admin-tip
requesting all changes
adding changesets
adding manifests
adding file changes
added 405 changesets with 643 changes to 63 files
updating working directory
.hgtags at 7095ed5d277c, line 4: tag
'BRANCH_version-5_1_prod_merge_20081006' refers to unknown node
.hgtags at 7095ed5d277c, line 5: tag 'BRANCH_version-5_1_prod_merge_latest'
refers to unknown node
.hgtags at 7095ed5d277c, line 146: tag 'release-tag' refers to unknown node
46 files updated, 0 files merged, 0 files removed, 0 files unresolved
> cd imat_admin-tip
>hg heads
changeset: 404:7095ed5d277c
.hgtags at 7095ed5d277c, line 4: tag
'BRANCH_version-5_1_prod_merge_20081006' refers to unknown node
.hgtags at 7095ed5d277c, line 5: tag 'BRANCH_version-5_1_prod_merge_latest'
refers to unknown node
.hgtags at 7095ed5d277c, line 146: tag 'release-tag' refers to unknown node
tag: tip
user: convert-repo
date: Wed Oct 08 00:34:38 2008 +0000
summary: update tags
>hg parents
changeset: 404:7095ed5d277c
.hgtags at 7095ed5d277c, line 4: tag
'BRANCH_version-5_1_prod_merge_20081006' refers to unknown node
.hgtags at 7095ed5d277c, line 5: tag 'BRANCH_version-5_1_prod_merge_latest'
refers to unknown node
.hgtags at 7095ed5d277c, line 146: tag 'release-tag' refers to unknown node
tag: tip
user: convert-repo
date: Wed Oct 08 00:34:38 2008 +0000
summary: update tags
In the clone, why is my parent rev 404 when 406 was labeled as tip and
parent in the original?
=========== 3 ===========
I plan to merge all my modules into one repository by following
http://selenic.com/pipermail/mercurial/2008-September/021406.html. If I
do this, can I update from the CVS repository incrementally to the new
merged/combined repository?
For example,
a)
hg convert module_1 hg-module_1
hg convert module_2 hg-module_2
hg convert module_3 hg-module_3
b)
hg clone -r branch_x hg-module_1 hg-module_1_branch_x
(repeat for each module)
c)
Initialize empty hg-combined_branch_x
<do pull --force> of all modules of a branch to combined repository
(hg-combined_branch_x)
hg merge
d)
Do hg->hg conversion with --datesort to clean up, use rename directive
to remove some old binaries in the repo, and make hg-final_branch_x
Now I have a nice and tidy hg-final_branch_x repository for each branch
I want to keep around. I still have all history, but I've cleaned out
some binaries I didn't want cluttering up the store. I can then throw
away the interim repositories. (repeat process for each branch I'm
interested in, plus one for the latest development work [trunk])
It appears that incremental CVS updates could work if I only do steps "a
thru c". Maybe I don't need to do step "d" until we are ready to turn
off CVS. Any comments?
=========== 4 ===========
I have tried using the glog extension to look at the repositories after
conversion, but I have so many changesets that it is hard to get a good
overview of how things are. I also looked at the hgserve graph output
and it has similar problems with scrolling. I saw that others have
similar issues
(http://www.nabble.com/Change-history-visualization-tools--td18599417.ht
ml) but I wanted to say "me too".
David
More information about the Mercurial
mailing list