Невозможно импортировать с помощью git-p4 в Windows
Я пытался импортировать путь депо p4 в git, используя скрипт на git-p4. После настройки среды (git 1.7.1, python 2.7, Windwos XP, переменные p4 env) я попытался запустить скрипт git-p4, получив следующий выходной файл:
F:\gitp4>c:\Python27\python.exe git-p4.py clone --destination=master //depot/quake/main/...@all
Reading pipe: git config git-p4.syncFromOrigin
Importing from //depot/quake/main/...@all into master
Initialized empty Git repository in F:/gitp4/master/.git/
Traceback (most recent call last):
File "git-p4.py", line 1926, in <module>
main()
File "git-p4.py", line 1921, in main
if not cmd.run(args):
File "git-p4.py", line 1798, in run
if not P4Sync.run(self, depotPaths):
File "git-p4.py", line 1501, in run
self.hasOrigin = originP4BranchesExist()
File "git-p4.py", line 439, in originP4BranchesExist
return gitBranchExists("origin") or gitBranchExists("origin/p4") or gitBranchExists("origin/p4/master")
File "git-p4.py", line 332, in gitBranchExists
stderr=subprocess.PIPE, stdout=subprocess.PIPE);
File "c:\Python27\lib\subprocess.py", line 672, in __init__
errread, errwrite)
File "c:\Python27\lib\subprocess.py", line 882, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Кто-нибудь знает, что здесь происходит? Если я попытаюсь выполнить команду git, указанную в строке #332 (git rev-parse origin) из оболочки командной строки, команда будет выполнена правильно.
Благодарю.
Обновление: кажется, что сценарий не может запустить процесс, чей exec-файл не находится в пути выполнения. Я думаю, что это проблема инициализации с Python на Windows...
1 ответ
В ответ на комментарий Рестуты:
Я создал командный файл для вызова exec-файла "git.cmd" по произвольному пути. Содержимое моего командного файла:
@ "C: \ Program Files \ Git \ cmd \ git.cmd"% *Я изменил файл git-p4.py, чтобы вызывать этот командный файл, а не просто "git".
Например. (строка 2237) Исходная строка: init_cmd = [ "git", "init" ]
Заменить на: init_cmd = [ "PATH_TO_BATCH_FILE\git.bat", "init" ]
Например:
init_cmd = ["f: \ gitp4 \ git.bat", "init"]Сделайте то же самое для всех вызовов git для файла (вызовы subprocess.Popen) (всего у меня 6 изменений)
Надеюсь, поможет!