TFS Discard не работает на откате изменений - PullRequest
3 голосов
/ 17 сентября 2011

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

Что нам остается, так это то, что всякий раз, когда мы хотим обновить ветку с недавней работой, она пытается объединить наборы изменений отката, которые нам не нужны.

Я пытался использовать команду / discard из командной строки TFS, но получаю сообщение «Нет изменений для слияния». Вот мой синтаксис ниже:

D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

Я даже попытался переключить источник и пункт назначения безрезультатно:)

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

Кто-нибудь имеет опыт работы с командой сброса и почему она может не работать здесь?

Спасибо за ваши предложения

Ответы [ 2 ]

1 голос
/ 06 июля 2013

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

D:\Projects\Big Project\Trunk>tf merge /discard /version:C28350~C28350 /recursive /baseless "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

1 голос
/ 05 октября 2011

При чтении tf rollback MSDN опция /keepmergehistory есть именно для этих сценариев.(См. Соответствующий пример в конце справочного документа).

Ваш сценарий отличается, вот шаги, которые я бы выполнил (командная строка пропущена):

tf merge /version:C28350~C28350 /recursive "D:\Projects\Big Project\Trunk" "D:\Projects\Big Project\Branch"

tf checkin /recursive "D:\Projects\Big Project\Branch"

tf rollback /version:XXXX /recursive /keepmergehistory "D:\Projects\Big Project\Branch"

Комментарии ошаги:

  1. Без опции /discard

  2. Проверьте это изменение, даже если оно вас не интересует;запишите номер набора изменений для XXXX на следующем шаге ...

  3. Теперь откатите это конкретное изменение и используйте /keepmergehistory, чтобы TFS больше никогда не спрашивала вас о слиянии этогоизменить.

В качестве альтернативы, вы можете откатить откат в транке, а затем повторно применить с этим флагом - но я не уверен, что /keepmergehistory работает в обоих направлениях.здесь идет: (не уверен, что я поставил параметры там правильно ...)

tf rollback /version:C28350 /toversion:C28349 /recursive "D:\Projects\Big Project\Trunk"

tf rollback /version:XXXX /toversion:XXXX-1 /recursive /keepmergehistory "D:\Projects\Big Project\Trunk"

Надеюсь, это поможет: -)

...