Извлечь имя ветки из пути депо p4 - PullRequest
0 голосов
/ 16 марта 2020

Существует ли какая-либо команда выполнения или утилита p4 для извлечения имени ветви из пути депо. Например, у меня есть расположение депо "// депо / папка / суффикс", а название филиала - "b-folder-суффикс". Как мне узнать название филиала в депо? Возможно ли получить такое отображение?

Примечание: я не ищу RegEx.

1 Ответ

0 голосов
/ 16 марта 2020

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

foreach(`p4 -F %domainName% branches`) {
    chomp;
    if (`p4 -F %code0% populate -fn -b $_ -s $ARGV[0]` != 554768862) { print $_."\n"; }
}

Пример вывода (где каждая ветвь отображает //depot/main, но только foo отображает //depot/foo):

C:\Perforce\test>p4 branches
Branch bar 2020/03/16 'Created by Samwise. '
Branch foo 2020/03/16 'Created by Samwise. '
Branch spaces 2020/03/16 'Created by Samwise. '

C:\Perforce\test>perl get-branch.pl //depot/foo/bleh
foo

C:\Perforce\test>perl get-branch.pl //depot/main/bleh
bar
foo
spaces

Он работает, выполняя команду populate для каждой ветви spe c с указанным путем к файлу и ища указанное c сообщение об ошибке no source file(s) in branch view (которое является кодом ошибки 554768862; I получил это, играя с p4 -e populate ...). Если он не получает это сообщение, он предполагает, что путь отображается в представлении ветви. Обратите внимание, что этот сценарий в том виде, в котором он написан, не является устойчивым к другим ошибкам (например, разрешениям).

...