Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

[Phys-L] version control systems



Hi Folks --

Probably lots of people know this, but not everybody, so
let me spell it out.

Paul Nord has a git repository here:
https://github.com/paulnord/
and of particular relevance to recent discussions:
https://github.com/paulnord/bayesian_analysis

I have an analogous repo here:
https://www.av8n.com/cgit/poissfit/

Minor point: Those have a web interface that allows you
to browse files.

More importantly: You can download the whole repo in one
swell foop using a command like
:; git clone https://www.av8n.com/cgit/poissfit/

Later, as often as you wish, you can get updates by going
into the poissfit directory and saying
:; git pull

In the present situation, this is a win, because the software
is a moving target. There have been several updates in the
last 48 hours. You don't need to lose sleep over whether you
have the latest version. Just do `git pull` and you're all
set.

Here's an even bigger win: If you have made local changes,
git will merge your changes with the upstream changes. If
there are no conflicts, it works amazingly smoothly.

Git is what we call a version control system. It works for
all sorts of projects, from the very small to the very large.
-- I use it for practically everything I write (programs,
text documents, and everything else, even when I am the
sole author.
-- Big projects, including very big projects with lots of
contributors, use git. Otherwise it would be a huge mess,
with various people stepping on other peoples toes.

A file of notes with frequent git commits makes a rather
nice electronic lab notebook. It provides a timestamp for
the entries, which sometimes comes in verrry handy, e.g.
if there is a patent priority dispute.

This is double-especially handy if there is a team of students
are working on the same project. Use it for the lab notebook
and for writing up the final report.

====================

As with many fancy things, 90% of the value comes from 10%
of the features. Do not try to learn git all at once. Start
with the minimum set of features you need:
-- git clone (necessary, but not often)
-- git pull
-- git diff
-- git commit
++ maybe a few others