Как я могу захватить свой локальный журнал изменений и отправить его кому-то еще в Perforce?

Как я могу захватить мой локальный список изменений и отправить его кому-то еще в Perforce? В частности, я хотел бы отправить непредвиденные изменения из локального ожидающего списка изменений другому пользователю, ожидающему изменения в списке изменений.

Ответы

Ответ 1

set P4DIFF=C:\cygwin\bin\diff.exe
p4 diff -du -c 12345 > patch-to-head.diff

# On Other machine
patch -p1 < patch-to-head.diff

Я могу ошибаться в env var там, и вам может понадобиться сделать некоторые исправления в файле diff, но общая идея заключается в том, что вы создаете Unified Diff GNU, который вы можете отправлять людям, которые могут использовать патч GNU для его применения.

Ответ 2

P4 теперь имеет встроенную поддержку для работы в полке в 2009 году. Для использования этого клиента и сервера должен быть не менее 2009.2.

http://blog.perforce.com/blog/?p=1872

Ответ 3

Не уверен, что именно вы пытаетесь сделать, но вы также можете рассмотреть P4_Shelve. Это позволяет накладывать нагрузку на ожидающие изменения на виртуальную полку, а затем снова захватывать их позже. В зависимости от того, что именно вы хотите достичь, отправив список изменений кому-то еще, это может стать частью ответа.

Связанный с сайтом P4Shelve P4Tar, который также может быть полезен - это делает всю упаковку на стороне клиента, чтобы вы просто оставайтесь с файлом, который вы можете отправить кому-то другому.

Ответ 4

Чтобы отложить свой ожидающий список изменений ВАШ БАНК:

p4 shelve [-c YOURCHANGE]

Затем другой пользователь:

p4 unshelve -s YOURCHANGE [-c THEIRCHANGE]

В любом случае аргумент -c "может быть опущен вместо использования списка изменений по умолчанию. В случае p4 shelve это означает, что будет создан новый журнал изменений, и файлы в вашем списке изменений по умолчанию будут отложены в него; в случае p4 unshelve это означает, что отложенные файлы из вашего списка изменений будут удалены в другой список изменений по умолчанию.

Ответ 5

Perforce 2016, osx. Diff для ожидающего списка изменений:

mac:src user$ cl=123456 && p4 diff -du $( p4 files @=$cl | sed s/#.*// ) > $cl.diff

вывод: 123456.diff

Применение патча:

mac:src user$ patch -p0 < 123456.diff