«headAction» — это действие в головной ревизии в хранилище — это означает, что это действие последней ревизии, отправленной в хранилище. Обычно это «добавить» для вновь добавленных (и отправленных) файлов, «редактировать» для файлов, которые были отредактированы и отправлены, или «удалить», когда файл был удален в начале (и снова отправлен). Здесь есть и другие варианты (например, «филиал», «интеграция» и т. д.).
«действие» — это то, что вы в данный момент делаете с файлом. Если вы открываете файл для «редактирования», действие будет «редактировать». Точно так же, если вы откроете файл для «удаления», действие будет «удалить». Если вы отправите свое изменение, действие станет headAction.
Вот небольшой пример. Я создал новый файл и отправил его. В депо была 1 ревизия. Это главное действие «добавить». Затем я отредактировал файл. Вы можете увидеть вывод fstat:
d:\projects\tools\test>p4 fstat new_file.txt
... depotFile //tools/test/new_file.txt
... clientFile d:\projects\tools\test\new_file.txt
... isMapped
... headAction add
... headType text
... headTime 1285014691
... headRev 1
... headChange 759253
... headModTime 1285014680
... haveRev 1
d:\projects\tools\test>p4 edit new_file.txt
//tools/test/new_file.txt#1 - opened for edit
d:\projects\tools\test>p4 fstat new_file.txt
... depotFile //tools/test/new_file.txt
... clientFile d:\projects\tools\test\new_file.txt
... isMapped
... headAction add
... headType text
... headTime 1285014691
... headRev 1
... headChange 759253
... headModTime 1285014680
... haveRev 1
... action edit
... change default
... type text
... actionOwner fred.flintstone
Если вы пытаетесь определить, не синхронизирована ли папка, то действительно кажется, что вам нужно смотреть только на «haveRev» и «headRev». Если headRev > haveRev, вы устарели. Если вам небезразлично, удаляется ли файл в начале, то, возможно, будет полезно взглянуть на headAction. Я думаю, у меня недостаточно информации о вашей проблеме, чтобы знать.
Во всяком случае, ХТХ.
person
Mark
schedule
18.03.2011