开发者

git on UNC path

开发者 https://www.devze.com 2023-02-10 17:19 出处:网络
I have computer with Windows XP and no Internet connection, only access to network drive. I\'d like to set up a git repository on the network drive and then push to it from my local repository, so I c

I have computer with Windows XP and no Internet connection, only access to network drive. I'd like to set up a git repository on the network drive and then push to it from my local repository, so I can at the end of the day go to a computer with Internet connection and push from network drive to github.

My problem is I cannot access network drive from git. I put开发者_开发技巧 PortableGit on the network drive, but git-bash.bat and git-cmd.bat die with "CMD does not support UNC paths as current directories.". I tried replacing "cd" with "pushd" in git-cmd.bat, but it doesn't work.

BTW, I use PortableGit since I don't have admin permissions on my machine.

Any ideas?


This worked for me:

git.exe clone "d:/dev/SDK" "//comp1/Proj/git/SDK/"


Just use the UNC path - git doesn't care what cmd can and cannot do.


Old answer: Bind the UNC path to a drive letter (or use a directory symlink).


First open a windows console, Run->cmd

pushd \\172.158.1.254\network_usb

now you should be able to 'cd' through all the directories on the drive. Optionally you can type a git init --bare nameOfnewRepo.git somewhere.

popd

Now open git bash and cd to the location where you want to clone the repo on the network drive

git clone //172.158.1.254/network_usb/pathto/nameOfnewRepo.git

Note that in git bash the slashes are forward and in the windows console backward.


As Konstantin said, "//comp1/Proj/git/SDK/" works fine as a UNC path.

Others mentioned poor performance using a remote file system, which I cannot reproduce. Cloning the same repo took 3min45 through encrypted VPN file system access and 3min25 through unencrypted HTTP (Bonobo Git Server). The secure channel + windows authentication for repo access is certainly worth the extra 10%.

Note that Cygwin's "git" command does not work with this remote path. The git.exe that comes bundled with GitExtensions works fine, VS2015 works fine too.


There's a similar (but not quite the same) issue discussed on the msysGit mailing list (and back when it was active, the issue-tracker). While that issue is about the "Git bash here"-feature from UNC, the solution might be similar. Perhaps some of these links will help you find a solution:

  • http://groups.google.com/group/msysgit/browse_thread/thread/1267781387a4c080
  • http://code.google.com/p/msysgit/issues/detail?id=535

And if you find a solution, please consider to submit the fix back to the msysGit project :)


Check if you actually have access to your local drive. Installing it there would be the easiest solution.


It seems that there is a register value that allows to use UNC paths on cmd. You can set up the register by running this on cmd:

reg add “HKCU\Software\Microsoft\Command Processor” /v DisableUNCCheck /t REG_DWORD /d 0x1 /f

Source

0

精彩评论

暂无评论...
验证码 换一张
取 消