workflow: cvs <-> hg mercurial
Patrick Drechsler
patrick at pdrechsler.de
Fri Jul 13 19:15:36 CDT 2007
Patrick Drechsler <patrick at pdrechsler.de> writes:
> Brendan Cully <brendan at kublai.com> writes:
>> On Wednesday, 11 July 2007 at 23:46, Patrick Drechsler wrote:
>>> I have to work with a CVS repository. And Windows (XPSP2).
>>>
>>> Since I am not always connected to the CVS-Repository (and have a
>>> "only-commit-when-functional" policy), I would like to mirror the code
>>> locally. From what I have read distributed version control might solve
>>> the problem.
>>>
>>> The only interesting "howto" page I found was (after excluding "git"):
>>>
>>> http://wiki.mozilla.org/User:VladVukicevic/Mercurial_Testing
>
> Thanks for your feedback!
>
>> That looks pretty clunky.
>
> ACK (Although it seems to work).
>
>> I'd suggest maintaining a mercurial import of the CVS tree using
>> the convert extension. Clone and pull from that for your local
>> work.
Could you elaborate on the advantages of this approach?
>> Pushing back to CVS still needs some manual attention, but the
>> cvscommit extension may fit the bill. You could probably do
>> something in a loop around hg outgoing.
>
> I will give this approach a try during the weekend, thanks a lot for
> the pointer!
I have now had some time to look into the Extensions concept. It is
very difficult to follow the instructions on the Wiki for me. Neither
the "convert" nor the "cvscommit" extensions are mentioned.
1. The "convert" extension seems to have been included into the
current release. Is there a short tutorial on its functionality?
Admittedly I do not see a big advantage compared to the method
described on the mozilla Wiki page mentioned earlier. The only
difference seems to be that I won't have the CVS logs converted to hg
logs?
2. What is the correct way of getting a copy of "cvscommit.py"? I
downloaded a copy from
http://ww2.fs.ei.tum.de/~corecode/hg/cvscommit/file/6a956486b0eb/cvscommit.py
and adapted my config file accordingly. Seems to work:
,----
| C:\>hg help cvscommit
| hg cvscommit [-d cvsroot] [-r rev1 [-r rev2]] CHECKOUTPATH [REV1 [REV2]]
|
| commit revisions to a cvs repo
|
| options:
|
| -d --cvsroot CVSROOT to commit to
| -U --userevs use revisions directly
| -r --rev range of revisions to commit
| -m --message use <text> as commit message
| -F --msgfile use contents of <file> as commit message
| -n --nocommit do not commit, just prepare
| -w --workdir commit changes in workdir
|
| use "hg -v help cvscommit" to show global options
`----
3. Since I am not able to create a test suite including a windows CVS
repository at the moment: Can somebody fill me in about the
functionality of "cvscommit"?
Will changes to individual files be committed with the Hg log included
in the CVS log?
TIA
Patrick
--
The cat in the box is both a wave and a particle.
-- Terry Pratchett, introducing quantum physics in _The Authentic Cat_
More information about the Mercurial
mailing list