Слияние двух ветвей TFS с git tfs

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

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

Ответы

Ответ 1

Я нашел потрясающий, если взломанный способ сделать это. 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

Ответ 2

Так как 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 слияние двух ветвей 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, и проверить их в...

Ответ 3

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

НТН