使用GIT-TFS将GIT克隆到TFS(AzureDevOps)



我们有一个本地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/)

在没有成功保证的情况下,你可以尝试什么。。。

注意:正如我所说,您将只能从一个分支迁移历史记录。

  1. 在TFVC中创建要放置源代码的文件夹/项目
  2. 使用git tfs clone迁移此文件夹(使用rcheckin所需的git-tfs元数据进行git提交(
  3. 将已经迁移的历史存储库(我们称之为RepoWithHistory(作为本地远程存储库添加到这个新存储库中(我们称其为NewRepo(。和git fetch
  4. 只为来自RepoWithHistory的提交清除元数据,内容如下:git filter-branch -f --msg-filter "sed 's/^git-tfs-id:.*$//g'" -- --all。但是要注意保持来自NewRepo的提交的元数据
  5. 使用git replace --graft <sha1_of_first_commit_of_RepoWithHistory> <sha1_of_last_commit_of_NewRepo>移植两个历史记录(历史记录必须位于新历史记录的顶部(
  6. 使用git rcheckin --no-merge将历史迁移到TFVC(这将很长…(

我希望它会有所帮助。

PS:也许你应该试着在一小部分提交中进行,以便在真正的TFVC项目中进行之前能够验证它是否有效。

最新更新