- 先
到原 svn 專案下,執行 svn log ^/ --xml | grep -P "^
(.*?)<\/author>/$1 = /' > users.txt ,產生 users.txt,編輯裏面 svn user 跟 git user 的對照。 - 接著用 git-svn 重新簽出 svn
repository: git svn clone your_svn_url -T trunk -b branches -t tags -s
your_project -git -Ausers.txt --no-metadata
在 Subversion 裡,是以目錄 trunk/branches/tags 來區分主枝、分枝跟標籤,-T, -b, -t 就是告訴 Git 這些事情。
-Ausers.txt 就是告訴 Git-svn 要參考前個步驟所產生的 users.txt 去做使用者的對照。
--no-metadata 是處理掉一些 git-svn 加上的附加訊息,這可以用 git log 比較得知,沒有加的話,git log 結果會有 git-svn-id: .... 的訊息。 - 如 果有 tags 的話,會需要處理:git for-each-ref refs/remotes/tags | cut -d / -f 4- | grep -v @ | while read tagname; do git tag "$tagname" "tags/$tagname"; git branch -r -d "tags/$tagname"; done
- 如果有 branch 的話,也需要處理:git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d "$branchname"; done
- 接著加入 git remote repository :git remote add origin your_git_remote_repository ,再用 git push origin --all 推上去。
- 最後把 tags 也推上去: git push origin --tags
星期一, 2月 09, 2015
搬家,從 Subverion 到 Git
從 Git - Git 与 Subversion 整理出來的步驟,Git 本身就有可以從 Subversion 簽出程式的功能:git-svn,應用 git-svn 就可以成功的搬家:
標籤(Label):
git,
note,
subversion
星期五, 12月 21, 2012
Upgrade Subversion to 1.7 in CentOS5
也忘了是從什麼時候開始,在更新時,就一直遇到 subversion-perl 無法升級的問題,說需要 subversion 1.7,可是
CentOS 裡包的是 subversion 1.6,而這個 subversion-perl 是 rpmforge 提供的。
拖了好久,在更新時都以 --skip-broken 避開,可是日子久了,總是會覺得這樣很麻煩,決定還是設法把 subversion 升級到 1.7。當然自己編譯當然是可以,但上上策當然還是有人打包最好,所以上網搜索了一下,就發現有人問,而答案是利用 WANdisco 提供的 yum repository。WANdisco 比較麻煩的是,如果你要下載,網站會要求你輸入資料,然後才寄給你 .repo 檔案。收到 .repo 檔案,就放在 /etc/yum.repos.d ,接著執行 sudo yum update 就可以了。
拖了好久,在更新時都以 --skip-broken 避開,可是日子久了,總是會覺得這樣很麻煩,決定還是設法把 subversion 升級到 1.7。當然自己編譯當然是可以,但上上策當然還是有人打包最好,所以上網搜索了一下,就發現有人問,而答案是利用 WANdisco 提供的 yum repository。WANdisco 比較麻煩的是,如果你要下載,網站會要求你輸入資料,然後才寄給你 .repo 檔案。收到 .repo 檔案,就放在 /etc/yum.repos.d ,接著執行 sudo yum update 就可以了。
標籤(Label):
centos,
scm,
subversion
訂閱:
文章 (Atom)