Differences between revisions 37 and 38
Revision 37 as of 2013-08-28 19:50:33
Size: 2656
Editor: AugieFackler
Comment:
Revision 38 as of 2013-08-29 01:45:17
Size: 630
Editor: LorenzaJE
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= 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|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.

{{{#!dot
digraph G {
  upstream;
  subgraph {
    incoming; outgoing;
    rank=same
  }
  working;
  upstream -> incoming [label="pull"];
  incoming -> working [label="pull"];
  working -> working [label="update/merge"];
  working -> outgoing [label="push"];
  outgoing -> upstream [label="push or publish"];
}
}}}

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 [[PublishingRepositories|hgweb]] 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 ||

[[ContributingChanges|Mercurial development practices]] resemble those described in KernelPractice.

== Backup practices ==

To maintain a backup of commits, you can clone a repository and push your changes to it periodically.

== See also ==

 * How to write good [[ChangeSetComments|changeset comments]]
 * The [[RepositoryNaming|naming of repositories]] is important, because you'll probably have lots of them
 * Dealing with contributions from [[MultipleCommitters|multiple committers]]
 * More [[Workflows]] with usecase and requirements

----
CategoryHowTo
Margie is what you can get in touch with her and she completely digs that identify.<<BR>>
Her partner doesn't like it the way she does but what she seriously likes doing is fish trying to keep and she would in no way give it up. Her household is now in Wyoming but she requires to shift because of her family.http://thumb10.shutterstock.com/photos/thumb_large/527452/111792323.jpg [[http://en.Wikipedia.org/wiki/Audit|Auditing]] is what she does and she will not adjust it at any time shortly.<<BR>>
Her partner and her sustain a web page. You might want to look at it out: http://www.telenglish.net/zbxete/?document_srl=59415

Margie is what you can get in touch with her and she completely digs that identify.
Her partner doesn't like it the way she does but what she seriously likes doing is fish trying to keep and she would in no way give it up. Her household is now in Wyoming but she requires to shift because of her family.http://thumb10.shutterstock.com/photos/thumb_large/527452/111792323.jpg Auditing is what she does and she will not adjust it at any time shortly.
Her partner and her sustain a web page. You might want to look at it out: http://www.telenglish.net/zbxete/?document_srl=59415

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