Perforce - отправить указанный c список файлов из командной строки - PullRequest
0 голосов
/ 10 марта 2020

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

Как это сделать из команды? Есть ли способ создать новый список изменений, добавить эти файлы в список изменений и отправить новый список изменений в список изменений по умолчанию.

1 Ответ

1 голос
/ 10 марта 2020

Глобальный флаг p4 -x позволяет передавать содержимое файла (или стандартный ввод как -) команде p4 в качестве аргументов. Команда p4 edit принимает произвольное количество аргументов файлов; команда p4 submit будет работать со всеми открытыми файлами по умолчанию.

C:\Perforce\test\grep>p4 print ...
//stream/main/grep/bar#1 - add change 145 (text)
wibble
//stream/main/grep/baz#1 - add change 145 (text)
wibble
//stream/main/grep/foo#1 - add change 145 (text)
weeble
//stream/main/grep/ola#1 - add change 145 (text)
weeble

C:\Perforce\test\grep>grep -l weeble * | p4 -x- edit
//stream/main/grep/foo#1 - opened for edit
//stream/main/grep/ola#1 - opened for edit

C:\Perforce\test\grep>sed -i -e s/weeble/wobble/ *

C:\Perforce\test\grep>p4 diff
==== //stream/main/grep/foo#1 - c:\Perforce\test\grep\foo ====
1c1
< weeble
---
> wobble
==== //stream/main/grep/ola#1 - c:\Perforce\test\grep\ola ====
1c1
< weeble
---
> wobble

C:\Perforce\test\grep>p4 submit -d "weeble wobble"
Submitting change 146.
Locking 2 files ...
edit //stream/main/grep/foo#2
edit //stream/main/grep/ola#2
Change 146 submitted.

Обратите внимание, что команды p4 print и p4 diff в приведенном выше примере не являются необходимыми для отправки файлов; Я просто включил этот вывод, чтобы показать состояние файлов в этих точках процесса для понимания примера.

...