Мое правило (как разработчик приложения): не касайтесь его! Это - то, для чего обученные DBAs. Heck, я даже не хочу разрешение коснуться его.:)
Вы можете создать список ожидающих изменений, затем переместите туда все нужные файлы перед отправкой. Даже из командной строки, хотя я считаю, что p4V проще использовать для этой функции.
http://www.perforce.com/perforce/doc.current/manuals/cmdref/change.html#1040665
p4 change
чтобы создать ожидающий список изменений.
p4 reopen
, чтобы переместить файлы в ожидающий список изменений.
Введите
p4 submit
Если ваш P4EDITOR - vim, вы получите окно редактирования vim. Перейдите в командный режим и выберите все строки после строки «Файлы:», набрав
v followed by PgDown until you're done selecting all the files
Затем выполните
:g!/.*pattern1.*#/d
Если у вас есть несколько подобных шаблонов,
:g!/.*pattern1.*#\|.*pattern2.*#\|.*pattern3.*#/d etc...
Надеюсь, это поможет!
Это бесконечно неприятная проблема. Вы должны иметь возможность создать список изменений p4 из командной строки Windows, не вызывая редактор, выполнив:
p4 change -o
| findstr /C:Description: /C:Change: /C:Client: /C:User: /C:Status:
| p4 change -i
Возвращаемая строка будет примерно такой: «Изменение 1500 создано». который вы можете проанализировать на предмет списка изменений. Затем вы можете добавить индивидуальные спецификации файлов, выполнив:
p4 edit -c 1500 //depot/base/...files.c
Или что-то в этом роде. Относительно серьезной проблемой этого решения является невозможность изменить описание. В качестве альтернативы вы можете создать временный файл с необходимыми строками Description, Change, Client и т. Д. И создать список изменений с помощью:
p4 change -i < tempfile.txt
Это кажется несколько небрежным, но может быть лучшей альтернативой для сценариев.
Основываясь на ответе Майкла Гилберта, вы можете отредактировать описание в PowerShell следующим образом:
$newCLFormat = p4 change -o | select-string -pattern change, client, status
$newCLFormat += "Description: " + $myDescription
$newCLFormat | p4 change -i
Чтобы вытащить новый номер списка изменений:
$newCLFormat | p4 change -i | select-string "\b(\d)+" | %{$_.matches[0].value}
Теперь должен быть более быстрый и аккуратный способ чтобы вытащить этот номер?
edit: изменен findstr на select-string
edit: более удобный способ получить список изменений:
$newCLFormat | p4 change -i | %{ $_.split()[1] }
Если вы ищете решение для командной строки UNIX / * NIX, это даст вам новый чистый список изменений и сохранит номер в $ cl
:
export cl=`p4 change -o | grep '^\(Change\|Client\|User\|Description\)' | p4 change -i | cut -d ' ' -f 2`