Changes

Jump to: navigation, search

Using Mercurial locally with CVS

1,227 bytes added, 21:52, 31 July 2007
no edit summary
You will manually pull updates from CVS, and you won't get any changeset information (that is, everyone's commits since the last time you updated from CVS will come in as one big blob), but your own commits will be kept as separate changesets.
 
Note: the term "CVS repository" here refers to a mercurial repository that you keep your CVS checkout in; it never refers to an actual CVS repository, like the one that lives on cvs.mozilla.org.
== Prerequisites ==
% cvs commit -m "b=123456, Add mystery message to README.txt, r=sparky" README.txt
 
=== Updating your tree(s) from CVS ===
 
Because other people also work on Mozilla, you'll want to update from CVS often. First, we need to pull from CVS and add a new commit to the CVS repository:
 
% cd cvssrc/mozilla
% MOZ_CO_PROJECT=browser make -f client.mk pull_all
% hg addremove
% hg commit -m "cvs sync"
 
Then, you need to update your local clone(s):
 
% cd mozilla
% hg pull ../cvssrc/mozilla
 
Just like committing to CVS, a pull does not update your working directory. If you haven't made any changesets since the last time you did a pull, you can bring yourself up to date by just:
 
% hg update
 
However, if <tt>hg pull</tt> said that it added 1 (or more) heads, then you need to work out a merge strategy. See below for strategies.
 
Note that if you're using <tt>mq</tt> to manage all your patches in your cloned repo, you can make sure that you always have the simplest situation by removing all patches from the stack using <tt>hg qpop -a</tt> before pulling from the CVS repo.
 
== Dealing with conflicts ==
Confirm, emeritus
792
edits

Navigation menu