Как я могу p4 скопировать файл из хранилища на мой pwd? - PullRequest
1 голос
/ 25 апреля 2020

Я хочу использовать две разные версии одного и того же файла в хранилище P4, используя tkdiff. Но P4 diff2 не поддерживает P4DIFF, поэтому я пытаюсь просто скопировать два файла в мой PWD и затем разнести их прямо оттуда. Но у меня проблема с использованием p4 copy для получения файла (если это даже правильный способ сделать это). Я пробовал

"p4 copy -s //this/that/theother/here/there/where/the.file#77 ./v77" 

, но он жалуется на

"Missing/wrong number of arguments."

В документации сказано ...

p4 [g-opts] copy [-c change] [-n -f -v -q] [-m max] -b branch -s fromFile[rev] [toFile …]

"p4-файлы // this / that / theother / здесь / там / где / the.file # 77 "распознает файл. Это реально, это там. Но я просто не могу скопировать это.

Может быть, я должен просто задать вопрос ... Возможно ли то, что я пытаюсь сделать? Если да, то как?

p4 информация дает ... Версия сервера: P4D / LINUX26X86_64 / 2013.2 / 938876 (2014/09/23) Да, я знаю, древний. Под моим контролем.

Заранее спасибо!

1 Ответ

3 голосов
/ 25 апреля 2020

p4 copy - для копирования файлов в хранилище. Вы хотите p4 print:

p4 print -o ./v77 //this/that/theother/here/there/where/the.file#77

Без каких-либо флагов, p4 print просто распечатает содержимое файла на стандартный вывод. Флаг -o говорит ему записать вывод в указанный локальный файл. В отличие от локальных файлов, созданных с помощью p4 sync, выходной файл не отслеживается никоим образом, поэтому вы отвечаете за его очистку, когда закончите.

Если вы хотите проверить две версии тот же файл без необходимости создания и очистки собственных временных файлов, p4 diff -f также опция:

p4 set P4DIFF=tkdiff
p4 sync the.file#78
p4 diff -f the.file#77
...