Вопрос

У меня есть файл в RTC (назовем его foo.c), который я изменил и включил в набор изменений (CS1), а также некоторые другие изменения.Затем я снова изменил этот файл и включил его в другой набор изменений (CS2) вместе с другими изменениями.

Я столкнулся с ситуацией, когда хочу доставить CS2 в поток, но RTC выдает ошибку, что доставка создаст разрыв в потоке (из-за изменения CS1).Я не хочу доставлять все CS1 тем не менее, поскольку он содержит некоторые изменения, которых еще не должно быть в сборке.Исходное изменение на foo.c в CS1 было незначительное удаление #include, и больше ни на что не влияет.

Есть ли способ устранить этот пробел?

В документации RTC я вижу кое-что о применении патчей, но не понимаю, к чему это приведет.
Есть ли способ разделить набор изменений на несколько наборов изменений, что позволило бы мне доставить только один файл?

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

Решение

Обновление с 2012 года (и исходный «обходной путь» доставки всего и возврата того, что вам не нужно):

Видеть эта тема:

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

В очень кратком описании этой функции можно сказать, что при принятии наборов изменений с пробелами теперь вы можете следовать рабочему процессу, который принимает по одному набору изменений за раз, а для наборов изменений, содержащих пробелы, создает новый набор изменений (с помощью трассируемость), который содержит эквивалентные изменения.
Это означает, что пользователям не придется принимать наборы изменений «как патч».

Применение наборов изменений в виде патчей имеет ограничения по сравнению с новым рабочим процессом.
Эта особенность обобщена в Страница RTC 4.0.5 «Новое и заслуживающее внимания».

Ниже приведены несколько видеороликов, демонстрирующих эту функцию:

Это Найдите наборы изменений особенность:

https://jazz.net/downloads/pages/rational-team-concert/4.0.5/4.0.5/images/gapeditor.png


В RTC 5.0 мы добавили функцию «заполнить пробел», при которой пользователю показываются наборы изменений, заполняющие пробел, что позволяет ему либо принять все наборы изменений, либо продолжить рабочий процесс, который был доступен в RTC 4.0.5. .

Эта особенность обобщена в Страница RTC 5.0 «Новое и заслуживающее внимания»:

Классы, задействованные для заполнения этого пробела, включают (доступны в RTC 5.0):

client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...) 
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...) 

Обе функции подробно описаны в разделе «Улучшенная обработка пробелов для SCM" статья.

https://jazz.net/downloads/pages/rational-team-concert/5.0/5.0/images/missing-change-sets-dialog.png


Оригинальный ответ (2012 г.)

Есть ли способ разделить набор изменений?

Я так не думаю, читая справочная страница набора изменений:

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

Наличие foo.c в CS1 и CS2 означает, что CS1 «завершен» (по сути, заморожен), и было бы плохо пытаться его разделить.

Патч-решение означает:

  • отмена CS1
  • добавление дополнительных изменений в foo.c в CS2
  • повторение изменений CS1

Видеть "Как удалить набор изменений из потока?"

Рассказ 149483 Речь идет об усовершенствовании этого громоздкого рабочего процесса, а также улучшается обнаружение пробелов (Улучшение 24822)


А ОП Тимвой заключает:

В итоге я просто доставил все это, а затем отменил то, что мне не нужно..

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

Проблема:CS1 меняет foo.c, CS2 дополнительно меняет foo.c.Вы хотите предоставить только CS2, но RTC сообщает вам, что это приведет к появлению пробелов.

Решение:Создайте патч для CS2 и приостановите CS1 и CS2.Затем примените патч, объедините его с вашим рабочим пространством и зарегистрируйте изменения, которые создадут еще один набор изменений, CS3, идентичный CS2, но не зависящий от CS1.Теперь вы можете доставить CS3.

После доставки CS3 вы можете отказаться от CS2 и возобновить CS1, что потребует слияния с CS3.

Тогда вы должны оказаться в состоянии, когда CS1 основан на CS3, и вы можете выбрать, выпускать ли CS1 в будущем.

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