Open Source Comes to Campus/Resources: Difference between revisions

imported>Paulproteus
(Typo fix)
imported>Paulproteus
(→‎Version Control Demo: VCS explained)
* Whew. That was a lot. Are there any questions? I'm happy to go over and review anything here. (Take questions from the whole group, since probably someone else has the same question as any individual person who asks.)
 
* So that's the very basics of what version control is. In open source projects, probably the most popular version control tool is called ''git''. It's a command line program, and during the laptop setup process you already installed it hopefully. AtA the endlot of thisprojects discussiontracked we'llwith havegit youalso tryuse that outGithub, butwhich Iis wanta towebsite firstfor talkbrowsing aboutthese somegit of the key''repositories''. differencesOne betweenfun git andrepository thethat's wayhosted Wikipediaon doesGithub versionis control.this one,
** (go to https://github.com/bundestag/gesetze)
** which is the law of Germany. It's a good example of a version control project, tracked in git, where not everyone is allowed to edit the repository. But we can click around on their Github site and see all the commits.
** FirstAgain, ofone all,difference here is that Wikipedia is the encyclopedia that anyone can edit. For Wikipedia, that means that as soon as we edit a page, it's automatically live. For open source software projects, or the German legal system, there's often a review process -- you sharecan justuse yourversion control to prepare a diff and share it, and if the maintainer likes it, they ''merge'' it into the main project.
** (Click "Commits" -- https://github.com/bundestag/gesetze/commits/master )
* Another difference is that in git, revisions are called commits. They track not just changes to one file, but the entire state of the project at that time. So when you click "Browse code" at the most recent commit, it takes you to e.g. https://github.com/bundestag/gesetze/tree/ee428461b034de54f1cdcab524d2808486383677 which shows you the entire project.
** Usually you are just interested in the difference between this commit and the previous commit, so Github makes that easy: you just click on this short hexadecimal number, and it shows you a diff.
** One more difference is how the version numbers are encoded. In git, the revision number is a checksum of all the important information about the commit: the name and email address of the person who made the change, plus the contents of the files that are part of the commit, plus a timestamp of when the commit was made, plus a few other bits of data. In some systems, the version numbers are just numbers that increase over time. With git, since every person uses their own computer and can make commits whenever they want, the commit IDs can't collide, so they're computed based on the content.
* So, in a nutshell, those are the key notions behind version control, and git. Now's a great time for questions! After the questions, we'll take some time to work through a training mission to give you hands on experience in git and how projects use it.
 
* (Put on projector: https://openhatch.org/missions/git)
* First of all, Wikipedia is the encyclopedia that anyone can edit. For Wikipedia, that means that as soon as we edit a page, it's automatically live. For open source software projects, there's often a review process -- you share just your diff, and if the maintainer likes it, they ''merge'' it into the main project.
* This is the URL for an interactive teaching tool to show you how open source communities use git, and that helps you get used to using it on your own computer. We'll have teaching assistants walking around hoping to help you.
* So also, because people have to work independently, ... tool runs on their own machine
* If you finish that, work through this second URL:
 
** (put on projector: http://try.github.io/ ) but we really encourage you to work through the training mission first.
We're going to transition t
 
most recent version
 
with a web interface tracking versions of a document.
*
 
 
used in open source that helps track versions of files
 
Go to the Wikipedia page for the host institution, e.g. http://en.wikipedia.org/wiki/Wellesley_College and http://en.wikipedia.org/w/index.php?title=Wellesley_College&action=history. The presenter of this talk will explore the page more thoroughly later.
 
I also suggest, while you are out of the ODP presentation, showing [https://github.com/bundestag/gesetze the German law Git repository] as an example of version control for things other than code.
 
=== Diff and Patch Demo ===
Anonymous user