上下文
- 我们有一个带有发布分支的 git 存储库。
- 我们有一个 TFS 存储库(当前为空)。
我的任务是将 git repo 的发布分支镜像到 TFS 中,以便 git 中的每个提交都映射到 TFS 中的变更集。所有开发人员都只承诺使用 git 并且(假设)不知道 TFS。
阅读rcheckin 的文档以及对这个相关问题的回答让我相信 rcheckin 能够做到这一点。
问题
git 中的所有提交都被压缩到一个单一的变更集中。
繁殖顺序:
git tfs clone http://tfs:8080 $/tfsrepo
cd tfsrepo
git remote add github git@github.com:REPO/Repo.git
git fetch github
git merge github/release
git tfs rcheckin
这会导致单次签入包含所有提交的 TFS。
解决问题的其他尝试
克隆后,从源(git)repo 中合并第一个提交,rcheckin 以创建共享库
- 这有效,但随后
git pull github release
导致git-tfs rcheckin
再次提交压缩。
- 这有效,但随后
对于原始存储库中的前几个提交,我将它们一个接一个地合并到 git-tfs 共享存储库中,并在每个提交后重新检查。
- 这种方法很有效,对于每次提交,TFS 中都有一个变更集。但是,原始提交消息位于“merged c02436de4f..”消息下方。
- 对每个变更集都进行处理是不现实的,即使使用脚本也是如此。
- 正如patthoyts所指出的,就 TFS 而言,这将使我成为该更改的提交者。
我的问题
我需要做些什么来使 TFS 与 git-repo 的发布分支保持最新,以便 git 中的每个提交都有相应的 TFS 变更集?
附加信息
我确实对这两个 repos 有管理控制权,如果有必要,我可以重新设置 git repo 的基础,这意味着所有后果。我只是不想失去我们已经创造的历史。