==Open Source Communication Tools==
The slides I use for this talk can be found [https://github.com/openhatch/open-source-comes-to-campus/blob/master/presentations/open_source_contribution.odp 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')
* [[OSCTC_Resources#Version_Control_Demo | Version Control Demo]]
* Slide 8 (#8 is titled 'Sharing changes: diff and patch')
* [[OSCTC_Resources#Diff_and_Patch_Demo | Diff and Patch Demo]]
* Slides 9-11 (#11 is titled 'Issue Trackers')
* [[OSCTC_Resources#Issue_Tracker_Demo | Issue Tracker Demo]]
* Slide 12 (#12 is titled 'IRC')
* [[OSCTC_Resources#IRC_Demo | 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 [[OSCTC_Resources#Introduction_to_Version_Control | the version control tutorial]] will explore the page more thoroughly later.
=== Diff and Patch Demo ===
This demo uses the files in [https://github.com/openhatch/open-source-comes-to-campus/tree/master/diff_patch_demo this repository].
I have a ToDoList! But maybe it needs editing. First, I'll make a copy to edit:
<pre>cp ToDoList new_ToDoList</pre>
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?
<pre>diff -u ToDoList new_ToDoList</pre>
That's just printed to the command line, though. How do I store it in a file?
<pre>diff -u ToDoList new_ToDoList > changes.diff</pre>
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?
<pre>patch -p0 ToDoList < changes.diff</pre>
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 [http://en.wikipedia.org/wiki/Diff#Edit_script Edit script] (specified with -e) and [http://en.wikipedia.org/wiki/Diff#Context_format 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. [http://www.gnu.org/software/diffutils/manual/html_node/patch-Directories.html#patch-Directories The documentation] has a bit more info.
=== Issue Tracker Demo ===
Pick a few random issue trackers, ideally ones which use different platforms, such as:
* [https://code.google.com/p/openstates/issues/list OpenStates] (google code)
* [https://bugzilla.gnome.org/buglist.cgi?product=bugzilla.gnome.org&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED Bugzilla's tracker for Bugzilla] (in bugzilla! ;) )
* [https://github.com/joyent/node/issues Node] (on Github)
Information to look for:
* tags like "bite size"
=== IRC Demo ===
Log into IRC and join the #openhatch channel.
Forgot to install? Go [https://openhatch.org/wiki/Open_Source_Comes_to_Campus/UMD/Laptop_setup#Goal_.233:_install_an_IRC_client here].
* 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
==Introduction to Version Control==