Может кто-нибудь объяснить варианты интеграции производительности? - PullRequest
23 голосов
/ 29 мая 2009

В частности:

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

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

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

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

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

Ответы [ 3 ]

9 голосов
/ 30 мая 2009

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

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

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

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

Разве это не должно делать это по умолчанию?

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

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

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

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

Подробнее о них вы можете узнать из справки по командам интегрирования (введите «p4 help integrate» в командной строке).

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

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

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

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

8 голосов
/ 29 мая 2009
  1. Как правило, для объединения двух файлов Perforce ищет «базу», ближайшую ревизию к двум файлам, и использует ее для обеспечения гораздо лучшего сравнения, чем просто прямое выполнение сравнения двух файлов. См. Статья базы знаний . Не зная ваших настроек исполнения, я не мог бы сказать, что происходило неправильно, однако в p4win есть несколько хороших графических инструментов для визуализации веток, и вы могли бы определить, почему Perforce не может найти для вас базу. Это также то, что делает «Игнорировать историю косвенной интеграции»: останавливает поиск базы.

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

2 голосов
/ 29 мая 2009

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

...