<p>This is NOT a tutorial. This is a set of reminders for people who already know all this stuff.</p>
<p>Since 2019 all use of version control software requires that you have <ahref="keyexchange.html">key-pair setup</a> already set up before any of this will work on your own machine.</p>
<p>- check that you can get ssh working before trying to run git too</p>
<p>If you can get to the <em>expo laptop</em> try these commands on that first as the key exchange has already been done. If the key exchnage has not been done then none of this will work.</p>
<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 <ahref="keyexchange.html">key exchange</a>.</p>
<p>NOTE: 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.</p>
<p>Brendan wrote a guide to using git for expo on a Windows machine. It's worth reading: <ahref="/expofiles/documents/idiots-guide-expo-git.pdf">Idiots guide to accessing expo git.pdf</a>.
<p>Open a terminal in a new directory, e.g. /tmp/experiments/ in which you want to create the repo. It will automatically create a folder with the repo name e.g.'troggle' in that directory.</p>
<dt>drawings</dt><dd>These are the therion and tunnel cave vector drawing files. You need this if you are 'tunneling' a lot of cave surveys.<tt>git clone ssh://expo@expo.survex.com:drawings</tt> (read/write)</dd>
<dt>expoweb</dt><dd>These are all webpages, mostly the expo handbook. You need this only if you are editing a lot of handbook pages.<tt>git clone ssh://expo@expo.survex.com:expoweb</tt> (read/write)</dd>
<dt>troggle</dt><dd>This is the python code that runs troggle and generates 2,000 webpages of reports and tables. This is what you need for software development.<tt>git clone ssh://expo@expo.survex.com:troggle</tt> (read/write)</dd>
<tt>git pull;</tt> which is equivalent to <tt>git fetch; git merge</tt>
when you have a local change and there are changes on the server. The rebase command
gives a nice linear log rather than trivial merges.
<p>In VS code there is a "Pull (rebase)" command accessed from the "Push, Pull" option in the pull-down menu "..." in the SOURCE CONTROL window. Use that instead of the "Pull" option which is more obvious.
<p><ahref="https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/"><imgclass="onright"src="git-arrows31.png"alt="git bread & butter commands subset"width="250"/></a>You may find these useful:</p>
<h3><aid="gitwindows"></a>Using git in Windows</h3>
<p>Do not use the official "git for Windows" client software as it doesn't understand symlinks in the WSL filesystem (which is what we use on Windows). Use VS Code which understands WSL or a command line git in a WSL terminal window.</p>
<p>"Git is a 4 handle, dual boiler espresso machine – when all you need is instant."</p>
<p>Once you've downloaded and installed a git client, the first step is to create what is called a checkout of the data management system. This creates a copy on your machine which you can edit to your heart's content. The command to initially check out ('clone') the entire expo data management system is:</p>
<p><code>git commit</code> (you can specify filenames to be specific)</p>
<h3><aid="pageant"></a>Windows key gotcha</h3>
<p>The first time you do this on a Windows machine it will probably not work as it does not recognise the server key exchange. Fix this by running putty (downloading it from <ahref="https://www.chiark.greenend.org.uk/~sgtatham/putty/">https://www.chiark.greenend.org.uk/~sgtatham/putty/</a>), and connecting to the server 'expo@expo.survex.com' (on port 22). Confirm that this is the right server. If you succeed in getting a shell prompt then ssh connection are working and git should be able to clone the repo, and send changes back.</p>
<p>For more detailed instructions on making Pageant work see <ahref="fzconfig.html">the section in the middle of the Filezilla instructions</a> where it describes how to configure Pageant.</p>