Слияние двух ветвей 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.
НТН