Open Source Comes to Campus/Curriculum/Tools/Shauna old version

Open Source Communication Tools
The slides I use for this talk can be found here. These are modified from a version graciously provided by Jessica McKellar. There are substantial notes in the ODP file which can be viewed by going to the "Notes" tab.


 * Slides 1-7 (#7 is titled 'Version Control')
 * Version Control Demo
 * Slide 8 (#8 is titled 'Sharing changes: diff and patch')
 * Diff and Patch Demo
 * Slides 9-11 (#11 is titled 'Issue Trackers')
 * Issue Tracker Demo
 * Slide 12 (#12 is titled 'IRC')
 * IRC Demo
 * Slides 13-19

Version Control Demo
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 the version control tutorial will explore the page more thoroughly later.

Diff and Patch Demo
This demo uses the files in this repository.

I have a ToDoList! But maybe it needs editing. First, I'll make a copy to edit:

cp ToDoList new_ToDoList

Then I'll open it up and make changes to it. (Side note: make sure to explain which editor you're using and give options for those following along - emacs, vim, nano, or a GUI.)

How do I view the differences between the two?

diff -u ToDoList new_ToDoList

That's just printed to the command line, though. How do I store it in a file?

diff -u ToDoList new_ToDoList > changes.diff

I open up the file and see it contains the same stuff as was printed out before. Okay, now how do I apply these changes to the original list?

patch -p0 ToDoList < changes.diff

Note that the argument given to the patch is the file I want to modify, not the file that already has the changes.

People often ask - what does the argument "-u" given to diff mean, or the argument -p0 given to "patch"?

Well, -u tells diff to output in unified diff format. Two other formats are Edit script (specified with -e) and Context format (specified with -c).

-p[x] is an argument which allows the user to specify how much of the given file's path needs to be matched. -p0 gives the entire file name unmodified. The documentation has a bit more info.

Issue Tracker Demo
Pick a few random issue trackers, ideally ones which use different platforms, such as:
 * OpenStates (google code)
 * Bugzilla's tracker for Bugzilla (in bugzilla! ;) )
 * Node (on Github)

Information to look for:
 * status
 * priority
 * owner/assigned
 * component/product
 * summary/descriptor
 * tags like "bite size"

IRC Demo
Log into IRC and join the #openhatch channel.

Forgot to install? Go here.

Show:
 * how your name is highlighted if someone uses it
 * how to do /me
 * how to send messages to individual users
 * different servers vs different channels (#openhatch on other servers might be empty)
 * how to make a new channel, if asked