From Documentation
Revision as of 10:05, 6 May 2019 by Edward (Talk | contribs) (Created page with "=Code repositories= The code for (most) dedicated programming projects is stored in the SHARCNET [ git repository]. What follows is some details re...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Code repositories

The code for (most) dedicated programming projects is stored in the SHARCNET git repository. What follows is some details regarding using git with these repositories. Please refer to our git page for general information on using git.

Certificate problems

If you are seeing error messages like error: server certificate verification failed ... while performing a clone, push, fetch, or pull, your system cannot verify the authenticity of This is caused by either not connecting directly to (as when using ssh port tunneling as described below) or by your SSL stack having dropped support for the deprecated MD5 signatures (as with GnuTLS for SSL under Debian).

In either case, you will have to turn off git's SSL verification by setting the environment variable GIT_SSL_NO_VERIFY=1 or running the command

 git config http.sslVerify false

inside your repository (the former must be used for cloning as the repository won't exist yet).

Our current certificate expires on March 10, 2012. If you have disabled SSL verification due to the MD5 issue, you should re-enable it at this point as we will have purchased a new certificate without this issue.

Dropped connections

If you are periodically seeing error messages like Cannot obtain needed blob ... while performing a clone, push, fetch, or pull, an intermediate network is occasionally dropping your connections. This has been a known problem on at least the Western campus.

A solution is to use SSH to create a tunnel across the intermediate network to the SHARCNET network.

 ssh -N -L <port> <user>@<cluster>

where <port> is a free port (such as 4000), <user> is your SHARCNET user name, and <cluster> is any of the SHARCNET clusters. While this ssh session is running, connections to localhost:<port> will be forwarded via <cluster>. For example

 GIT_SSL_NO_VERIFY=1 git clone https://localhost:<port>/<project>

will check out <project> over the tunnel.

The GIT_SSL_NO_VERIFY environment variable is required as SSL verification will otherwise fail due to the port forwarding. Once you have checked out the project, you can permanently disable SSL verification by running

 git config http.sslVerify false

in the project directory.

Note that every time you access the SHARCNET git server (i.e., do a clone, push, fetch, or pull), you need to have the ssh tunnel running. If you try and access the remote without the ssh tunnel running, you will get an error: couldn't connect to host while accessing ... message.