Мерзавец на пути UNC

У меня есть компьютер с Windows XP и без подключения к Интернету, только доступ к сетевому диску. Я хотел бы создать git-репозиторий на сетевом диске, а затем передать его из локального репозитория, чтобы в конце дня перейти к компьютеру с подключением к Интернету и перейти с сетевого диска на github.

Моя проблема в том, что я не могу получить доступ к сетевому диску из git. Я поместил PortableGit на сетевой диск, но git-bash.bat и git-cmd.bat умрут с "CMD не поддерживает пути UNC как текущие каталоги". Я попытался заменить "cd" на "pushd" в git-cmd.bat, но это не работает.

Кстати, я использую PortableGit, так как у меня нет прав администратора на моей машине.

Есть идеи?

6 ответов

Решение

Просто используйте путь UNC - git не важно что cmd может и не может сделать.


Старый ответ: Привязать путь UNC к букве диска (или использовать символическую ссылку каталога).

Это сработало для меня:

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

Сначала откройте консоль Windows, Run->cmd

pushd \\172.158.1.254\network_usb

Теперь вы должны быть в состоянии "CD" через все каталоги на диске. При желании вы можете ввести git init --bare nameOfnewRepo.git где-то.

popd

Теперь откройте git bash и перейдите в папку, где вы хотите клонировать репо на сетевом диске

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

Обратите внимание, что в git bash косые черты идут вперед, а в консоли Windows - назад.

Как сказал Константин, "//comp1/Proj/git/SDK/" отлично работает как UNC-путь.

Другие упоминали низкую производительность при использовании удаленной файловой системы, которую я не могу воспроизвести. Клонирование того же репо заняло 3 минуты 45 минут через зашифрованный доступ к файловой системе VPN и 3 минуты 25 минут через незашифрованный HTTP (Bonobo Git Server). Защищенный канал + аутентификация Windows для доступа к репо, безусловно, стоит дополнительных 10%.

Обратите внимание, что команда Cygwin "git" не работает с этим удаленным путем. Git.exe, который поставляется в комплекте с GitExtensions, работает нормально, VS2015 тоже работает нормально.

Кажется, что есть значение регистра, которое позволяет использовать UNC-пути в cmd. Вы можете настроить регистр, запустив его в cmd:

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

Источник

Проверьте, есть ли у вас доступ к вашему локальному диску. Установка будет самым простым решением.

Существует аналогичная (но не совсем та же) проблема, которая обсуждалась в списке рассылки msysGit (и когда он был активен, отслеживатель проблем). Хотя эта проблема связана с особенностью "Git bash here" от UNC, решение может быть аналогичным. Возможно, некоторые из этих ссылок помогут вам найти решение:

И если вы найдете решение, пожалуйста, рассмотрите возможность отправки исправления обратно в проект msysGit:)

Другие вопросы по тегам