Talk:Gerrit/Tutorial/LQT Archive 1

Welcome to the Git Tutorial document!
Please offer your feedback, to help us improve both the tutorial and this document! The outline, as it stands today, may change a little. But, it is most of what the tutorial will cover in Berlin. Keep in mind that this document is a work-in-progress and will mature along with the Git/Gerrit implementation.

Collaboration section
I know one of the main complaints of Git/Workflow is that it's entirely too long and covers stuff well beyond the basic use case. Looking at the Collaboration section, I'm thinking we might be in danger of repeating ourselves. Specifically, I'm not sure if Project Ownership or 20% time are good topics to cover here. ^demon (talk) 15:57, 20 May 2012 (UTC)


 * Good points. Thanks,^demon. What do the rest of you think? Should we skinny down Workflow for the tutorial? I'll remove the 20% time topic. Danielle Benoit (talk) 19:46, 21 May 2012 (UTC)

Essential topics for a 1-hour tutorial
Here's my proposal for essential topics for a 1-hour tutorial: I already did this one with a single programmer and it took about forty minutes. With a group it will probably take more. --Amir E. Aharoni (talk) 17:46, 25 May 2012 (UTC)
 * What is version control? :A way to store every version of every source code file, so that there would be a way to read every previous version and to see what changes were made and by whom and to manage releases. Comparable to versions of Wikipedia articles, but more complex - with branches, merges and other fun stuff.
 * What is Git? :A distributed version control system. Distributed means that technically there is no central repository ("repo"), that every repository is independent, and everybody can pull changes from everybody else. In practice, the Wikimedia repository is the repository used for releases.
 * What is Gerrit? :A web-based system for checking every change to the central repository. It's possible to see the diff, to pull the change for testing at your own repo, to comment on the whole change and on separate lines, to upload an amended version of the change, and to merge it to the master repo. Practically everybody can send a change for review in Gerrit, but only some people have the permission to write to the master repo.
 * How to install Git :Linux, Mac, Windows.
 * How to install git review.
 * How to create and upload SSH keys. :It's important and frequently neglected, because everybody does it ones and forgets it.
 * How to clone the core repo.
 * How to clone extensions.
 * How to pull updates.
 * How to submit a change: Create a branch, edit files, commit (once per branch!), check your commit (git diff --cached, git show HEAD), git review.
 * How to amend a change: mention rebase, fetch. Briefly mention the other stuff that everybody hates :)
 * How to review.