diff --git a/common/images/centralisedvcs.png b/common/images/centralisedvcs.png new file mode 100644 index 0000000..0124887 Binary files /dev/null and b/common/images/centralisedvcs.png differ diff --git a/common/images/distvcs.png b/common/images/distvcs.png new file mode 100644 index 0000000..1adcda9 Binary files /dev/null and b/common/images/distvcs.png differ diff --git a/common/images/dvcs.png b/common/images/dvcs.png new file mode 100644 index 0000000..7c89e8b Binary files /dev/null and b/common/images/dvcs.png differ diff --git a/common/images/localvcs.png b/common/images/localvcs.png new file mode 100644 index 0000000..9175ed6 Binary files /dev/null and b/common/images/localvcs.png differ diff --git a/common/modules/vcs-history.org b/common/modules/vcs-history.org new file mode 100644 index 0000000..0221435 --- /dev/null +++ b/common/modules/vcs-history.org @@ -0,0 +1,90 @@ +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) +#+INCLUDE: "prelude.org" :minlevel 1 + +* VCS history + :PROPERTIES: + :CUSTOM_ID: main + :END: +** Evolution of software development + :PROPERTIES: + :CUSTOM_ID: timeline + :END: +*** Version control system (VCS) + - records changes made to a (set of) /source code file/ (s) + - allows to operate on versions: diff/merge/fork/recover etc. + - *essential* tool for software development + #+BEAMER: \pause +*** Three decades of evolution +#+LATEX: \centering +#+LATEX: \includegraphics[width=.8\linewidth]{VCS_history_timeline.png} + +** In a picture \hfill (from https://github.com/progit/progit2) + :PROPERTIES: + :CUSTOM_ID: vcs-explained + :END: + #+BEGIN_EXPORT latex + \centering\forcebeamerstart + \only<1>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{localvcs}}\mbox{}\\[2em] + \texttt{co -r1.2 file.c} + } + \only<2>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{centralisedvcs}}\mbox{}\\[2em] + \texttt{cvs co -r Rel-1A ProgABC} + } + \only<3>{\colorbox{white}{\includegraphics[width=\extblockscale{.5\linewidth}]{distvcs}}\mbox{}\\[2em] + \texttt{git checkout df3b1b08f756569eff0919e37d8af1f403515b31} + } + \forcebeamerend + #+END_EXPORT +** Foundations of modern DVCS + :PROPERTIES: + :CUSTOM_ID: dvcs-to-merkle + :END: +**** Requirements for the D in DVCS + - *intrinsic* unique identifiers... \hfill (here: /cryptographic signature/, aka "hash") + - ... that work for *tree structures* (software directories) + #+BEAMER: \pause + # R. C. Merkle, A digital signature based on a conventional encryption + # function, Crypto '87 +**** Merkle tree to the rescue (R. C. Merkle, Crypto 1979) :B_picblock: + :PROPERTIES: + :BEAMER_opt: pic=merkle, leftpic=true, width=.7\linewidth + :BEAMER_env: picblock + :BEAMER_act: + :END: + Combination of + - tree + - hash function +** A massive adoption + :PROPERTIES: + :CUSTOM_ID: adoption + :END: +*** Stack Overflow \hfill \href{https://insights.stackoverflow.com/survey/2018}{[Survey 2018]} + :PROPERTIES: + :BEAMER_col: 0.47 + :BEAMER_env: block + :END: + #+latex: \centering + #+ATTR_LATEX: :width \extblockscale{1.4\linewidth} + file:stackoverflow-survey-VCS.png + + #+BEAMER: \pause +*** In numbers + :PROPERTIES: + :BEAMER_col: 0.45 + :BEAMER_env: block + :END: + GitHub \hfill \href{https://octoverse.github.com/2017/}{[Octoverse 2017]} \href{https://github.blog/2018-11-08-100m-repos/}{[Blog 2018]} + - *100.000.000+* repositories + - *40.000.000+* developers worldwide + + Bitbucket \hfill \href{https://bitbucket.org/blog/celebrating-10-million-bitbucket-cloud-registered-users}{[Blog 2019]} + - *28.000.000+* repositories + - *10.000.000+* developers worldwide + + GitLab \hfill \href{https://about.gitlab.com/blog/2019/06/06/1-mil-merge-requests/}{[Blog 2019]} + - *1.000.000* MRs March 19' + #+BEAMER: \pause + +*** + \hfill Let's use it! +