Skip to end of metadata
Go to start of metadata

For the initial dev cycles, here are the fundamental aspects to how the WIPing post and canonical will be managed:

  • all changes will be recommitted from per-issue forks into the WIP trunk
  • for the time being, we will not use any form of branching; changes will be committed in series to the WIP, exported, recommitted as necessary, and then grafted back onto the canonical trunk
  • ordering between these changes needs to be minded closely by those responsible for final review and canonical commit; because ordering of changes is significant but not strictly preserved, it is likely a separate merge repo will be needed to managing grafting from the WIP back to the canonical

 

The process for preparing the WIP is as follows:

Create a clone of the canonical
cd illumos-userland && hg fetch && cd -
hg clone illumos-userland illumos-userland-wip

Refresh a clean local canonical, then clone that into the WIP repo

Enter the top of the workspace
cd illumos-userland-<issue>
 

Run status checks

 

hg status -mard

 

hg outgoing ssh://hg@bitbucket.org/<user>/illumos-userland-<issue>
checks for uncommitted changes
check for changes not yet pushed to bitbucket

Check heads, log message

hg heads
Confirm that this is the expected message and that you know the user responsible

Fetch from WIP repo

 

hg fetch ../illumos-userland-wip
Merge in changes from the WIP repo so that the only remaining differences are those that need to be committed back
Check list of changes first by file, then by content, reverting as necessary
hg diff -r <tip - 1> | grep ^diff
hg diff -r <tip - 1> <surprise file>
hg revert -r <tip -1> <surprise file>
Make sure other changes that may have leaked in with a bulk commit are reverted if they are not strictly necessary (e.g. for another component or customizing the workspace for something irrelevant to the change that needs to be taken back).
recommit
hg recommit -u <copy from log> -m <copy from log> \
-p ../illumos-userland-wip
Reduce the pending net effective change to the WIP to a single changeset with the appropriate log components.
export and review
hg export -g -o ~/illumos-userland.<issue number> tip
export the changes to a single git diff, eyeball the changes to confirm that they are as expected (remember that export will append to rather than clobber an existing file)
import into the WIP
cd ../illumos-userland-wip
hg import ~/illumos-userland.<issue number>
This should provide a completely clean graft with a single changeset
Labels: