Каким образом можно реорганизовать один файл в несколько файлов и сохранить историю версий в Perforce?

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

Я добавляю два новых файла и удаляю оригинал в этом случае, но я ожидаю, что там будет какое-то общее решение этой проблемы.

Я думаю, что самым простым случаем было бы добавить один новый файл, который содержит подмножество содержимого оригинала, и удалить этот контент из исходного файла, но оставить его на месте (в любом случае, тривиально удалить его позже).

Было бы лучше, если бы операция могла быть выполнена в одном списке изменений, чтобы избежать каких-либо проверок, которые нарушили бы сборку.

Ответ 1

Это невозможно сделать при одной проверке, но это может быть сделано без "взлома сборки". Скажем, вы хотите разделить bigFile.cs на smallFile1.cs и smallFile2.cs. Сначала включите большой файл в два маленьких файла и отправьте их.

p4 integrate bigFile.cs smallFile1.cs
p4 integrate bigFile.cs smallFile2.cs
p4 submit

Теперь у вас есть два дополнительных файла в каталоге проектов, но они не навредят. Теперь просмотрите smallFile1.cs и smallFile2.cs и ваши файлы проектов. Добавьте ссылки на файлы меньшего размера, удалите ссылку на большой, отредактируйте маленькие файлы соответственно и т.д. Наконец, отметьте bigFile.cs для удаления и отправьте свои изменения.

Теперь вы разделили свой большой файл на два меньших файла, а история с меньшими файлами покажет вам их большое количество файлов.

Ответ 2

Вы можете использовать команду integrate.

Когда вы внесли изменения в файл которые должны быть распространены на другую файл, запустите процесс с помощью p4 интеграции.

Упрощенная форма команды будет

p4 integrate fromFile toFile

Поэтому я бы выполнил следующие задачи:

  • запустить p4 интегрировать с toFile, являющимся новым файлом, а fromFile - большим, оригинальным файлом
  • p4 submit
  • p4 отредактируйте как fromFile, так и toFile, чтобы быть меньшими версиями оригинала.
  • p4 submit

С помощью этого метода информация о истории файлов хранится в такте для всех будущих версий файлов.

Ответ 3

Это можно сделать с помощью одной проверки. Эти шаги заключаются в следующем:

  • интегрировать из исходного файла в оба целевых файла, так как ворон и Скотт Саад предлагают
  • перед отправкой новых файлов выполните p4 edit в обоих файлах
  • внести изменения
  • p4 submit

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

Мне кажется, я немного предпочитаю процесс двух проверок.