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 - | 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 | 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> \ | 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 | This should provide a completely clean graft with a single changeset |
Labels: