Подтвердить что ты не робот

Может ли кто-нибудь объяснить параметры интеграции с perforce?

В частности:

  • Почему мне нужно явно включить "Включить необоснованные слияния" все время? Я интегрируюсь из своей ветки в туловище.

  • Что означает "Включить интеграцию удаленные цели "означает? делаете это по умолчанию? Если файл не существует, и вы интегрируете эта ветка с файлом, она должна создайте файл, правильно?

  • Что означает "Не получать последнюю версию выбранных файлов "имеют отношение к интеграции? Я должен выбрать исходную версию и целевую создать новую целевую ревизию).

  • Что означает "игнорировать косвенные история интеграции "означает? Я никогда не использовал его, поскольку это звучит страшно.

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

4b9b3361

Ответ 1

  • В общем, чтобы объединить два файла, perforce ищет "базовую", самую близкую ревизию к этим двум файлам, и использует это, чтобы обеспечить гораздо лучшую разницу, чем просто прямое выполнение двух файлов. См. Статья базы знаний. Не зная вашу настройку perforce, я не мог сказать, что происходит не так, однако у p4win есть интересные графические инструменты для визуализации ветвей, вы можете определить, почему perforce не может найти базу для вас. Это также то, что делает "Отказ от истории косвенной интеграции": останавливает ее от поиска базы.

  • Для "не синхронизировать с головой": при интеграции ваша "цель" - это файлы вашего локального клиента, на которые вы не указываете ревизию; вместо этого perforce будет либо синхронизировать вашу ревизию (если вы не используете "-h" ), либо будете использовать тот, который у вас есть. Вы не можете указать произвольную ревизию, потому что у вашего локального клиента есть только один.

Ответ 2

Почему мне нужно явно разрешать "Включить необоснованные слияния" все время? Я интегрирую свою ветку в Ствол.

Не могу помочь вам здесь. Что-то не так.

Что означает "Включить интеграцию удаленные цели" означает?

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

Не следует ли это делать по умолчанию?

Нет, если вы интегрируете файл обратно в туловище, из которого вы разветвляетесь от соединительной линии, а затем удаляете его по стволу. Обычно "p4 integrate" позволяет избежать смешения выдающихся изменений с удаленным файлом. Вы должны использовать расширенные параметры, чтобы сообщить, как обращаться с удаленным файлом.

Если файл не существует, и вы интегрировать в эту ветвь с помощью файл, он должен создать файл, не так ли?

При интеграции файла, который ранее никогда не существовал (т.е. он был добавлен в ветку), из одного места в другое, да, Perforce просто создаст его в том месте, в которое вы интегрируетесь. Однако, если файл изначально появился из соединительной линии, был удален на соединительной линии, и теперь вы пытаетесь интегрировать его обратно в соединительную линию из ветки, вы должны сказать, что делать через эти параметры интеграции. Здесь командной строке переключаются, на которые соответствуют эти параметры:

  • Включить интеграцию вокруг удаленных версий = -d
  • Интегрировать по удаленным целям = -Dt
  • Удалить целевой файл при удалении источника = -Ds
  • Попробуйте интегрировать изменения при удалении источника и повторном добавлении = -Di

Вы можете узнать больше о них в помощи справки по интеграции (введите "p4 help integrate" в командной строке).

Что означает "Не получать последнюю версию выбранных файлов" имеют отношение к интеграции?

Это говорит Perforce использовать ревизию рабочего пространства целевого файла. По умолчанию головная ревизия целевого файла автоматически извлекается в рабочее пространство до его интеграции. Скажем, вы сделали одну ревизию файла ветки и интегрировали ее обратно в багажник. У сундука и ветки теперь есть две версии этого файла. Вы отправляете изменение в файл ветки, так что теперь он имеет 3 ревизии. Вы синхронизируете файл ветки обратно в ревизию 2. Если вы должны были выполнить обычную интеграцию прямо сейчас, Perforce предположил бы, что вы хотите интегрировать все до пересмотра главы и интегрировать ревизию 3 файла ветки в туловище. Если бы вы выбрали этот вариант, он сказал бы: "все ревизии уже интегрированы", потому что у вас есть ревизия 2 в вашей рабочей области. Это было бы так же, как попытка интегрироваться с опцией "Ограничить диапазон интеграции:", установленной в "Интегрировать все ревизии до:" Редакция 2.

Что означает "игнорировать косвенные история интеграции" означает? использовал его, поскольку это звучит страшно.

Я не могу понять и не найти информацию о том, что это делает.

Ответ 3

"Включить интеграцию по удаленным целям" может привести к проблемам, если сделать это вслепую. Вот пример: представьте, что вы реорганизуете свой код в следующей ветке выпуска, и в результате удалите исходный файл - функциональность была объединена в некоторые другие исходные файлы. Затем вы исправляете ошибку в исходном исходном файле в ветке обслуживания для предыдущей версии. Если вы по умолчанию интегрируете удаление, возвращается мертвый исходный файл, но он не будет создан, и ошибка не будет исправлена. Лучше предупредить, что это произошло, поэтому вы можете вручную объединить исправление в другие исходные файлы.