Как я могу поручить Perforce объединиться, а не перезаписывать или возвращать при удалении файла?

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

Ответы

Ответ 1

То, что я обычно делаю, это щелкнуть правой кнопкой мыши по отложенному файлу и выбрать "Diff Against Workspace File". Когда вы открываете инструмент Diff, вы можете выбрать кнопку на панели инструментов, чтобы "Редактировать файл в правой панели". Это, по сути, начинается с двухсторонним слиянием. С каждой разницей вы можете выбрать изменения, которые вы хотите отложенного файла (по умолчанию выбраны различия из файла рабочей области).

Однако было бы неплохо, если бы Perforce добавила функцию слияния, чтобы сделать это более автоматически.

Изменить для добавления: Perforce теперь имеет встроенную возможность объединять файлы при сбое. Если пользователь удаляет файл, который также выгружен, и "Отменить извлеченные файлы перед удалением" не установлен, Perforce отметит этот файл для разрешения. Я просмотрел заметки о выпуске и не смог найти, в какой версии была добавлена ​​эта возможность, но на основе этой ссылка (см. Ниже нижней части p4 unshelve description), он был добавлен не позднее 2012 года.

Отредактировано снова, чтобы добавить: Эта функция была добавлена ​​в релиз 2011.1 сервера. Здесь примечание к выпуску:

#299614 (Bug #38221, #39099) **
    Unshelving a file opened for edit over a file already opened
    for edit in the workspace is now allowed. A resolve record is
    created when unshelving, and the user must then run 'p4 resolve'
    to resolve the workspace files with the shelved files.

Ответ 2

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