views:

70

answers:

1

To work on a client's staging environment I have to connect through a VPN which locks all normal network traffic and prevents any connection to the Internet.

This would immediately prevent any of the "normal" VCS solutions from being used as it's not possible to gain access to the server. A solution to this would be to create a DVCS repository (git?) locally and then push changes to the master, as and when needed. There is one flaw in this plan.

The entire codebase is around 14GB. To download all of this over the internet would take some time, especially when I'm likely to be working on 3 or 4 different machines in each case. This seems silly and overkill for a DVCS.

TL;DR Can any DVCS solution allow you to push to a master server/repo without needing the codebase? Bad example: copy the .git folder (not the 14GB codebase) to another directory and push this to the master once disconnected from the VPN.

+1  A: 

I don't know any DVCS that works without somehow transferring the codebase to the remote server.

But modern DVCS's like git or mercurial are able to compress the initial codebase. After creating the initial repository on the client, you often have the nice surprise that the .hg or .git directory is much smaller than the working directory that was added (for git you'll need to repack the repo first to see a gain in space).

For an even smaller transfer, the bundle feature of mercurial could be used (it uses bz2 instead of zlib).

tonfa