使用 git-tfs 将 GIT 克隆到 TFS (AzureDevOps)
Clone GIT to TFS (AzureDevOps) with git-tfs
我们有一个本地 DevOps Server 2019 和我们的旧项目,我可以使用 git-tfs 将这个项目克隆到本地 Git 存储库。一切都好。之后我可以将这个存储库推送到我们的 AzureDevOps Git 存储库。一切正常。
现在我们有一些项目和同事想在这些特殊项目中使用TFVC。所以我的想法是将这些项目从本地 TFS 克隆到 Git,然后使用 git-tfs rcheckin 将其推送到我们的 AzureDevOps 项目。
但是当我使用 "git-fts rcheckin --remote azuretfs" 我得到 "error: latest TFS commit should be parent of commits being checked in"
当我使用 "git-tfs checin --remote azuretfs" 时,所有文件都上传到 AzureDevOps 项目但没有历史记录。
所以谁能描述一下我必须做什么?
注意:我不想使用 Microsoft 提供的 MigrationTool,因为在验证工作项模板等期间有很多错误(我们不使用它...)
你可以在没有成功保证的情况下尝试什么...
注意:正如我所说,您只能从一个分支迁移历史记录。
- 在要放置源代码的 TFVC 中创建 folder/project。
- 使用
git tfs clone
迁移此文件夹(以 git 提交 rcheckin
所需的 git-tfs 元数据)
- 将已迁移的历史存储库(我们称之为
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>
嫁接2个历史(历史必须在新历史之上)
- 使用
git rcheckin --no-merge
将历史迁移到TFVC(那会很长...)
希望对您有所帮助。
PS:也许您应该尝试在一小部分提交上执行此操作,以便能够在真正的 TFVC 项目中执行此操作之前验证它是否有效。
对于那些正在寻找相同的人:
使用 'old' git tf 工具 (https://archive.codeplex.com/?p=gittf) 您可以将旧的 TFVC 项目迁移到 Azure DevOps(TVFC)。
如果您想将旧的 TFVC 项目迁移到 AzureDevOps(GIT),您应该使用 git tfs (http://git-tfs.com/)
我们有一个本地 DevOps Server 2019 和我们的旧项目,我可以使用 git-tfs 将这个项目克隆到本地 Git 存储库。一切都好。之后我可以将这个存储库推送到我们的 AzureDevOps Git 存储库。一切正常。
现在我们有一些项目和同事想在这些特殊项目中使用TFVC。所以我的想法是将这些项目从本地 TFS 克隆到 Git,然后使用 git-tfs rcheckin 将其推送到我们的 AzureDevOps 项目。
但是当我使用 "git-fts rcheckin --remote azuretfs" 我得到 "error: latest TFS commit should be parent of commits being checked in"
当我使用 "git-tfs checin --remote azuretfs" 时,所有文件都上传到 AzureDevOps 项目但没有历史记录。
所以谁能描述一下我必须做什么?
注意:我不想使用 Microsoft 提供的 MigrationTool,因为在验证工作项模板等期间有很多错误(我们不使用它...)
你可以在没有成功保证的情况下尝试什么...
注意:正如我所说,您只能从一个分支迁移历史记录。
- 在要放置源代码的 TFVC 中创建 folder/project。
- 使用
git tfs clone
迁移此文件夹(以 git 提交rcheckin
所需的 git-tfs 元数据) - 将已迁移的历史存储库(我们称之为
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>
嫁接2个历史(历史必须在新历史之上) - 使用
git rcheckin --no-merge
将历史迁移到TFVC(那会很长...)
希望对您有所帮助。
PS:也许您应该尝试在一小部分提交上执行此操作,以便能够在真正的 TFVC 项目中执行此操作之前验证它是否有效。
对于那些正在寻找相同的人:
使用 'old' git tf 工具 (https://archive.codeplex.com/?p=gittf) 您可以将旧的 TFVC 项目迁移到 Azure DevOps(TVFC)。
如果您想将旧的 TFVC 项目迁移到 AzureDevOps(GIT),您应该使用 git tfs (http://git-tfs.com/)