Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Git in a sneakernet environment?

My project has a number of test PCs which are 100% off-net. We use a USB drive to transfer files to and from these PCs. Some development happens during the tests on those PCs. We transfer zips of the updated files, with the 'version info' coded in the name of the zip file.

My question is how best to use Git for managing the sneakernet transfer of files (or repos, or what?) between the project's office PCs and the test PCs. It's not the normal 'use case' that is often presented for laptop users being 'off-net' and developing in some corner cafe, and later getting back on net.

Has anyone got experience in such scenarios?


Also see the git bundle create <file> --all answer to transfer a complete repo

like image 263
Philip Oakley Avatar asked Jun 09 '11 22:06

Philip Oakley


3 Answers

Using Git with unconnected computers is easy with git bundle.

See its man page.

like image 111
Koraktor Avatar answered Nov 16 '22 23:11

Koraktor


You can also keep a clone of the repository on a USB drive. 'push' from the off-net PC to the USB drive, then 'push' from the USB drive to the central repository.

It might be better to have the USB drive repository with its own working directory (also on the USB drive). Then 'pull' to the USB drive from the off-net PC, and 'push' from the USB drive to the central repository. When that push happens, you can do merging, if necessary, on the USB drive.

like image 39
Kent Avatar answered Nov 16 '22 21:11

Kent


Readers who get here are probably also interested in using-git-on-usb-stick-for-travelling-code which has a great set of similarities. It probably won't work for my environment where there are two of use doing the sneakernet use/edit movements (i.e two separate USB drives), but it is a possibility.

It all depends on how much you trust the transfer drive, and if the tools can work when you haven't got it plugged in....

like image 3
Philip Oakley Avatar answered Nov 16 '22 22:11

Philip Oakley