Автоматическое объединение ClearCase удаляет код членов команды - PullRequest
1 голос
/ 23 ноября 2011

Мы используем ClearCase, используя один поток разработки для нашей команды, без «блокировки» (незарезервированные проверки).

Версия клиента ClearCase: 7.1.1 Версия сервера ClearCase: 7.0.1.2

Мы выполнили тот же тест, не используя «Графическое слияние». Этот вариант работал как положено! Может быть, это может пролить свет на прошлые дефекты ClearCase или обходные пути.

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

Мы видели несколько случаев странного поведения и немного экспериментировали сегодня, чтобы найти следующий сценарий, который имеет место:

  1. File.txt проверено 2 членами команды.
  2. Каждый элемент вносит изменения в файл (в других областях файла).
  3. Первый разработчик проверяет код в ClearCase, здесь нет проблем.
  4. Второй разработчик регистрируется, получает всплывающее уведомление о слиянии.

При выборе «графического слияния» ClearCase в этом случае сообщает, что все слияния были выполнены автоматически и от разработчика не требуется никаких дополнительных данных.

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

Почему это происходит? Это приводит к тому, что наша команда уже несколько раз теряет код. Мы делаем что-то небезопасное / неправильное?

Редактировать: иллюстрирование проблемы с изображениями вопроса:

Файл Manager.cs находится на версии 27. Два разработчика проверяют это.

Один внес изменения, зарегистрировался. Другой регистрируется, получает уведомление о слиянии.

Вот что я вижу в графическом слиянии:

Обратите внимание, что слева - версия 27, в средней версии 28 (последняя проверенная версия), а справа - результат, который отбрасывает изменение кода версии 28!

Почему это происходит автоматически ??

Merge

Изображение также можно увидеть здесь: Изображение

1 Ответ

1 голос
/ 23 ноября 2011

Примечание: если вы используете ClearCase без «блокировки», это означает, что вы делаете незарезервированные проверки (и не зарезервированные проверки).

Если вы выберете «графическое объединение», вы должны увидеть Windows, помогающую вамчтобы согласовать слияние, даже если нет конфликта.

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

Для ваших прошлых проблемных слияний вы можете легко из дерева версий повторно применить слияние из предыдущей версии dev1 кПОСЛЕДНЯЯ версия, чтобы повторно применить эти отмененные изменения.


Со времени моего первоначального ответа 4 дня назад появилась 2 новая информация:

  • Версия клиента ClearCase: 7.1.1 Версия сервера ClearCase: 7.0.1.2.
    Никогда не стоит иметь клиента с версией более поздней , чем сервер.

  • Мы провели тот же тест, не используя «Графическое слияние».Эта опция работала как ожидалось!
    Это согласуется с некоторыми несоответствиями, уже замеченными между графическим интерфейсом для слияния и чистой командной строкой (как в этот другой сценарий ).
    При сбое графического интерфейса,всегда пытайтесь использовать чистый интерфейс командной строки.

...