我们有一个本地DevOps Server 2019,里面有我们的旧项目,我可以用git-tfs将这些项目克隆到本地git存储库。一切都很好。之后,我可以将这些存储库推送到我们的AzureDevOps Git存储库。一切正常。
现在,我们有一些项目和同事希望将TFVC用于这些特殊项目。所以我的想法是将这些项目从本地TFS克隆到Git,然后使用Git-TFS-rcheckin将其推送到我们的AzureDevOps项目中。
但当我使用"git-fts-rcheckin-remote-azuretfs"时,我得到了错误:最新的TFS提交应该是中检查的提交的父级
当我使用"git-tfs-checin-remote-azuretfs"时,所有文件都会上传到AzureDevOps项目,但没有历史记录。
有人能描述一下我要做什么吗?
注意:我不想使用微软提供的迁移工具,因为在验证工作项模板等过程中出现了许多错误。(我们不使用它…(
对于那些正在寻找相同内容的人:
使用"旧"git-tf工具(https://archive.codeplex.com/?p=gittf)您可以将旧的TFVC项目迁移到Azure DevOps(TVFC(。
如果你想将旧的TFVC项目迁移到AzureDevOps(GIT(,你应该使用GIT-tfs(http://git-tfs.com/)
在没有成功保证的情况下,你可以尝试什么。。。
注意:正如我所说,您将只能从一个分支迁移历史记录。
- 在TFVC中创建要放置源代码的文件夹/项目
- 使用
git tfs clone
迁移此文件夹(使用rcheckin
所需的git-tfs元数据进行git提交( - 将已经迁移的历史存储库(我们称之为
RepoWithHistory
(作为本地远程存储库添加到这个新存储库中(我们称其为NewRepo
(。和git fetch
- 只为来自
RepoWithHistory
的提交清除元数据,内容如下:git filter-branch -f --msg-filter "sed 's/^git-tfs-id:.*$//g'" -- --all
。但是要注意保持来自NewRepo
的提交的元数据 - 使用
git replace --graft <sha1_of_first_commit_of_RepoWithHistory> <sha1_of_last_commit_of_NewRepo>
移植两个历史记录(历史记录必须位于新历史记录的顶部( - 使用
git rcheckin --no-merge
将历史迁移到TFVC(这将很长…(
我希望它会有所帮助。
PS:也许你应该试着在一小部分提交中进行,以便在真正的TFVC项目中进行之前能够验证它是否有效。