網頁

2016年8月18日 星期四

OpenFoundry Projects 要關站了

OpenFoundry Projects 要關站了, 先Export Projects到自己身上了
https://github.com/wangaguo?tab=repositories

從Subversion轉換為Git參考方式

舊文件記錄~

在OpenFoundry的專案,VCS從Subversion轉換為Git,以下提供一個可行的方式,或您可使用其它更好的方式。若您使用Subversion,欲轉換為Git,可以使用git-svn進行clone,接著再將VCS切換為Git,進行後續的動作:

以下假定''testgit''專案,原本為使用Subversion,要轉換至Git。

1. 取出提交者的列表
這是為了提供Git的Author對應的email,先checkout一份從根目錄開始的工作複本,然後執行以下指令:


$ svn co https://www.openfoundry.org/svn/testgit /tmp/testgit-svn
$ cd /tmp/testgit-svn
$ svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt
接著修改文字檔,填入提交者對應的電子郵件,如:
jwilkins = jwilkins
修改為
jwilkins = John Albin Wilkins



2. 複制Subversion版本庫至本地Git,使用git-svn


$ git svn clone https://www.openfoundry.org/svn/testgit --no-metadata -A /tmp/testgit-svn/authors-transform.txt --stdlayout /tmp/testgit-git
其中:
-A authors-transform.txt: 即為代入提交者的轉換資料。
--stdlayout:指的是使用慣例trunk; branches; tags為目錄架構。


3. 轉換svn:ignore為.gitignore
如果有使用svn:ignore屬性,可使用以下方式轉換。


$ cd /tmp/testgit-git
$ git svn show-ignore > .gitignore
$ git add .gitignore
$ git commit -m 'Convert svn:ignore properties to .gitignore.'


4. Push到新的git版本庫


先將專案VCS切換至Git,從“專案資訊->基本資料修改”,修改VCS為Git,等待約3分鐘,同步建置Git版本庫及權限。
版本控制->GitWeb,查看是否完成。
版本控制->存取方式,取得版本庫URL。https://www.openfoundry.org/git/[專案名稱].git

設定遠端版本庫:
$ git remote add origin https://www.openfoundry.org/git/testgit.git
將資料Push到專案的Git版本庫中
$ git push origin master


5. 查看及使用


版本控制->GitWeb,查看push後的記錄。
$ git clone https://www.openfoundry.org/git/testgit.git /tmp/testgit


此篇說明參考[http://john.albin.net/git/convert-subversion-to-git Converting a Subversion repository to Git]編寫。