Мерзавец на пути 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, решение может быть аналогичным. Возможно, некоторые из этих ссылок помогут вам найти решение:
- http://groups.google.com/group/msysgit/browse_thread/thread/1267781387a4c080
- http://code.google.com/p/msysgit/issues/detail?id=535
И если вы найдете решение, пожалуйста, рассмотрите возможность отправки исправления обратно в проект msysGit:)