<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CUCC Expedition Handbook: Online repositories</title>
<link rel="stylesheet" type="text/css" href=/css/main2.css />
</head>
<body>
<style>
body { 
    background: #fff url(/images/style/bg-system.png) repeat-x 0 0
}
/* Use grey for system/programming/nerd pages as a visual reminder */
</style>
<h2 id="tophead">CUCC Expedition: Online repositories</h2>
<h1>Version-controlled repositories</h1>
<a href='/repositories/'><img class="onright" width="300px" src='https://git-scm.com/images/logos/downloads/Git-Logo-1788C.png' alt='git logo'/>
<h3><a id="repositories">The repositories</a></h3>

<p>All the expo data is contained in 4 <var>repositories</var> or <var>repos</var> at
expo.survex.com: 


<ul>
 <li><a href="/repositories/loser/.git/"><var>:loser:</var></a> - the survex cave survey data (not live yet)</li>
 <li><a href="/repositories/drawings/.git/"><var>:drawings:</var></a> - the tunnel and therion cave data and drawings (git)</li>
 <li><a href="/repositories/expoweb/.git/"><var>:expoweb:</var></a> - the website pages, handbook, generation scripts (git)</li>
 <li><a href="/repositories/troggle/.git/"><var>:troggle:</var></a> - the database/software part of the survey data management system<br> - see <a href="../troggle/trogintro.html">notes on troggle</a> for further explanations </li>
</ul>
<p>If you want to use your own laptop to interact directly with the repos then a basic laptop or a survey laptop is not enough: you need an 
 <a href="bulkupdatelaptop.html">expo bulk update laptop</a>.
<p>From the command line, to clone a repo, you will do this
<tt>git clone  ssh://expo@expo.survex.com/home/expo/loser</tt>

see the quick <a href="qstart-git.html">reminders for using git</a> for the rest of them.

<h3>Use the online view of these!</a></h3>
<p>These online webpages (links above) give a much clearer view of what is going on than many git tools you may be using on your machine. 
<p>Have a look at the <a href="/repositories/drawings/.git/log/">version history of the drawings</a> to look at progress on getting the recent surveys uploaded, and <a href="/repositories/expoweb/.git/stats/?period=y&ofs=10">who has been doing what on the website and handbook</a>.
<p>For an example, see this <a href="/repositories/expoweb/.git/diff/handbook/computing/winlaptop.html?id=615ce571c48075cb606de533c6baa284ac9e964b">simple edit</a>.

<h3>Cheat lists and quick reminders</h3>
<ul>
<li>Quick <a href="qstart-git.html">reminders for using git</a> at the command line.
</ul>

<h3 id="git">Version control system</a></h3>
<p>We use a distributed revision control system (<a href="https://git-scm.com/about/distributed">git</a>) for all the important data. 
<p>Note that we just use git: not GitHub, not GitLab, just <a href="https://git-scm.com/about/distributed">git</a>.
<p>
This allows many people to edit and merge their changes at the same time. This includes people still on expo and those who have returned to the UK.  Also anyone who is up 
to date can take their laptop somewhere (e.g. topcamp) and enter data even if they have no Internet access, 
and the updates will be merged when they get back to civilization.
</p>
<p>
We use a version control system because this keeps track of all changes so we can roll back mistakes. We also have multiple copies of the data on multiple machines for safety. 
<p>
We use git because it is now the industry standard. In the past we have used <a href="https://en.wikipedia.org/wiki/Concurrent_Versions_System">cvs</a>, <a href="https://en.wikipedia.org/wiki/Apache_Subversion">subversion</a> and <a href="https://en.wikipedia.org/wiki/Mercurial">mercurial</a>.

<p>A version control system is inefficient for photos, GPS tracks and scanned survey notes which are large files that do not get modified. These are kept as a plain directory of files <a href="/expofiles"><var>/expofiles/</var></a>. 
</p>

<h3>Uploading cave survey data, scanned notes or Therion/Tunnel drawings</a></h3>
<p>You do <em>not</em> need to know about the version control system for several common 
cave data surveying tasks. 
<p>The online system has forms to allow you to upload these, and it invokes git behind the scenes to keep everything tidy. However these capabilities are being used for the first time on the 2022 expo so be prepared for things to break, e.g. if two people try to do the same thing at the same time.

<h3>Reading and cloning</a></h3>

<p>You can read or clone these repos without any control, but to write ("push") to them you will need to use <var>ssh://expo@expo.survex.com</var> and set up the <a href="keyexchange.html">key exchange</a>.
<p>NOTE: when using git to path to a repository, always use user <var>'expo'</var> as the login user (<var>ssh://expo@...</var>) even though within git you will be identified by your own ssh key name. This is because file permissions on the server require this. 

<p>So cavers wanting to do sophisticated management of their cave survey data (i.e. not just simple
uploads) will have to use a machine on which they key is  already set up. The <i>expo laptop</i>  lives in the potato hut during expo and it is sometimes joined by the laptop '<i>aziraphale</i>'. These are both loaned machines running Linux. If you want to use your own laptop then a basic laptop or a survey laptop is not enough: you need a 
 <a href="bulkupdatelaptop.html">bulk update laptop</a>.


<hr />
Return to <a href="manual.html">Expo Data Maintenance manual</a><br>
Return to <a href="onlinesystems.html">Expo Systems Overview</a></body>
</html>