2014年3月19日 星期三

git with company svn repository

Written with StackEdit.

因為一般公司都是用 SVN 作 VCS,但當你想用 git 作 local version control 的時後,該怎麼辨呢?
最近花了一點時間在研究這個工作方法 ,有點復雜,分享小弟一些心得給大家。

下面是我的預想图:
enter image description here
首先先看 SVN, 上面有兩個 branch: branch_1,branch_2 (在此我用藍色表示 source注1)
(為何不是 standard SVN layout, trunk, branchs, tags? 因為公司不一定遵守 ….)

我希望將 SVN 拉到 local git repository, 並用 remotes/branch_1, remotes/branch_2 分別指到 SVN 上的 branch_1,branch_2,然後 create local git branchs,svn-branch_1 and svn-branch_1 to track remotes/branch_1 及 remotes/branch_2。

在操作上,svn-XXX 只用來將 SVN 上的 branch 修改拉下來,不會直接在上面修改,以免在下 $git svn rebase 時出問題。因此我們還需要再另外從 svn-XXX branch 出來作修改使用。 在此例即為 git-feature1-branch_1 , git-feature1-branch_2。

(注1: 以上 naming rule 均參考Plasma’s BLOG)
(注2: 在此使用 git 指標的全名說明觀念比較清楚)

最後,我想在再把我的 git 放到另一個 remote git repository 作備份,所以需要再 create remote branch git-feature1, git-feature2 來存 git-feature1-branch_1 , git-feature1-branch_2。
(其實也可以再 create git-svn-branch_1, git-svn-branch_1 來存 svn-branch_1, svn-branch_1,這樣也可以保留 SVN 的 log.)

我也是 git 新手,所以如果有不對的地方,歡迎指正。

沒有留言:

張貼留言