We are in the process of converting from CVS to Mercurial hg.
Our infrastructure is Windows 2003/IIS6
Here's what I have done so far:
Installed Mercurial on my machine, on the development server and on the staging server.
For development in the past we always shared 1 branch, not ideal but merging was such a pain that we never bothered and dealt with it.
Now if I understand correctly, we should be doing this:
Local:
Urgent bugfix required, using the affecting the SAME files as our feature
DEV
Staging (The QA needs to signoff on that important bugfix before testing feature1
Does this way make sense? Am I complicating things and will it bite me in the ass later?
Hg is the chemical symbol for Mercury, element # 80 in the periodic table: The symbol comes from Hydragyrum , the name for the substance using Greek roots, meaning (roughly) "silver water" (another name for Mercury was quicksilver).
Pull changes from the Mercurial upstream (Pull)From the main menu, choose Hg | Mercurial | Pull. Specify the required URL address of the source remote repository.
Use the command hg update to switch to an existing branch. Use hg commit --close-branch to mark this branch head as closed.
It looks like you've got the concepts down great, but you've got some oddities and some questions in there, I'll hit them as a list below:
hg parents
returns, which is always whatever you last hg update
ed to.hg push --rev bugfix1 -f
won't require a -f
in very new (1.5+) versions of mercurial. Historically the warning "you're creating a new head" usually meant you forgot to merge, but now if the new head is a new named branch the warning is suppressed.Remember, merging is coding too -- the person doing the merge is making choices about what should and shouldn't be. The QA people might be capable of it, but it's the developer's job. Also, why do it twice? The usual handoff for this is something like "QA, pull revision 897a9d9f9a7 and test please -- the developers". If you want to get fancy you can have a tag like 'readyforQA' that the developers move along the 'default' branch as they go (in this example they'd hg tag
after their steps 3 and 5 and let QA know there's new stuff to pull.
The one piece of advice I'd give you is don't try to over-engineer the process. DVCSs lead to a sort-of haphazard way of working, that's a little scary at first, but tends to work out. YOu'll find sub-teams and pairs of folks have clones you never knew about and in the end so long as you have a few firm rules like "nothing goes to production without first passing through QA" the rest sort of works itself out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With