tiered root development - cern indico
TRANSCRIPT
Summary of toolsGithub Phabricator Atlassian Crucible
Create review -Push branch-Start review through web
CLI tool CLI tool
Commit info Full Commit messagesTotal diff
Total diffPatchset *
Commenting On reviewOn single lines in diff
On reviewOn single lines in diff
On reviewOn multiple lines in diff
Editing files Review is tied to remote branch Review files updated through CLI tool Re-upload diff
Editing comments Yes No Yes
Patch application Web UIGit CLI
Arcanist CLI (+ Git CLI) Patch CLI
Merge strategy Merge branch “Rebase”/patch “Rebase”/patch
User database Github LDAP LDAP
Contributor repository Github fork Local copy Local copy
Review structure Tiered Flat Flat
Number of reviewers 1 n n
Setup and workflowTop-level developersOwn code1. Fork root-mirror2. Add ROOT git as remote3. Develop on feature branches4. Update local ROOT copy5. Rebase with remote and pushPull requests6. Fetch branch from contributor’s
repository7. Now you have a local feature
branch from contributor8. See step 4 & 59. Update pull request status online
Other developers1. Fork “parent” repository2. Develop on feature branches3. Rebase feature branch with
updated master branch4. Make pull-requests to “parent”s
master branch
● git remote add contributor [email protected]:contributor/root.git
// Done first time only
● git fetch contributor // Get updates from contributor
● git fetch root-repo // Update root master branch
● git checkout master // Change branch to master
● git merge root-repo/master // Fast-forward master
● git checkout contributor-dev-branch // Move to dev branch
● git rebase master // Rebase with master
● git checkout master // Move to master
● git merge contributor-dev-branch // Merge in pull request (ff)
○ --no-ff // Make a merge commit
● git push root-repo master // Push master branch to
ROOT git
Graph view (fast-forward)
1
2
3
4
1
2 3
4master
master
contributor/dev
dev
1
2
3
4
master
rebase merge (ff)