Могу ли я открыть другую ветку в tfs 2008?



предположим, что какой-то разработчик в моей команде отложил свои изменения, которые он сделал в ветке A. и я работаю над веткой B. могу ли я отменить его изменения в ветке B? (С помощью графического интерфейса или командной строки)

607   4  

4 ответов:

The Visual Studio Power Tools должен позволить вам сделать это.

C:\src\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes

Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.

Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
                     [/migrate /source:serverpath /target:serverpath]

 shelvesetname          The name of the shelveset to unshelve
 /nobackup              Skip the creation of a backup shelveset
 /migrate               Rewrite the server paths of the shelved items
                        (for example to unshelve into another branch)
 /source:serverpath     Source location for path rewrite (supply with /migrate)
 /target:serverpath     Target location for path rewrite (supply with /migrate)
 /nobackup              Skip the creation of a backup shelveset

например, чтобы объединить набор полок под названием "Имя набора полок", созданный на Branch1 в Branch2, используйте следующее:

>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"

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

проблема с электроинструментом tfs заключается в том, что вы делаете "безосновательное слияние", поэтому должны подтвердить каждый файл. У меня был набор из более чем 800 файлов, и я никогда не доверял кнопке "auto merge" и не хотел проходить через каждый файл по очереди - поэтому мне пришлось найти другой способ!

  • Загрузите и установите TFS Shelveset Sidekick.
  • инструмент появляется в разделе "Инструменты" в VS2010
  • запустить инструмент набора кореша, нажмите кнопку поиска, чтобы показать отложенных изменений
  • щелкните правой кнопкой мыши на вашем наборе полок и выберите "Экспорт набора полок"
  • сохранить в пустое место, например C:\temp\shelveset-name
  • теперь есть полная структура каталогов, содержащая только новые файлы

(Примечание: нет индикатора выполнения при экспорте-так что если у вас есть большой набор полок, который принимает долгое время для экспорта вам просто нужно будет проверить в Проводнике Windows (файл>свойства>размер), что файлы все еще падают, если вы думаете, что они заморожены).

теперь вам просто нужно скопировать их в новую ветку с помощью Проводника Windows.

это сработало для меня:

  • сначала проверьте все решение (в новой ветке)
  • закройте это решение
  • взять ТФС в автономном режиме в ВС (инструмент для этого) - ниже почему это важно...
  • копирование файлов в Проводнике Windows. Структура каталогов в c:\temp\shelveset-name придется переименовать, чтобы соответствовать новой ветке. совет: убедитесь, что вы копируете в нужное место!!!
  • принесите против онлайн
  • он должен найти все изменения и добавить новые файлы
  • если он просит вас привязать sourcecontrol убедитесь, что путь является правильным для нового отделение.
  • тест - а затем проверка новых файлов

важно: я обнаружил, что если вы сначала не возьмете TFS в автономном режиме, то вы получите любые новые файлы (из вашего набора изменений unshelves), отображаемые без маленькой красной галочки, и вам придется исключить и включить их снова, чтобы добавить их. Если у кого есть альтернативное решение этой проблемы, я хотел бы знать, - обновление не работает.

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

EDIT: Ну, я думаю, что я делал это трудный путь. Мне придется попробовать решение Курта. :)

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

ошибка:

не удается определить рабочую область

эта конкретная проблема была решена, выполнив команду источник корневая папка филиала. Это противоречит некоторым ответам на SO, где они говорят использовать" целевую " ветку-нет, используйте "источник":

cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

второй вопрос появился после этого. Кажется, что он не может подключиться к серверу TFS. То, что я понял, у меня есть несколько VS, установленных и подключенных к разным серверам TFS. Я использовал VS12, и у меня было рабочее пространство и подключение к серверу. Но я не понимал, что одно и то же соединение должно быть реплицировано в VS13 для работы TFPT2013. Он подключается к тому же серверу и рабочей области.

Я также попытался сделать это с помощью TFPT2015, но я установил его, и он не установил TFPT.exe, следовательно, это было бесполезно. Поэтому я попробовал от TFPT2013 до TFS2015, и это сработало для этой конкретной команды. Интересно, почему бы и нет, если VS12/13 отлично работает против TFS2015?

подведем итоги

  • использовать CMD или DevCMD-не имеет значения
  • выполнить команду из источник корневая папка филиала
  • проверьте соединение с сервером Team Explorer для конкретного VS
  • TF Power Tools 2013 работает против TFS v15, at по крайней мере migrate опция работает

Comments

    Ничего не найдено.