Mercurial usage

Na'Tosha Bard natosha at unity3d.com
Sat Jun 11 06:16:16 CDT 2011


On Sat, Jun 11, 2011 at 12:17 PM, norricorp <john at norricorp.f9.co.uk> wrote:

> Hi,
> I am very new to mercurial and have spent the last few days reading through
> the Oreilly book. I do have lots of experience with clearcase and
> subversion.
> My understanding is there can be a central repository on a server which
> developers clone and then develop within their own repository on their own
> PCs. The commits to their own repositories are pushed or pulled up to the
> central repository. And from there the working directory associated with
> the
> central depository is updated and merged, compiled, tested and then
> commited.
> Is this roughly right?
>

Not exactly.  It's more common for there to be a central repository that
every developer pulls changes from (thereby getting changes from others) and
pushes changes to (thereby sharing his changes with others).  Each time a
push/pull occurs, the working directory of the developers machines are
updated.  Normally it's a responsibility of the individual developer to make
sure incorporating changes from upstream (e.g, pulling changes) doesn't
cause problems with his own changes before pushing them back.  It is the
developers who make changes that synchronize their working copy with
upstream (the central repository) by pulling, merges the changes together,
(hopefully) tests them, and pushes them back to the central repository.
 Usually central repositories usually don't even have a populated working
directory and are only altered by pushing changes from clones.

It's also quite common, just as with SVN and other VCS solutions, to have
some sort of continuous integration system setup that constantly clones the
central repository and does build / test verification.

Does this mean that there is a full time developer / builder who merges
> changes into the central repository and it is not done by the developer who
> made the changes?
>

I think this is not so common, but it can be done this way.  I think it is
generally referred to as the "Gatekeeper Workflow".


> I guess in the above situation, pulling is better than pushing because can
> then merge changes in small chunks rather than several commits.
> I am sure there are as many ways of using Mercurial as there are people on
> the planet but that some are more common.
>

You can also read a bit about some workflows (albeit more complicated than
you described above) here: http://mercurial.selenic.com/wiki/Workflows

-- 
*Na'Tosha Bard*
Build & Infrastructure Developer | Unity Technologies

*E-Mail:* natosha at unity3d.com
*Skype:* natosha.bard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial/attachments/20110611/c02a505a/attachment.htm>


More information about the Mercurial mailing list