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 www.sharcnet.ca. This is caused by either not connecting directly to www.sharcnet.ca (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>:www.sharcnet.ca:443 <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 www.sharcnet.ca:443 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.