Perforce Track Deltas уникален для изменений или просто хранить весь файл?

StackOverflow https://stackoverflow.com/questions/4272022

  •  28-09-2019
  •  | 
  •  

Вопрос

Я пытался объединить некоторую работу, что разработчик сделал в рабочей ветви к стабильной ветви. Файлы A, B и C были изменены, по меньшей мере, десятка изменений, поскольку общий предком устойчивых и ветвей головы был отделен.

Я ожидал, что, поскольку этот разработчик изменил пять строк в каждом файле A, B, и C, что, когда я интегрировал с головы в стабильную ветку, я бы получил его изменения в своем ожидании ChangeSet, который я мог затем просмотреть и совершать.

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

Другими словами, кажется, нет записи в изменении Perforce, из того, что мой коллега фактически изменился, по сравнению с каким файлом перед содержанием.

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

Разве изменение не означает, «набор изменений, выполненных между Rev X и Revision X + 1 файла»? Может кто-нибудь помочь мне понять, что значит «интегрировать изменения», когда на самом деле, то, кажется, что Perforce не отслеживает изменения, он отслеживает файлы.

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

Это было полезно?

Решение

Перфорация делает Сохранить изменения в текст Файлы в качестве Deltas (двоичные файлы сохраняются в полной мере каждый раз, когда подано изменение). Похоже, вы не правильно ограничиваете диапазон редакции во время вашей интеграции.

Вы говорите, что рабочая ветка имеет «... было изменено по крайней мере десяток изменений, поскольку ... ветви были разделены». Давайте назовем их Changelists 1-12. Если я правильно понимаю, вы пытаетесь интегрировать модификации, сделанные только в одном из этих шансов, не все их.

Во время простой интеграционной операции Perforce будет предполагать, что вы хотите интегрировать все изменения, которые были представлены, поскольку филиал был сделан. Если вы хотите только подмножество этих изменений, вы должны указать диапазон редакции. Таким образом, если вы просто хотите интегрировать изменения, произошедшие между Changelist 11 и 12, вы укажете этот диапазон редакции, как показано на захвате экрана. (Примечание. Диапазон редакции включается, поэтому указывая диапазон 11-12, так как я делаю в этом экране, на самом деле будет включать изменения в Changelists 11 а также 12. Если вы просто хотите интегрировать изменения, выполненные в Changelist 12, введите 12 в обоих полях диапазона редакции.)

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

alt text

Другие советы

Не могли бы вы быть более конкретным на том, как вы сделали интеграцию? Я предполагаю, что вы, вероятно, наверняка интегрировали все изменения в этот шанслист, а не только этот шанфлист. Если все, что вам нужно сделать, это указать один и тот же Changelist, что и верхний, так и нижний предел интеграции.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top