在Git开始被广泛应用之前,SVN是版本管理行业中当之无愧的老大,很少有开发人员没听说过和没使用过SVN的,可以说SVN影响了一代程序员。
但是,自从Git逐渐进入开发人员的视野,SVN就开始走向没落,新技术将我们的软件产品推向一个新的台阶,也对开发人员的知识储备提出了新的要求,从SVN迁移到Git也成了大部分企业和开发团队的一个必要工作。
下面我们来简要介绍如何将SVN代码快速迁移到Azure DevOps Server 的Git代码库中。
1 GIT安装
从官方网站Git for Windows(https://gitforwindows.org/)中下载Git工具的安装包
2 带历史记录、分支、标记
2.1 使用Git克隆SVN代码库
安装好Git后,在Git Bash中执行以下命令行,将SVN代码库导出,如图:
git svn clone { SVN repo URL } --prefix=svn/ -s project |
l SVN repo URL:SVN的服务器地址,例如https://192.168.10.13/svn/repo1/
l Prefix:在导出的分支中增加前缀
l -s:使用svn标准命名方法,即trunk,tags,branches
2.2 更改branches、tags
克隆成功后cd到存储库目录,执行”git branch -a”,可以看到本地分支只有一个master,红色字体为远程标签以及远程分支,如图:
2.3 更改tags
在Git Bash中执行以下命令将远程标签改为本地标签。
cp -Rf .git/refs/remotes/svn/tags/* .git/refs/tags/ |
rm -Rf .git/refs/remotes/svn/tags |
2.4 更改branches
在Git Bash中执行以下命令将远程分支更改为本地分支。
cp -Rf .git/refs/remotes/* .git/refs/heads/ |
2.5 推送分支至Git服务器
3 克隆成功,cd到你的代码库目录后,添加Git服务器连接,如图:
git remote add origin http://dev:8080/tfs/DefaultCollection/软件研发协作管理平台/_git/SVN-Git |
4 执行一下命令,将本地存储库推送至Git服务器中,如图:
git push -u origin --all |
4.1 推送标签至Git服务器
上面的操作完成后,已经将各分支代码推送至Git服务器上,并没有提交tags,使用“git push -u --tags”推送标签,如图:
https://www.cnblogs.com/danzhang
Azure DevOps MVP 张洪君