User Tools

Site Tools


releases:3.2.0:developersguide:gitmigration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

releases:3.2.0:developersguide:gitmigration [2014/11/11 08:52] (current)
Line 1: Line 1:
 +====== Git Migration ======
 +
 +This page contains notes on the git migration.
 +
 +====== Gerrit ======
 +
 +We would like to have Gerrit.
 +
 +Gerrit is a code review system that is more efficient and powerful than our current one. I (Ben) have an experimental install on
 +my own server, which is bad (because external, not it-maintained,​ etc.) but I'm so eager to try to work with it that I did it anyway - it's not critical, we can keep working without it - and we can switch to an official install in the future.
 +
 +===== Short Gerrit how-to =====
 +
 +The web interface is: http://​atlantis.8hz.com:​8080 - you can create an account using any openid provider, e.g. your google account.
 +
 +The three basic things are: creating a patchset, reviewing it, and submitting (committing) it.
 +
 +==== Creating a patchset ====
 +
 +This is done from git. First add a '​remote'​ git repo to point to the Gerrit instance:
 +<​code>​
 +$ git remote add Gerrit ssh://[your username]@atlantis.8hz.com:​29418/​minix
 +</​code>​
 +
 +Make your change, presumably on the master branch. Commit it locally. Then push it to Gerrit to the special '​refs/​for/​branchname'​ ref; this tells Gerrit to create a new patchset from your push, on the specified branch.
 +
 +<​code>​
 +$ git push Gerrit HEAD:​refs/​for/​master
 +Counting objects: 5, done.
 +Compressing objects: 100% (2/2), done.
 +Writing objects: 100% (3/3), 253 bytes, done.
 +Total 3 (delta 1), reused 1 (delta 0)
 +remote:
 +remote: New Changes:
 +remote: ​  ​http://​atlantis.8hz.com:​8080/​4
 +remote:
 +To ssh://​beng@atlantis.8hz.com:​29418/​minix
 +  * [new branch] ​     HEAD -> refs/​for/​master
 +</​code>​
 +You can see Gerrit has accepted the change and told you the webinterface for the item.
 +
 +==== Reviewing ====
 +
 +Reviewing the patch means going to the Gerrit URL for it. It provides countless options to retrieve the change using a git instance, viewing it on the site, adding comments in-line, and whatnot. The major point of significance is how to actually commit the change; in Gerrit parlance this is '​Submitting'​.
 +
 +The server can't access the git repo directly but it can pull from and push to it.
 +
 +====== Todo ======
 +
 +  * Fix git stash
 +  * Run more of git testsuite
 +  * Get git mirrors going
 +  * Fix release script to build from git instead of svn.
 +  * [[.:​trackingcurrent|Tracking Current]] has to be updated; the community has to be notified
 +
 +===== Gerrit =====
 +I want [[http://​code.google.com/​p/​gerrit/​|Gerrit]] to replace the commits mailing list; it's a more convenient workflow (if there are comments, multiple revisions, etc.) and also allows outsiders to contribute changes without being a significant amount of work for the committer to integrate the change. Also it allows the approval committee to interact with the contributor,​ instead of a single committer being between the hammer and the anvil. Also it pushes the burden of merging onto the contributor,​ so the most experienced developers (typically necessary for integration) don't become patch monkeys.
 +
 +There is [[https://​review.source.android.com/​|a live demo]] online.
  
releases/3.2.0/developersguide/gitmigration.txt · Last modified: 2014/11/11 08:52 (external edit)