2013-03-08 3 views
7

я сделал:Как клонировать ветку с git-p4?

git p4 clone //depot/path/to/project/trunk/@all project 

создать master ветвь project. Теперь я хочу клонировать //depot/path/to/project/release на release филиал project. Как это делается?

ОБНОВЛЕНИЕ: Использование --detect-branches также не работает. Он сообщает, что он обновляет две ветки (когда есть действительно три ветви), но git branch сообщает, что существует только мастер.

ответ

0

Я считаю, что «обнаружение ветвей» зависит от того, что вы имеете отображение ветви с тем же именем, что и путь ветвления в вашем хранилище. Если это не так, вам, вероятно, нужно будет использовать определения значения конфигурации git-p4.branchList в пустой репозитории git перед запуском команды клонирования git-p4.

+0

А, это имеет смысл. Мне было интересно, как работает «волшебство» обнаружения филиала. Я попробую. Благодарю. –

+0

Это все еще не работает для меня. Я подозреваю, что слияния пошли в обоих направлениях по крайней мере в некоторых наших филиалах, и это бросает ключ в работу git-p4. –

+0

В прошлом это работало на очень большом репо, с кем-то из самых запутанных ветвей/слияний, которые я когда-либо видел. Поскольку git-p4 написан на python, его на самом деле не так сложно отлаживать. – cmcginty

8

Вот мои указания по установке, когда я использовал git-p4. Было бы полезно:

  • Загрузить p4 linux client. Сохраните файл в ~/bin или /usr/local/bin и chmod +x

  • Setup мерзавца-p4 как корень

    chmod 755 /usr/share/doc/git/contrib/fast-import/git-p4 
    ln -s /usr/share/doc/git/contrib/fast-import/git-p4 /usr/local/bin 
    
  • Определение Git глобалам для GIT-p4

    git config --global alias.p4 '!git-p4' 
    git config --global git-p4.detectRenames true 
    git config --global git-p4.detectCopies true 
    
  • Set определяет для прямого 'p4' использование

    export P4PORT=SERVER_NAME:PORT_NUMBER 
    
  • Установить регистрационные данные

    export P4USER=USER_NAME 
    export P4PASSWD=PASSWORD 
    
  • Выбор ветвь Perforce с помощью P4 «клиента»

    Run команды «Р4 клиента», и добавить только пути/ветвь Вас интересует. Если вы хотите назовите рабочее пространство клиента, вы можете добавить необязательный аргумент CLIENT_NAME в конец команды. Это позволит вам использовать для использования разных определений клиентов на одном компьютере.

    $ p4 client [CLIENT_NAME] 
    
    View: 
    //depot/main... //CLIENT_NAME/main... 
    //depot/patch... //CLIENT_NAME/patch... 
    //depot/dev... //CLIENT_NAME/dev... 
    
  • Clone хранилище

    • Простой импорт

      git p4 clone --use-client-spec --detect-branches //[email protected] GIT_DIR 
      
    • Расширенный импорт

      git init PROJ; cd PROJ/ 
      git config git-p4.branchList main:patch 
      git config --add git-p4.branchList main:dev 
      git p4 clone --use-client-spec //[email protected] . 
      
  • Добавить изменения Назад к Perforce

    Для того, чтобы отправлять изменения в Perforce, требуется рабочее пространство клиента, , отдельно от рабочего дерева git.Рекомендуется, чтобы рабочая область находилась на той же файловой системе, что и ваш рабочий стол Perforce git.

    Кроме того, ссылка на путь рабочей области хранится на сервере Perforce и будет использоваться во время команды p4 submit.

    Первым шагом является создание рабочей области локального клиента. CLIENT_NAME - необязательный аргумент. Если вы не определяете его, p4 будет использовать ваше имя хоста.

    p4 client [CLIENT_NAME] 
    

    Перед выполнением команды p4 вы перейдете в редактор файлов. Этот позволяет вам изменять любые параметры клиента перед их отправкой на сервер . Вы должны изменить значение Root в новый каталог за пределами вашего дерева (например, ../p4-working). Кроме того, перед удалением проверьте значения Owner и Client . Эти значения берутся из вашей среды, и не может быть изменен в редакторе.

    p4 clients | grep USERNAME 
    

    Если вы не использовали имя клиента по умолчанию, он должен быть определен в локальном мерзавца конфигурации:

    git config git-p4.client CLIENT_NAME 
    

    Когда вы готовы выдвинуть свои изменения кода, используйте команды:

    git p4 rebase 
    git p4 submit 
    

    Вы можете удалить клиентов из разъединяет, когда больше не используется:

    p4 client -d CLIENT_NAME 
    
+1

Вам не хватает --add во втором 'git config --add git-p4.branchList main: dev' –

Смежные вопросы