|
@ -4,10 +4,10 @@ |
|
|
\usepackage{listings} |
|
|
\usepackage{listings} |
|
|
\setbeamercolor{sidebar}{use=structure,bg=red} |
|
|
\setbeamercolor{sidebar}{use=structure,bg=red} |
|
|
|
|
|
|
|
|
\author[@dukeleto]{Jonathan "Duke" Leto\\\small{duke.leto.net\\duke@leto.net\\@dukeleto}} |
|
|
\author[@dukeleto]{Jonathan "Duke" Leto\\\small{@dukeleto\\letolabs.com\\duke@leto.net}} |
|
|
\date{} |
|
|
\date{} |
|
|
\title[Git.init()\hspace{2em}\insertframenumber/ |
|
|
\title[Git.init()\hspace{2em}\insertframenumber/ |
|
|
\inserttotalframenumber]{Clone A Git Together Into Your Town} |
|
|
\inserttotalframenumber]{Learning To Love The DAG For Fun And Profit} |
|
|
\setbeamertemplate{navigation symbols}{} %no nav symbols |
|
|
\setbeamertemplate{navigation symbols}{} %no nav symbols |
|
|
|
|
|
|
|
|
% keynote-ish |
|
|
% keynote-ish |
|
@ -40,150 +40,228 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{ \includegraphics[scale=0.2]{pdxgit} PDX Git Together} |
|
|
\frametitle{ \includegraphics[scale=0.2]{pdxgit} A Bit About Me } |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item PDX Git Together |
|
|
|
|
|
\item Git consulting |
|
|
|
|
|
\item Parrot Virtual Machine |
|
|
|
|
|
\item Google Summer of Code |
|
|
|
|
|
\item ... |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
|
|
|
\indent The monthly user group that doesn't lose your data! \\ |
|
|
} |
|
|
|
|
|
|
|
|
\begin{huge} |
|
|
\frame{ |
|
|
pdxgit.com |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
\end{huge} |
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item A DAG (Directed Acyclic Graph) |
|
|
|
|
|
\item A content tracker |
|
|
|
|
|
\item A diverse community with a common bond |
|
|
|
|
|
\item A collection of implementations |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
\frame{ |
|
|
|
|
|
\frametitle{What *is* Git, exactly?} |
|
|
|
|
|
DAG = Directed Acyclic Graph |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item a "Tree of Arrows" |
|
|
|
|
|
\item You can't be your own Grandpa |
|
|
|
|
|
\item Graph = nodes + vertices |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Infrastructure} |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
|
|
|
A content tracker |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item Originally "an information manager from hell" |
|
|
|
|
|
\item Track changes in content, storing the diffs |
|
|
|
|
|
\item An empty directory has no content |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
\begin{columns} |
|
|
\frame{ |
|
|
\begin{column}{5cm} |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
\includegraphics[scale=0.5]{cat-tube} |
|
|
A diverse community with a common bond |
|
|
\end{column} |
|
|
\begin{center} |
|
|
\begin{column}{5cm} |
|
|
|
|
|
\begin{itemize} |
|
|
\begin{itemize} |
|
|
\item Github Pages |
|
|
\item Started with Linus in kernel-land and then spread quickly |
|
|
\item Twitter Bootstrap |
|
|
\item Now: web app developers, UI designers, scientists, professors... |
|
|
\item Font Awesome |
|
|
|
|
|
\item Google Groups |
|
|
|
|
|
\item Calagator |
|
|
|
|
|
\item Twitter |
|
|
|
|
|
\item LinkedIn |
|
|
|
|
|
\end{itemize} |
|
|
\end{itemize} |
|
|
\end{column} |
|
|
\end{center} |
|
|
\end{columns} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{History} |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
|
|
|
A Collection of Implementations |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item "official" Git 1.x |
|
|
|
|
|
\item JGit - Git 1.x server in Java |
|
|
|
|
|
\item libgit2 - "fresh start" linkable library in C |
|
|
|
|
|
\item js-git - Very alpha implementation in Javascript |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
\begin{itemize} |
|
|
\frame{ |
|
|
\item GSoC Mentor Summit Oct 2010 |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
\item Git Together Developer Conf Oct 2010 |
|
|
Git 1.x |
|
|
\item GSoC Mentor Summit Oct 2011 |
|
|
\begin{center} |
|
|
\item Git Together Developer Conf Oct 2011 |
|
|
\begin{itemize} |
|
|
\item 26. Jan 2012 pdxgit.com |
|
|
\item /bin/sh |
|
|
\item 1. Feb 2012 1st Meeting |
|
|
\item C |
|
|
\item 27. Aug 2012 2nd Meeting (@igalko) |
|
|
\item Perl (git svn, git add -i) |
|
|
\end{itemize} |
|
|
\item Some optional optimized assembly |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{History} |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
|
|
|
JGit |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item Git server written in Java |
|
|
|
|
|
\item Eclipse |
|
|
|
|
|
\item Gerrit Code Review |
|
|
|
|
|
\item various commercial products |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Regular Monthly Meeting at Elemental Technologies |
|
|
\frame{ |
|
|
|
|
|
\frametitle{What *is* Git, exactly?} |
|
|
|
|
|
libgit2.github.com |
|
|
|
|
|
\begin{center} |
|
|
|
|
|
\begin{itemize} |
|
|
|
|
|
\item No dependencies |
|
|
|
|
|
\item ANSI 89 C for max(portability) |
|
|
|
|
|
\item Linkable, re-entrant C library |
|
|
|
|
|
\item Designed for multi-threading |
|
|
|
|
|
\item Funded by: Github + Microsoft |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
\begin{itemize} |
|
|
\frame{ |
|
|
\item 27. March 2013 |
|
|
\frametitle{What *is* Git, exactly?} |
|
|
\item 24. April 2013 |
|
|
github.com/creationix/js-git |
|
|
\item 29. May 2013 |
|
|
\begin{center} |
|
|
\item next $ \to $ 26. June. 2013 |
|
|
\begin{itemize} |
|
|
\end{itemize} |
|
|
\item Git in Pure JavaScript |
|
|
|
|
|
\item Currently only read-only supports |
|
|
|
|
|
\item Funded on bountysource.com |
|
|
|
|
|
\item Large donations from Mozilla + Adobe |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Getting Free Stuff} |
|
|
\frametitle{Git + Perl community similarities} |
|
|
\begin{columns} |
|
|
\begin{center} |
|
|
\begin{column}{5cm} |
|
|
|
|
|
\includegraphics[scale=0.25]{free_tibet} |
|
|
|
|
|
\end{column} |
|
|
|
|
|
\begin{column}{5cm} |
|
|
|
|
|
\begin{itemize} |
|
|
\begin{itemize} |
|
|
\item Venue |
|
|
\item Perl 5 $\sim$ Git 1.x |
|
|
\item Food |
|
|
\item Perl 6 $\sim$ libgit2 |
|
|
\item Schwag |
|
|
|
|
|
\item Publicity |
|
|
|
|
|
\end{itemize} |
|
|
\end{itemize} |
|
|
\end{column} |
|
|
\end{center} |
|
|
\end{columns} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
%\frame{ |
|
|
|
|
|
% \frametitle{} |
|
|
|
|
|
% \begin{center} |
|
|
|
|
|
% \begin{itemize} |
|
|
|
|
|
% \item |
|
|
|
|
|
% \end{itemize} |
|
|
|
|
|
% \end{center} |
|
|
|
|
|
%} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Self-Organizing Communities} |
|
|
\frametitle{Recent Features: 1.8.4} |
|
|
\begin{columns} |
|
|
\begin{huge} |
|
|
\begin{column}{5cm} |
|
|
git clean -i |
|
|
\includegraphics[scale=0.5]{lorenz} |
|
|
\end{huge} |
|
|
\end{column} |
|
|
|
|
|
\begin{column}{5cm} |
|
|
"interactive cleaning" |
|
|
\begin{itemize} |
|
|
} |
|
|
\item Chaos |
|
|
\frame{ |
|
|
\item Meritocracy |
|
|
\frametitle{Useful Features} |
|
|
\item Transparency |
|
|
|
|
|
\end{itemize} |
|
|
\begin{huge} |
|
|
\end{column} |
|
|
git checkout - |
|
|
\end{columns} |
|
|
\end{huge} |
|
|
|
|
|
|
|
|
|
|
|
"checkout the last branch I was on" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Community Guidelines} |
|
|
\frametitle{Useful Features} |
|
|
\begin{columns} |
|
|
|
|
|
\begin{column}{5cm} |
|
|
\begin{huge} |
|
|
\includegraphics[scale=0.25]{lichen} |
|
|
git merge - |
|
|
\end{column} |
|
|
\end{huge} |
|
|
\begin{column}{5cm} |
|
|
|
|
|
\begin{itemize} |
|
|
"merge the last branch I was on" |
|
|
\item Define Publicly |
|
|
|
|
|
\item Modify Publicly |
|
|
|
|
|
\item Enforce Publicly |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{column} |
|
|
|
|
|
\end{columns} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Future} |
|
|
\frametitle{Useful Features} |
|
|
\begin{itemize} |
|
|
|
|
|
\item Rotating leadership |
|
|
git blame -L 20,50 foo.txt \# lines 20-50 |
|
|
\item T-Shirts |
|
|
|
|
|
\item Stickers |
|
|
git blame -L 10,+10 foo.txt \# lines 10-20 |
|
|
\item Focused Hackathons |
|
|
|
|
|
\end{itemize} |
|
|
git blame -L 50,-10 foo.txt \# lines 40-50 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
\frame{ |
|
|
|
|
|
\frametitle{Coming Soon! in 1.8.5} |
|
|
|
|
|
|
|
|
|
|
|
git log HEAD <=> git log @ |
|
|
|
|
|
} |
|
|
|
|
|
\frame{ |
|
|
|
|
|
\frametitle{Coming Soon! in 1.8.5} |
|
|
|
|
|
|
|
|
|
|
|
git -C foo/ status $\sim$ make -C foo/ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Checklist} |
|
|
\frametitle{Extra Credit} |
|
|
|
|
|
\# Read the first Git commit by Linus himself |
|
|
|
|
|
|
|
|
|
|
|
\# Thu Apr 7 15:13:13 2005 |
|
|
|
|
|
|
|
|
\begin{itemize} |
|
|
\$ git clone git://github.com/git/git.git |
|
|
\item Create a Github Org for your Clone |
|
|
|
|
|
\item Fork github.com/pdxgit/pdxgit.github.com |
|
|
\$ git show e83c5163 |
|
|
\item Name your repo NAME.github.io (rules changed) |
|
|
|
|
|
\item Register a domain |
|
|
|
|
|
\item Change CNAME file to be your domain |
|
|
|
|
|
\item Configure DNS $ \to $ Github |
|
|
|
|
|
\item Create a Google Group |
|
|
|
|
|
\item Get a Twitter Account |
|
|
|
|
|
\item Create a LinkedIn Group |
|
|
|
|
|
\item ... |
|
|
|
|
|
\item PROFIT! |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{How do I get involved with PDX Git Together?} |
|
|
\frametitle{How I Can Help You} |
|
|
\begin{itemize} |
|
|
Git It Together |
|
|
\item @pdxgit |
|
|
\begin{center} |
|
|
\item pdxgit.com |
|
|
\begin{itemize} |
|
|
\item github.com/pdxgit |
|
|
\item Educating stakeholders on the value of Git |
|
|
\item pdxgit@googlegroups.com |
|
|
\item On-site Training |
|
|
\item Come to the next meeting June 26th! |
|
|
\item Implementing Git at your organization |
|
|
\end{itemize} |
|
|
\begin{itemize} |
|
|
|
|
|
\item Converting from cvs|svn|? $\rightarrow$ Git |
|
|
|
|
|
\item Continuous Integration |
|
|
|
|
|
\item Deployment from Git |
|
|
|
|
|
\item Custom workflow creation + documentation |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\item letolabs.com |
|
|
|
|
|
\end{itemize} |
|
|
|
|
|
\end{center} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
@ -200,9 +278,10 @@ |
|
|
\end{center} |
|
|
\end{center} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\frame{ |
|
|
\frame{ |
|
|
\frametitle{Mahalo!} |
|
|
\frametitle{Mahalo!} |
|
|
\includegraphics[scale=2.0]{pdxgit} |
|
|
\includegraphics[scale=1.5]{pdxgit} |
|
|
% \includegraphics[height=\paperheight]{pdxgit} |
|
|
% \includegraphics[height=\paperheight]{pdxgit} |
|
|
} |
|
|
} |
|
|
\end{document} |
|
|
\end{document} |
|
|