From ef8e2e2bd0018ea9f55d21338ec6d30265a8a36a Mon Sep 17 00:00:00 2001 From: Jenny Bryan Date: Tue, 8 Jan 2019 13:40:04 -0800 Subject: [PATCH] Starting porting content fro "Excuse Me" --- _bookdown.yml | 2 +- book.bib | 194 ++++++++++++++++++++++++++++++++- git-basics.Rmd | 46 ++++++++ git-intro.Rmd | 16 ++- img/commit-diff-sha-tag.png | Bin 0 -> 45500 bytes notes-bookdown-cheat-sheet.Rmd | 2 +- 6 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 git-basics.Rmd create mode 100644 img/commit-diff-sha-tag.png diff --git a/_bookdown.yml b/_bookdown.yml index ed010f0e..dc6c3902 100644 --- a/_bookdown.yml +++ b/_bookdown.yml @@ -35,7 +35,7 @@ rmd_files: [ "usage-r-script-and-github.Rmd", "git-intro.Rmd", - ## TODO: commit, diff + "git-basics.Rmd", "git-commands.Rmd", "git-branches.Rmd", "git-remotes.Rmd", diff --git a/book.bib b/book.bib index f52f3d22..ac0d02df 100644 --- a/book.bib +++ b/book.bib @@ -1,10 +1,194 @@ -@Book{xie2015, - title = {Dynamic Documents with {R} and knitr}, +@Book{knitr-book, + title = {Dynamic Documents with {R} and knitr}, + author = {Yihui Xie}, + publisher = {Chapman and Hall/CRC}, + address = {Boca Raton, Florida}, + year = {2015}, + edition = {2nd}, + note = {ISBN 978-1498716963}, + url = {http://yihui.name/knitr/}, + } + +@Article{Ram2013, +author="Ram, Karthik", +title="Git can facilitate greater reproducibility and increased transparency in science", +journal="Source Code for Biology and Medicine", +year="2013", +volume="8", +number="1", +pages="7", +abstract="Reproducibility is the hallmark of good science. Maintaining a high degree of transparency in scientific reporting is essential not just for gaining trust and credibility within the scientific community but also for facilitating the development of new ideas. Sharing data and computer code associated with publications is becoming increasingly common, motivated partly in response to data deposition requirements from journals and mandates from funders. Despite this increase in transparency, it is still difficult to reproduce or build upon the findings of most scientific publications without access to a more complete workflow.", +issn="1751-0473", +doi="10.1186/1751-0473-8-7", +url="http://dx.doi.org/10.1186/1751-0473-8-7" +} + +@article{good-enough, + author = {Greg Wilson and + Jennifer Bryan and + Karen Cranston and + Justin Kitzes and + Lex Nederbragt and + Tracy K. Teal}, + title = {Good Enough Practices in Scientific Computing}, + journal = {CoRR}, + volume = {abs/1609.00037}, + year = {2016}, + url = {http://arxiv.org/abs/1609.00037}, + timestamp = {Mon, 03 Oct 2016 17:51:10 +0200}, + biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/WilsonBCKNT16}, + bibsource = {dblp computer science bibliography, http://dblp.org} +} + +@misc{git-for-humans, + Author = "Alice Bartlett", + Title = "Git for Humans", + Institution = "Financial Times, London", + Howpublished = "Talk at UX Brighton", + Year = "2016", + Url = "https://speakerdeck.com/alicebartlett/git-for-humans", + Abstract = "This talk will explore a tool that most developers couldn't live without. We'll look at the way it helps developers tell the story of their project, and how non-technical people can get in on the action too." +} + +@Manual{rmd-pkg, + title = {rmarkdown: Dynamic Documents for R}, + author = {JJ Allaire and Joe Cheng and Yihui Xie and Jonathan McPherson and Winston Chang and Jeff Allen and Hadley Wickham and Aron Atkins and Rob Hyndman and Ruben Arslan}, + year = {2017}, + note = {R package version 1.5.9000}, + url = {http://rmarkdown.rstudio.com}, + } + +@Manual{knitr-pkg, + title = {knitr: A General-Purpose Package for Dynamic Report + Generation in R}, + author = {Yihui Xie}, + year = {2017}, + note = {R package version 1.16}, + url = {http://yihui.name/knitr/}, + } + + +@article{ten-simple-rules-git, + author = {Yasset Perez-Riverol and + Laurent Gatto and + Rui Wang and + Timo Sachsenberg and + Julian Uszkoreit and + Felipe da Veiga Leprevost and + Christian Fufezan and + Tobias Ternent and + Stephen J. Eglen and + Daniel S. Katz and + Tom J. Pollard and + Alexander Konovalov and + Robert M. Flight and + Kai Blin and + Juan Antonio VizcaĆ­no}, + journal = {PLOS Computational Biology}, + publisher = {Public Library of Science}, + title = {Ten Simple Rules for Taking Advantage of Git and GitHub}, + year = {2016}, + month = {07}, + volume = {12}, + url = {https://doi.org/10.1371/journal.pcbi.1004947}, + pages = {1-11}, + abstract = {}, + number = {7}, + doi = {10.1371/journal.pcbi.1004947} +} + +@Manual{bookdown-pkg, + title = {bookdown: Authoring Books and Technical Documents with R Markdown}, + author = {Yihui Xie}, + year = {2016}, + note = {R package version 0.3}, + url = {https://github.com/rstudio/bookdown}, +} + +@Book{bookdown-book, + title = {bookdown: Authoring Books and Technical Documents with {R} Markdown}, author = {Yihui Xie}, publisher = {Chapman and Hall/CRC}, address = {Boca Raton, Florida}, + year = {2017}, + note = {ISBN 978-1138700109}, + url = {https://github.com/rstudio/bookdown}, +} + +@manual{git, + title = {Git}, + url = {https://git-scm.com} +} + +@manual{github, + title = {GitHub}, + url = {https://github.com} +} + +@manual{rstudio, + title = {RStudio Integrated Desktop Environment}, + url = {https://www.rstudio.com/products/rstudio} +} + +@manual{r, + title = {R: A Language and Environment for Statistical Computing}, + author = {{R Core Team}}, + organization = {R Foundation for Statistical Computing}, + address = {Vienna, Austria}, + year = {2017}, + url = {https://www.R-project.org} +} + +@misc{donoho, + author = {David Donoho}, + title = {50 years of Data Science}, + institution = {Stanford University}, + howpublished = {Version 1.00}, + month = {September}, year = {2015}, - edition = {2nd}, - note = {ISBN 978-1498716963}, - url = {http://yihui.name/knitr/}, + url = {http://courses.csail.mit.edu/18.337/2015/docs/50YearsDataScience.pdf} +} + +@article{cetinkaya-rundel-dss-2017, + title = {Infrastructure and tools for teaching computing throughout the statistical curriculum}, + author = {Cetinkaya-Rundel, Mine and Rundel, Colin W}, + year = 2017, + month = aug, + keywords = {R markdown, git / github, reproducibility, data science, workflow, R language, Continuous integration, RStudio, teaching, cirriculum}, + abstract = { + Modern statistics is fundamentally a computational discipline, but too often this fact is not reflected in our statistics curricula. With the rise of big data and data science it has become increasingly clear that students both want, expect, and need explicit training in this area of the discipline. Additionally, recent curricular guidelines clearly state that working with data requires extensive computing skills and that statistics students should be fluent in accessing, manipulating, analyzing, and modeling with professional statistical analysis software. Much has been written in the statistics education literature about pedagogical tools and approaches to provide a practical computational foundation for students. This article discusses the computational infrastructure and toolkit choices to allow for these pedagogical innovations while minimizing frustration and improving adoption for both our students and instructors. + }, + volume = 5, + pages = {e3181v1}, + journal = {PeerJ Preprints}, + issn = {2167-9843}, + url = {https://doi.org/10.7287/peerj.preprints.3181v1}, + doi = {10.7287/peerj.preprints.3181v1} +} + +@article {fisher, +author = {FISHER, R. A.}, +title = {THE USE OF MULTIPLE MEASUREMENTS IN TAXONOMIC PROBLEMS}, +journal = {Annals of Eugenics}, +volume = {7}, +number = {2}, +publisher = {Blackwell Publishing Ltd}, +issn = {2050-1439}, +url = {http://dx.doi.org/10.1111/j.1469-1809.1936.tb02137.x}, +doi = {10.1111/j.1469-1809.1936.tb02137.x}, +pages = {179--188}, +year = {1936}, +} + +@article{anderson, + ISSN = {00266493}, + URL = {http://www.jstor.org/stable/2394164}, + author = {Edgar Anderson}, + journal = {Annals of the Missouri Botanical Garden}, + number = {3}, + pages = {457-509}, + publisher = {Missouri Botanical Garden Press}, + title = {The Species Problem in Iris}, + volume = {23}, + year = {1936} } diff --git a/git-basics.Rmd b/git-basics.Rmd new file mode 100644 index 00000000..5f84cea5 --- /dev/null +++ b/git-basics.Rmd @@ -0,0 +1,46 @@ +# Repo, commit, diff, tag {#git-basics} + +## Repos or repositories + +Git is a version control system whose original purpose was to help groups of +developers work collaboratively on big software projects. Git manages the +evolution of a set of files -- called a __repository__ or __repo__ -- in a highly structured way. Historically, these files would have consisted of source code and the instructions for how to build an application from its source. + +Git has been re-purposed by the data science community [@Ram2013; +@git-for-humans; @ten-simple-rules-git]. We use it to manage the motley collection of files that make up typical data analytical projects, which consist of data, figures, reports, and, yes, some source code. + +For new or existing projects, we recommand that you: + + * Dedicate a local directory or folder to it. + * Make it an RStudio Project. *Optional but recommended; obviously only applies to projects involving R and users of RStudio.* + * Make it a Git repository. + +This setup happens once per project and can happen at project inception or at any later point. Chances are your existing projects each already live in a dedicated directory. Making such a directory an RStudio Project and Git repository boils down to allowing those applications to leave notes for themselves in hidden files or directories. The project is still a regular directory on your computer, that you can locate, name, move, and generally interact with as you wish. You don't have to handle it with special gloves! + +The daily workflow is probably not dramatically different from what you do currently. You work in the usual way, writing R scripts or authoring reports in LaTeX or R Markdown. But instead of only *saving* individual files, periodically you make a __commit__, which takes a snapshot of all the files in the entire project. If you have ever versioned a file [by adding your initials or the date](http://www.phdcomics.com/comics/archive.php?comicid=1531), you have effectively made a commit, albeit only for a single file. It is a version that is significant to you and that you might want to inspect or revert to later. Periodically, you push commits to GitHub. This is like sharing a document with colleagues on DropBox or sending it out as an email attachment. By pushing to GitHub, you make your work and all your accumulated progress accessible to others. + +This is a moderate change to your normal, daily workflow. It feels weird at first, but quickly becomes second nature. In [STAT 545](http://stat545.com) students are required to submit all coursework via GitHub, starting in week one. Most have never seen Git before and do not identify as programmers. It is a major topic in class and office hours for the first two weeks. Then we practically never discuss it again. + +## Commits, diffs, and tags + +We now connect the fundamental concepts of Git to the data science workflow: + + * repository + * commit + * diff + +Recall that a repository or repo is just a directory of files that Git manages holistically. A commit functions like a snapshot of all the files in the repo, at a specific moment. Under the hood, that is not exactly how Git implements things. Although mental models don't have to be accurate in order to be useful, in this case it helps to align the two. + +```{r commit-diff-sha-tag, echo = FALSE, out.width = "100%", fig.cap="\\label{fig:commit-diff-sha-tag}Partial commit history for our iris example, highlighting diffs, commit messages, SHAs, and tags."} +knitr::include_graphics("img/commit-diff-sha-tag.png") +``` + +Figure \ref{fig:commit-diff-sha-tag} is a look at a fictional analysis of the iris data, focusing on the evolution of a script, `iris.R`. Consider version A of this file and a modified version, version B. Assume that version A was part of one Git commit and version B was part of the next commit. The set of differences between A and B is called a "diff" and Git users contemplate diffs a lot. Diff inspection is how you re-explain to yourself how version A differs from version B. Diff inspection is not limited to adjacent commits. You can inspect the diffs between any two commits. + +In fact, Git's notion of any specific version of `iris.R` is as an accumulation of diffs. If you go back far enough, you find the commit where the file was created in the first place. Every later version is stored by Git as that initial version, plus all the intervening diffs in the history that affect the file. We'll set these internal details aside now, but understanding the importance of these deltas will make Git's operations less baffling in the long run. + +So, by looking at diffs, it's easy to see how two snapshots differ, but what about the why? + +Every time you make a commit you must also write a short __commit message__. Ideally, this conveys the motivation for the change. Remember, the diff will show the content. When you revisit a project after a break or need to digest recent changes made by a colleague, looking at the __history__, by reading commit messages and skimming through diffs, is an extremely efficient way to get up to speed. Figure \ref{fig:commit-diff-sha-tag} shows the messages associated with the last three commits. + +Every commit needs some sort of nickname, so you can identify it. Git does this automatically, assigning each commit what is called a SHA, a seemingly random string of 40 letters and numbers (it is not, in fact, random but is a SHA-1 checksum hash of the commit). Though you will be exposed to these, you don't have to handle them directly very often and, when you do, usually the first 7 characters suffice. The commit messages in Figure \ref{fig:commit-diff-sha-tag} are prefixed by such truncated SHAs. You can also designate certain snapshots as special with a __tag__, which is a name of your choosing. In a software project, it is typical to tag a release with its version, e.g., "v1.0.3". For a manuscript or analytical project, you might tag the version submitted to a journal or transmitted to external collaborators. Figure \ref{fig:commit-diff-sha-tag} shows a tag, "draft-01", associated with the last commit. diff --git a/git-intro.Rmd b/git-intro.Rmd index 228674f5..100a0db0 100644 --- a/git-intro.Rmd +++ b/git-intro.Rmd @@ -1,13 +1,11 @@ -# (PART) Basic Git concepts {-} +# (PART) Git fundamentals {-} -# Some Git fundamentals {#git-intro .unnumbered} +# Some Git basics {#git-intro .unnumbered} -We've told you shockingly little about Git so far! To a large extent, this is by design. There are lots of [general Git resources](#resources) out there that do a great job explaining the core concepts and terminology. Happy Git is designed to fill what we see as some gaps: +We've told you shockingly little about Git so far! This is by design. - * A "batteries included" guide for early success with basic workflows. - * Advice on how to use Git/GitHub in data science, which differs from pure software development in several aspects. - * Special considerations relevant to people who use R and RStudio. - -In live workshops, we also intoduce the most important basic ideas in the context of guided activities. +We find that actual usage, in the course of your work, is the most effective way to build up a useful mental model for Git. In live workshops, we strive to introduce the most important basic ideas in the context of our guided activities. Self-learners can achieve the same by working through the "batteries included" guides earlier in the previous sections. -This part collects anything we've written about core Git concepts, is a work in progress, and should be used to complement [external Git resources](#resources). +However, building on this early success, now is the perfect time to explicitly define some Git vocabulary. We also want to help you link Git concepts to data science tasks and projects. + +This part collects anything we've written about core Git concepts. It is a work in progress and is conceived as a complement to the many excellent [external resources for Git](#resources), which we have no desire to re-invent. diff --git a/img/commit-diff-sha-tag.png b/img/commit-diff-sha-tag.png new file mode 100644 index 0000000000000000000000000000000000000000..413b72353d0f6b59c7824774417b1a4a3728538c GIT binary patch literal 45500 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%0Dcxev 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 KDi$g{diH