将代码从 TFS 移至 Azure DevOps Repo,而不丢失 TFS 历史记录

问题描述 投票:0回答:2

在我们整个公司,我们是第一个尝试这个的。

我们正在尝试将 代码从 TFS 获取到 Azure DevOps

以下是TFS详细信息

TFS Server: companyTFS

TFS Project Collection: TechTeam. 

TFS Project name: Main.

TFS Branch : Dev

现在我正在尝试将代码从 TFS 获取到 Azure DevOps 中。 我们可以将 TFS 文件夹中的代码复制到 Azure DevOps 文件夹中,但我们不想丢失 TFS 历史记录。

如下所述,我安装了 Chocolatey,还安装了 gittfs

https://blog.rsuter.com/migrate-a-tfs-repository-to-a-vsts-git-repository

当我发出以下命令时

git tfs clone http://companyTFS:8080/TechTeam/Main $/Main/Dev/Registration/FeeDetails . –ignore-branches –debug

我遇到了异常。

TF31002: Unable to connect to this Team Foundation Server: http://companyTFS:8080/TechTeam/Main.
Team Foundation Server Url: http://companyTFS:8080/TechTeam/Main.

Possible reasons for failure include:
- The name, port number, or protocol for the Team Foundation Server is incorrect.
- The Team Foundation Server is offline.
- The password has expired or is incorrect.

Technical information (for administrator):
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.

我也尝试过这个但没有成功。

https://github.com/microsoft/azure-repos-vscode/issues/320#issuecomment-335573266

我正在尝试了解我的 TFS 服务器是否可以与外部组件进行握手。

如果有人能告诉我我做错了什么,我会很高兴。

tfs azure-devops
2个回答
5
投票

终于花了近 4 天的时间,我能够将代码连同历史记录一起从 TFS 移动到 Azure DevOps 中。请参阅下面我所做的所有步骤。

安装巧克力:

首先我们需要安装Chocolatey。为了简单起见,我在同一文件夹中创建了以下两个文件。 文件名:installChocolatey.cmd

内容:

@echo off
SET DIR=%~dp0%

%systemroot%\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '%DIR%install.ps1' %*"
SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

文件名:install.ps1

内容:从此处复制粘贴内容https://chocolatey.org/install.ps1

在管理模式下打开命令提示符并运行 installChocolatey.cmd 来安装 Chocolatey。

在命令提示符下输入

choco -v
查看是否安装正确。

安装git tfs:

接下来,我们需要安装 git tfs 工具,以便在命令提示符中给出以下命令并按照说明进行操作。

choco install gittfs

在我的例子中,它安装到 C:\Tools\gittfs。

打开环境变量并确保将以下内容(在我的例子中)添加到 PATH 变量。

C:\工具\gittfs

在命令提示符下输入 git tfs -version 查看安装的版本。

将代码从 TFS 移至 Azure DevOps:

Azure DevOps Project Name: Experiment
Azure DevOps Repo Name: MyRepo
Azure DevOps Repo Name: Master and DEV

首先,我将此存储库克隆到本地。确保我已将所有远程分支转移到本地分支。

在我的本地创建了一个名为 TestBranch 的新分支并将其推送到远程。所以现在 MyRepo 有 3 个分支,TestBranch 是我本地的工作分支。

在命令提示符中,我转到映射 Azure DevOps 存储库的文件夹。我给出了以下命令来获取带有历史记录的 TFS 代码。

git tfs clone http://companyTFS:8080/TechTeam $/Main/Dev/Registration/FeeDetails . –debug

这将需要一些时间,之后您可以看到 TFS 代码已下载到该文件夹。

在同一命令提示符下,

给出以下命令来确定您的工作分支是什么

git branch 

下面的命令将创建一个分支

git checkout -b TempBranch

对于以下命令,获取目标 Azure DevOps 存储库的 url。

以下命令会将您的远程 Azure DevOps Repo 设置为您想要定位的 Repo

git remote add origin https://[email protected]/xxx/Experiment/_git/MyRepo

下面将在 ADO 的目标存储库中创建名为 TempBranch 的新分支。在实验项目和 MyRepo 存储库中

git push --set-upstream origin TempBranch

现在,TFS 中的所有代码和历史记录都已进入 Azure DevOps 并进入您的存储库。您可以使用 PULL Request 功能合并到其他分支等等。

现在假设您希望 Azure DevOps 代码结构有所不同。

转到您从 TFS 下载代码/历史记录的文件夹,然后创建文件夹结构或更改您想要的方式

一一给出以下命令。

git add .

要查看所有更改,请输入以下命令

git status

在本地提交所有更改

git commit -m "[commit message goes here]"

将更改从本地推送到远程的命令 git 推送

代码将位于实验项目MyRepo repo TempBranch分支中


0
投票

您好,谢谢您的详细步骤。我确实遵循了所有步骤,但最终再次出现此错误 - 网址是:https://XXXXX.com/yyy/FXX/CFG 我收到以下错误 - 忽略 C:\Program Files (x86)\Microsoft Visual Studio�9\BuildTools 中不完整的 Visual Studio 版本 在 C:\Program Files (x86)\Microsoft Visual Studio�9\Community 中找到匹配的 Visual Studio 版本 在 F:/Personal/GIT TFS/Manager/v.1.0/Release3/src/XerviLoan-DEV_Branch/.git/

中初始化空 Git 存储库

TF31002:无法连接到此 Azure DevOps 服务器:https://tfs.acsgs.com/tfs/FSG/CFS。 Azure DevOps 服务器网址:https://XXXXX.com/yyy/FXX/CFG,

失败的可能原因包括:

  • Azure DevOps 服务器的名称、端口号或协议不正确。
  • Azure DevOps 服务器已脱机。
  • 密码已过期或不正确。

技术信息(管理员): 远程服务器返回错误:(404) 未找到。 远程服务器返回错误:(404) 未找到。 所有日志都可以在日志文件中找到:C:\Users\user\AppData\Local\git-tfs\git-tfs_log.txt

我在 DevOps 社区联系了 Microsoft,他们要求我在这里与您联系。 你能帮忙吗?

© www.soinside.com 2019 - 2024. All rights reserved.