2014/11/03

送交(commit) git log 到svn repository



最近迷上了git,所以基本上只要修改或建立新的專案我都是建立git的repository

不過公司還是使用svn當作repository

那如果我想要把我在git上的commit log保留並且commit到svn那該怎麼辦呢?

當初從svn轉到git有用到一個套件"git-svn"

這次也是利用它來達成我的目標:

將git的log commit到svn上

首先 安裝它

環境:CentOS 5.9

```
yum install git-svn
```

利用git-svn 抓取svn source tree下來

```
git svn clone svn://moa.tw/my/svn/repository/more/folder/is/working ./svn2git
```

將原先存在的git repository新增為svn2git底下名為source的remote

```
cd svn2git/
git remote add -f source /moa/tw/git/repo/project
```

重新間接基準點到git-svn

```
git rebase --onto remotes/git-svn --root source/master
```

途中也許有衝突發生

```
Auto-merging view/base2.tmpl.html
CONFLICT (content): Merge conflict in view/base2.tmpl.html
Auto-merging view/base.tmpl.html
CONFLICT (content): Merge conflict in view/base.tmpl.html
Failed to merge in the changes.
```

修正後繼續即可

```
git add view/base2.tmpl.html
git add view/base.tmpl.html
git rebase --continue
```

之後就會看到一堆類似下面的訊息,也就是正在一筆一筆轉換

```
Applying: xxxxxxxxxxxxxxxxx
Applying: yyyyyyyyyyyyyyyyy
```

跑完之後執行

```
git svn dcommit
```

就會把log一併commit到svn repository了

接下來該探討的就是:

我是否可以繼續用git commit/push到git的repo,但是我想要commit回svn時,隨時都可以commit,而不怕source衝突




參考連結:
http://goodliffe.blogspot.tw/2011/08/pushing-git-repository-into-existing.html

沒有留言:

張貼留言