时间:2021-07-01 10:21:17 帮助过:7人阅读
Linux用户有许多人都在使用svn,不过现在许多用户已经改用git了,因为svn不如git好用,不过要将svn替换成git比较麻烦,因此许多用户都想要知道如何让git与svn共享使用,下面一起来看看解决的方法吧。
git svn命令
Git 中所有 Subversion 桥接命令的基础是 git svn 。所有的命令都从它开始。相关的命令数目不少,本文不过多介绍git svn的命令使用,只简单的说明一下最常用的几个,更多的知识参考书记pro git。
整理用户名与Email的映射
在 Subversion,每个提交者在都在主机上有一个用户名,记录在提交信息中。如果想让已有的信息更好的映射到 Git 作者数据里,则需要 从 Subversion 用户名到 Git 作者的一个映射关系,因为Git是用邮箱来标识一个提交者的。建立一个叫做 user.txt 的文件,每行一条svn作者 = 作者昵称 《邮箱地址》,用如下格式表示映射关系:
user.txt的demo
schacon = Scott Chacon 《schacon@geemail.com》
selse = Someo Nelse 《selse@geemail.com》
SVN代码的所有提交者的作者名可以通过以下命令获得:
获取svn提交的作者名
svn log --xml | grep “^《author” | sort -u | \
awk -F ‘\《author\》’ ‘{print $2}’ | awk -F ‘\《/author\》’ ‘{print $1}’ 》 user.txt
得到以下文本,然后根据以上的格式编辑作者的邮件信息等。
得到了svn的作者名
schacon
selse
这样我们的把有svn的提交记录的作者、邮箱user.txt都准备好了,接下来就克隆svn的地址。
克隆svn的trunk到本地
git svn clone http://example.com/path/to/project-x/trunk \
--authors-file=users.txt project-x
http://example.com/path/to/project-x/trunk是svn的项目地址,这里用了trunk的目录。
--authors-file=users.txt是指明svn的作者信息,git要用到。
project-x是文件夹名字
--no-metadata参数可以不要svn的信息,适合迁移的时候使用,不适合git svn共用
以上就是让Linux系统git与svn共享使用的方法了,有需要的用户快来试试这种方法吧。