Git on a Windows Lan

Viewed 14257

My colleagues and I are thinking of giving git a try and see if we can easily move to it. We work on a Windows-only environment. On our own machines we already have git set up with mingw32 and SmartGit as gui client.

Is there an easy approach based more on the concept of sharing folders than on the concept of "hosting server"? For example, we wanted to host a git repository on a folder shared on the lan, clone it on our machines and see how to push our changes back to that folder, merge them and so on.

Our first problem was cloning from the lan. Of course git doesn't recognize paths like \\mymachine\shared\repo

How to start with our approach? Is to doable? Any advice?

Thanks in advance.

EDIT

As suggested, a command line approach worked. We also had to invert the slashes, so that git clone //machine/directory/repository did the trick. Now, my colleague had a local copy working, made some changes... How to push them back to the shared folder?

Push and Fetch work on local paths too, we're up and running with our tests. Thank you all!

5 Answers

For a pure command-line solution, did you try

 git clone file:///local/path/to/repo-name.git

In your case:

 git clone file:///\\mymachine/shared/repo.git

It should work just fine.


Update August 2014 (4 years later), Git 2.1

Commit c2369bd by Eric Sunshine and Cezary Zawadka (czawadka) means a simpler UNC path now work:

Windows: allow using UNC path for git repository

Eric Sunshine fixed mingw_offset_1st_component() to return consistently "foo" for UNC "//machine/share/foo", cf this thread.

So this should now work:

git clone //mymachine/shared/repo.git

We use TortoiseGit. The URL's it accepts are //machinename/shared/repo.

My advice sidesteps your efforts a bit, but I've been using Mercurial in exactly the same approach you've described here, and if it's not too much of a plan change, I'd encourage you to give using TortoiseHg a try. Mercurial works with file path based repositories exactly the same way it works with "served" repositories (e.g. it will recognize \\server\shared_repo\repo_path as a valid repository path to clone from.)

As an additional point, from what I can tell, Mercurial's Windows support is pretty far along, whereas git still has some fringe compatibility issues (although it appears that you've addressed many of the biggest challenges to using git on Windows already)

"I have a few different computers that I use at home and I wanted to set up GIT that I can access my code from any of them. It took me a bit because I was too used to working with a client-server model where I designate one machine as the "server" that holds the repository and everything else was a client. Instead, GIT seems to operate more like a merge tool and every local copy is its own "master." Once I understood that, it turns out that setting up GIT is very simple and just needs GIT itself and SSH".

To read more you can check this link: http://blog.lazyhacker.com/2010/04/setting-up-git-for-home-network.html

Related