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 《[email protected]》
selse = Someo Nelse 《[email protected]》
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共享使用的方法了,有需要的用戶快來試試這種方法吧。