yvi: Rodney Mckay, text: "bad day" (Atlantis - Bad Day)
yvi ([personal profile] yvi) wrote in [site community profile] dw_dev2011-02-20 12:21 pm
Entry tags:

Mercurial

I have been trying to actually use Mercurial for my dev work these past few days, and I still don't quite get it.

I have read http://wiki.dwscoalition.org/notes/Dev_Version_Control , so I can now make a new changeset, then do my changes and sync with the live code, but a few things still escape me.

Do I need to use hg qcommit at some point?

How do I unapply all the patches and then sync with the DW repository without Mercurial applying all my patches again?

Do I need to use hg qfinish?

Or, if anyone just wants to sketch out how they work with Mercurial in their dev environment, that would be great.
exor674: Computer Science is my girlfriend (Default)

[personal profile] exor674 2011-02-20 12:03 pm (UTC)(link)
hg qcommit and hg qfinish are only for adding the patch to your local tree, and probably don't want to do them.

For me:

$ hg qnew Bug####
( I do set a guard on the patch, I can explain guards later if you want! )
COED!
$ hg add <any files added>
$ hg rm <any files deleted>
$ hg qrefresh
go back to "COED!" till everything works

$ hg export qtip > ~/the.patch
( then I upload the.patch to zilla! )

To update:
( after making sure I've done a qrefresh )
$ hg qpop -a
$ cv -u
( cv is my cvsreport alias )
$ hg qpush -a
( this will push everything, you can do 'hg qpush Bug####' if you just want that )

Once it's committed:
( insert first 2 steps of updating here )
$ hg qrm Bug####

afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)

[personal profile] afuna 2011-02-20 03:36 pm (UTC)(link)
You can try:

# pop all the patches
hg qpop -a

# set up a guard of a keyword on the patch, so that they only apply
# when you select that keyword
hg qguard patch-one +keyword1
hg qguard patch-two +keyword2

# push all unguarded patches -- that means patch-three
hg qpush



To be able t opush patch-one back onto the queue, you can try: hg qselect keyword1 (look up qguard and qselect for more info but that should be enough to get you started!)
ninetydegrees: Art: self-portrait (Default)

[personal profile] ninetydegrees 2011-02-20 10:22 pm (UTC)(link)
If you're really done with your patches, you can take them out of the queue but keep the files with hg qpop and hg qdel -k then resync of course with dws and dwdb. Or do a simple hg qdel but you'll lose the patch file. I save all my patches on my computer or a dedicated folder on my DH and can easily re-import them with qimport, though.