Слияние двух веток TFS с git tfs - PullRequest
14 голосов
/ 19 декабря 2011

Я использую git-tfs, и мне было интересно, возможно ли объединить две ветви TFS, используя git-tfs.У меня есть две ветви $ / MyCompany / Dev & $ / MyCompany / Release-3.3.Релиз-3.3 происходит из ветки Dev.Оба проверены как разные репозитории git с использованием git tfs.

Я бы хотел снова включить изменения в ветку Dev.Может ли это быть достигнуто с помощью git-tfs или мне придется прибегнуть к попыткам сделать это с помощью инструментов TFS?

Ответы [ 3 ]

10 голосов
/ 06 декабря 2012

Начиная с git-tfs 0.16, вы можете управлять ветками TFS (с помощью команды branch), так что теперь вы можете легко инициировать существующую ветку, создавать ее и объединять ветви TFS!

https://github.com/git-tfs/git-tfs/blob/master/doc/commands/branch.md#initialize-an-existing-tfs-branch

И начиная с версии 0.19, вы можете выполнить git-слияние из 2 веток TFS и зарегистрировать его в TFS (с помощью rcheckin), и оно будет проверено как набор изменений слияния: https://github.com/git-tfs/git-tfs/blob/master/doc/commands/rcheckin.md#checkin-a-merge-changeset

Единственное ограничение(из-за TFS) заключается в том, что все коммиты должны были уже проверяться в TFS перед выполнением слияния с git и проверять его в TFS.

Таким образом, теперь вы можете объединяться легче, чем с ветками 2TFS, и проверять их в...

6 голосов
/ 07 февраля 2012

Я нашел отличный способ сделать это. Git tfs управляет знанием областей TFS с помощью git config. В частности, 3 атрибута на remote; URL, хранилище и выборка, например:

tfs-remote.default.url=http://tfsserver:8080/tfs/collection
tfs-remote.default.repository=$/Product/Branch/Component
tfs-remote.default.fetch=refs/remotes/default/master

Вы можете добавить еще remote, снова установив эти 3 свойства с другим именем на default. Например:

tfs-remote.feature_branch.url=http://tfsserver:8080/tfs/collection
tfs-remote.feature_branch.repository=$/Product/FeatureBranch/Component
tfs-remote.feature_branch.fetch=refs/remotes/default/feature_branch

Возможно, вам потребуется выдать git tfs bootstrap сейчас.

Затем вы можете выдать:

git tfs fetch -i feature_branch

Затем объедините коммиты, используя:

git merge tfs/feature_branch
0 голосов
/ 09 января 2012

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

HTH

...