Я новичок в Perforce и только начал его использовать. После синхронизации моего кода с помощью команды $ p4 sync я начал редактировать несколько файлов.
Эти файлы добавлялись в мой список изменений по умолчанию. Для сотрудничества с моей командой я хотел создать список изменений. Для создания списка изменений я выполнил $ p4 change и удалил "file1" из описания списка изменений. Теперь, когда я запускаю, $ p4 открывается. Это дает результат, аналогичный этому.
Теперь у меня в голове следующие вопросы:
Будет здорово, если кто-то сможет подробно ответить на эти вопросы. Любые советы по использованию Perforce также будут большим подспорьем.
Заранее спасибо.
Я рекомендую руководство по Perforce - это Руководство пользователя Perforce. Вот раздел списков изменений:
Which changelist am i currently working on is it default or 111 ??
Оба! Оба они ожидают обработки списков изменений в вашем рабочем пространстве.
what is the meaning of (text+k)?
В скобках указано «тип файла». +k
- это «модификатор типа файла», означающий, что ключевые слова (специальные слова, такие как $Id$
, $Revision$
и $Author$
в этом файле, будут автоматически расширены до соответствующих значений при отправке.
When i make changes to file2 and file3 it is getting synced to changelist 111 and when i make changes to file1 it gets synced to default changelist . I am highly confused how is this happening ?
Пока еще ничего не «синхронизируется» - ожидающие обработки списки изменений - это просто контейнеры, которые ссылаются на разные файлы. Когда вы используете shelve
или submit
, тогда, файлы, связанные с этими списками изменений, будут отправлены на сервер и будут доступны другим клиентам. Поскольку shelve
и submit
являются операциями на уровне списков изменений, затрагиваются только файлы в этих списках изменений - в этом смысл наличия разных ожидающих списков изменений. У вас есть все ожидающие файлы в вашей рабочей области, но вы можете разделить, какие из них отправляются на сервер и в какое время (это немного похоже на отправку разных веток в git, но нет - вы можете делать это для каждой операции в Perforce. даже если вы не выполняете ветвление, потому что каждый файл версируется индивидуально, а не все дерево версируется как один атомарный большой двоичный объект).
Also one more thing i am confused about is if do $p4 shelve will my changes disappear and will be reapplied only when i run unshelve command for the changelist created ?? Is this similar to git stash and git stash apply ?
Нет, p4 shelve
синхронизирует только отложенные изменения на сервере с локальными файлами в вашем рабочем пространстве - сам по себе он не изменяет ваше рабочее пространство. Эквивалент «спрятать» был бы для p4 shelve
, а затем для p4 revert
, чтобы стереть изменения рабочего пространства. shelve
сам по себе немного больше похож на передачу git push
в ветку - вы сохраняете свою локальную копию, но теперь она также находится на сервере (но не является частью «главной» истории). (Хотя это не совсем то же самое - честно говоря, если вы новичок в Perforce, я бы придерживался обычного старого «submit» в обычной старой ветке, поскольку это основной рабочий процесс. Совместное использование работы через полки требует гораздо большего количества ручного управления работают, поскольку каждая полка похожа на свою небольшую мини-ветку без управления версиями.)