Differences between revisions 1 and 18 (spanning 17 versions)
Revision 1 as of 2005-08-26 00:58:35
Size: 625
Editor: waste
Comment:
Revision 18 as of 2009-05-19 19:30:55
Size: 2271
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
This page documents some ways to use Mercurial. Because the software is flexible, there's no "right way", but some methods are more scalable than others. This page documents some ways to use Mercurial. Because the software is flexible, there's no "right way", but some methods are more scalable than others. These are a few tips for creating a scaleable workflow.
Line 5: Line 5:
First, [[Merge|merge]] often! This makes merging easier for everyone and you
find out about conflicts (which are often rooted in incompatible
design decisions) earlier.

Second, don't hesitate to use multiple trees locally. Mercurial makes
this fast and light-weight. Typical usage is to have an incoming tree,
an outgoing tree, and a separate tree for each area being worked on.

The incoming tree is best maintained as a pristine copy of the
upstream [[Repository|repository]]. This works as a cache so that you don't have to
[[Pull|pull]] multiple copies over the network. No need to check files out here
as you won't be changing them.

The outgoing tree contains all the changes you intend for merge into
upstream. Publish this tree with {{{hg serve}}} or hgweb.cgi or use
{{{hg push}}}
to [[Push|push]] it to another publicly available repository.

Then, for each feature you work on, create a new tree. [[Commit]] early
and commit often, merge with incoming regularly, and once you're
satisfied with your feature, pull the changes into your outgoing tree.

=== Other ways to collaborate ===

|| '''Name''' || '''Scalability''' || '''Overhead''' || '''Description''' ||
|| CvsLikePractice || poor || low || keep things simple, use a few central repositories ||
|| KernelPractice || good || medium || distributed, semi-hierarchical development ||
|| ControlledPractice || good || medium || hierarchical development ||

=== See also ===
Line 7: Line 37:
 * [[Clone]]
 * MultipleCommitters
Line 8: Line 40:
=== Ways to collaborate === ----
Question: Do you know which is the one HG takes itself?
Line 10: Line 43:
| '''Name''' | '''Scalability''' | '''Overhead''' | '''Description''' |
| CvsLikePractice | poor | low | keep things simple, use a few central repositories |
| KernelPractice | good | medium | distributed, semi-hierarchical development |
 . Answer: Quote from [[ContributingChanges]]: ''"Mercurial development process resembles the one described in KernelPractice"''

Question: What is the way to have ''commits'' go onto a backed-up drive? If my working computer is laptop with a safe `/samba` share?


----
CategoryHowTo

Mercurial working practices

This page documents some ways to use Mercurial. Because the software is flexible, there's no "right way", but some methods are more scalable than others. These are a few tips for creating a scaleable workflow.

First, merge often! This makes merging easier for everyone and you find out about conflicts (which are often rooted in incompatible design decisions) earlier.

Second, don't hesitate to use multiple trees locally. Mercurial makes this fast and light-weight. Typical usage is to have an incoming tree, an outgoing tree, and a separate tree for each area being worked on.

The incoming tree is best maintained as a pristine copy of the upstream repository. This works as a cache so that you don't have to pull multiple copies over the network. No need to check files out here as you won't be changing them.

The outgoing tree contains all the changes you intend for merge into upstream. Publish this tree with hg serve or hgweb.cgi or use hg push to push it to another publicly available repository.

Then, for each feature you work on, create a new tree. Commit early and commit often, merge with incoming regularly, and once you're satisfied with your feature, pull the changes into your outgoing tree.

Other ways to collaborate

Name

Scalability

Overhead

Description

CvsLikePractice

poor

low

keep things simple, use a few central repositories

KernelPractice

good

medium

distributed, semi-hierarchical development

ControlledPractice

good

medium

hierarchical development

See also


Question: Do you know which is the one HG takes itself?

Question: What is the way to have commits go onto a backed-up drive? If my working computer is laptop with a safe /samba share?


CategoryHowTo

WorkingPractices (last edited 2013-08-31 09:38:15 by rcl)