My team uses Mercurial for version control. Our development / version control routine is:
- all been committing to the same branch
- pulling for changes and rebasing our commits locally before pushing back to the hosted repository
This keeps everyone in sync. And the latest code (even unfinished code) is than grabbed from the tip of this branch and put into our test environment.
I've been tasked with creating a management process where we can more cleanly extract "completed features" into the test environment.
I've advocated that we begin to branch->pull-request->merge->close branch
process, but I've been told that branching
is not an option, and that the project director would prefer too be able to manually select commits representing completed features/bug fixes and only include those commits in a deployment to testing.
I am not sure what terminology besides cherry-pick
in GIT / HG that would represent this process, and if it would even be advisable as the commits would no-longer have a proper revision history as it's my understanding that cherry-pick
just pulls changes into the current working tree as uncommitted changes correct?
Best Answer
hg graft
--log option
and without--edit
+madcap editing commit-message. Also the good GUI (TortoiseHG) reveals the history of grafting.Toy-repo with some grafting in it (release+devel branching model)
Glog ouput in console:
(grafted changesets 1,3,6. Only changeset 3 grafted with
--log
added. Note unchanged commit-message for 1 and 6)and this repository after all grafting in TortoiseHG