I am the blog of Hal Fire, and I bring you…

… interesting tidbits of release engineering.

Changes to Developer workflow

[Refer to the main page for additional context.]

With all the changes to support git, how will that affect a developer’s workflow? (The committer’s workflow will be covered in a future post.)

The idea is “not much at all”, and this post will try to define “not much”.

Remember: all existing ways of working with hg will continue to work! These are just going to be some additional options for folks who prefer to use github & bitbucket.

Introduction

To start things off, here are the simplified workflows that describe how things currently work with the Mercurial repositories on hg.m.o and following commit policy.

This should match today’s workflow for devlopment (not commit):

Developer Action Steps Involved Pseudo Commands
First time checkout    
get copy on PC hg clone hg.m.o PC
tweak for 1 step push to try add try as pushable path
Work Cycle    
local work [1] hg commit
push to try [1] hg push magic_try_path
Review Process    
create patch attach patch to bug
Commit Process    
nag committer  

Changes for Bitbucket

As bitbucket uses mercurial as it’s primary DVCS, you might expect there to be not too many changes. That’s correct - there is just some additional steps on bitbucket so other users can see your work.

The changes from hg.m.o are italicized.

Developer Action Steps Involved Pseudo Commands
First time checkout    
  get personal copy fork on bitbucket
get copy on PC hg clone bitbucket PC
tweak for 1 step push to try add try as pushable path
Work Cycle    
local work [1] hg commit
push to try [1] hg push magic_try_path
Review Process    
create patch attach patch to bug OR hg push bitbucket and bitbucket pull request
Commit Process    
nag committer  

Changes for Github

For github, there are a few additional steps that will be supported by scripts. As above, the differences from hg.m.o are italicized.

Developer Action Steps Involved Pseudo Commands
First time checkout    
get personal copy github fork
get copy on PC git clone github PC
tweak for 1 step push to try run script to setup hg repo & git post commit hooks & refs [2]
Work Cycle    
local work [1] git commit
push to try [1] git push magic_try_remote
Review Process    
create patch attach patch to bug OR git push github and github pull request
Commit Process    
nag committer  

Notes

[1](1, 2, 3, 4, 5, 6) these actions affect the local repository only and may actually be ‘mq’ operations for hg and ‘developer branch’ operations for git. The workflow for commit to the master respository will be in a following post.
[2]a number of existing developers have already developed scripts to support this. These will be unified and documented as part of the roll out