Как обнаружить использование «открыть для редактирования» от Perforce из сценария - PullRequest
0 голосов
/ 03 июня 2009

Я работаю над сценарием взаимодействия с Perforce, который, помимо прочего, должен уметь понимать ожидающие изменения списки. Для этого я использую 'p4 describe' и 'p4 opened', которые довольно просты. Например, файл, открытый для редактирования, отображается следующим образом (из открытого p4):

//source/stuff/things.h#1 add default change (text)

То, что я не могу , кажется, выяснить, как обнаружить случаи, когда пользователь разветвлял файл и затем использовал команду «Открыть заново для редактирования» в этом файле (что равносильно использованию p4 edit 'на файле, который будет разветвлен) перед отправкой. То же самое касается интеграции файла и последующего использования «Открыть заново для редактирования» перед отправкой интеграции. В случае ветвления файл отображается как «добавление» без указания на то, что также происходит ветвление (поэтому приведенный выше пример может быть либо истинным добавлением, либо вновь открытой ветвью). В случае интеграции это отображается как «редактировать». В обоих случаях после отправки изменения я вижу, что файл был разветвленным / интегрированным, но я должен быть в состоянии сделать это для ожидающих изменений. Теоретически, я бы хотел увидеть что-то подобное, где разветвление и редактирование things.h происходит из thangs.h:

//source/stuff/things.h#1 add default change (text)
  branch from //source/other/thangs.h#42

Кто-нибудь знает способ сделать это? Я также упомяну, что я использую старую версию Perforce (с 2004 года), так что, возможно, это возможно в более новых версиях, и мне просто нужно обновить свое программное обеспечение.

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

" p4 resolved " делает почти то, что вам нужно, но, к сожалению, это новое в 2007.2.

[C:\dfp\Common\Code\Python]p4 opened foo.py
//buddha/Common/Code/Python/foo.py#1 - add default change (kxtext)

[C:\dfp\Common\Code\Python]p4 resolved foo.py
c:\dfp\Common\Code\Python\foo.py - branch from //buddha/Common/Code/Python/memdump.py#1,#30

Вероятно, вы не сможете обнаружить проблемы до того, как пользователь выполнит команду "решить", но ему придется решить, прежде чем они отправят запрос.

0 голосов
/ 04 июня 2009

Я не думаю, что это возможно при выдаче «открыть для редактирования». Как вы уже указали, команда reopen изменит состояние файлов на другое. Я провел локальный тест (я запускаю 2008.2). Похоже, что в вашей версии есть некоторые изменения в способе создания отчетов о состоянии добавления / редактирования файлов, но то, что вы пытаетесь сделать, по-прежнему кажется невозможным

d:\sandbox\ctg_test>p4 integ test.txt test_branch.txt
//ctg_test/test_branch.txt#1 - branch/sync from //ctg_test/Test.txt#1,#15

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - branch default change (text)

Обратите внимание, что открытая команда теперь показывает 'ветвь' для статуса файла вместо add, который, я думаю, мог бы отображаться в вашей версии сервера. Но кикер:

d:\sandbox\ctg_test>p4 edit test_branch.txt
//ctg_test/test_branch.txt#1 - reopened for add

d:\sandbox\ctg_test>p4 opened
//ctg_test/test_branch.txt#1 - add default change (text)

Я попытался посмотреть с опцией -ztag, чтобы узнать, была ли дана дополнительная информация:

d:\sandbox\ctg_test>p4 -ztag opened
... depotFile //ctg_test/test_branch.txt
... clientFile //client-mark.allender/ctg_test/test_branch.txt
... rev 1
... action add
... change default
... type text
... user mark.allender
... client client-mark.allender

p4 fstat тоже не помог.

...