невозможно импортировать с помощью git-p4 в Windows - PullRequest
5 голосов
/ 14 марта 2011

Я пытался импортировать путь депо 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 Ответ

3 голосов
/ 29 декабря 2011

В ответ на комментарий Рестуты:

  1. Я создал командный файл для вызова exec-файла "git.cmd" по произвольному пути. Содержимое моего командного файла:
    @ "C: \ Program Files \ Git \ cmd \ git.cmd"% *

  2. Я изменил файл 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"]

  3. Сделайте то же самое для всех вызовов git для файла (подпроцесс. Открытые вызовы) (всего у меня 6 изменений)

Надеюсь, это поможет!

...