Принудительное автоматическое разрешение из командной строки?

P4V ругался на меня, когда я пытался разрешить большое количество файлов в рамках интеграции. Я хочу иметь возможность делать это в командной строке.

Вот шаги в P4V:

  1. Щелкните правой кнопкой мыши CL.
  2. Выберите «Разрешить файлы...». Появится диалоговое окно.
  3. Выберите «Объединить ваши и их, если нет конфликтов».
  4. Щелкните Авто.

Может ли кто-нибудь перевести это в команду командной строки p4 с правильными аргументами?


person Fostah    schedule 27.07.2009    source источник


Ответы (3)


Вы можете использовать p4 resolve -am [file ...], который пропустит файлы с конфликтами.

Если вы укажете файл, вы будете работать только с этим файлом. Если вы укажете ..., вы будете работать с файлами ниже вашего рабочего каталога. Если вы не укажете файл, он будет работать со всеми файлами в вашей рабочей области.

person akf    schedule 27.07.2009
comment
Невозможно указать Pending CL для файлов с помощью команды разрешения? - person Fostah; 27.07.2009
comment
Нет, не кажется. Один из вариантов — обернуть его в цикл for в пакетном режиме, взяв список изменений из командной строки и перебирая файлы, возвращенные p4 describe changelist#, передавая их p4 resolve -am. - person akf; 27.07.2009
comment
Я бы предпочел использовать p4 resolve -as. Поскольку это разрешается только в том случае, если это безопасно. Опция -am тоже объединяется, что может вызвать ошибки слияния, я бы предпочел сделать это вручную в p4merge. - person Calmarius; 27.06.2016
comment
есть ли способ сделать это, но когда есть реальный конфликт - открыть пользовательский интерфейс p4 так же, как и без опции -am? Я хотел бы интегрировать этот инструмент с моим рабочим процессом git. В настоящее время я должен закрыть-сохранить все конфликты, если P4 считает, что конфликта нет. Но если я укажу -am, это означает, что я не увижу никакого пользовательского интерфейса в случае конфликта... - person Dmitry Gusarov; 20.03.2020

У меня недостаточно репутации, чтобы добавить комментарий к принятому ответу, поэтому я добавлю информацию в новый ответ.

В Perforce 2013.2 вы действительно можете указать номер списка изменений, чтобы ограничить операцию файлами в этом списке изменений.

p4 resolve -c changelist#
person DeQuimet    schedule 03.10.2013

Я следую этим шагам, чтобы сделать это из командной строки.

  1. В клиенте perforce выберите папку в рабочей области.
  2. Выберите «Файл» -> «Открыть окно терминала здесь». Терминал откроется в том же каталоге, который был выбран на шаге 1.
  3. Выполните пробный запуск, используя параметр -n :

p4 разрешение -c 1234 -n

  1. Чтобы принять автоматическое слияние из принудительного использования, используйте параметр -am, Automatic Mode. Automatically accept the recommended file revision: if theirs is identical to base, accept yours; if yours is identical to base, accept theirs; if yours and theirs are different from base, and there are no conflicts between yours and theirs; accept merge; otherwise, there are conflicts between yours and theirs, so skip this file.

p4 разрешение -c 1234 -am

person Eklavyaa    schedule 19.11.2020