2010-01-29 54 views
0

我想從Git內部跟蹤SVN上的遠程分支。我可以看到如何與混帳svn的命令做到這一點的基礎,我希望做一些這樣的:如何使用git跟蹤顛覆單個分支

Git branch | SVN branch 
----------------------- 
master  | Trunk 
feature1 | <not mapped> 
feature2 | <not mapped> 

所以,一旦我融入混帳/主,然後做dcommit,樹幹只會在最後的svn commit和git/HEAD之間進行更新。

這可能嗎?我會怎麼做?

回答

1

git svn documentation介紹了Subversion的軀幹的工作,但有一個骯髒的主人:

# Clone a repo (like git clone): 
    git svn clone http://svn.example.com/project/trunk 
# Enter the newly cloned directory: 
    cd trunk 
# You should be on master branch, double-check with 'git branch' 
    git branch 
# Do some work and commit locally to git: 
    git commit ... 
# Something is committed to SVN, rebase your local changes against the 
# latest changes in SVN: 
    git svn rebase 
# Now commit your changes (that were committed previously using git) to SVN, 
# as well as automatically updating your working HEAD: 
    git svn dcommit 
# Append svn:ignore settings to the default git exclude file: 
    git svn show-ignore >> .git/info/exclude 

做你的功能分支而非主

git checkout -b feature1 
hack ... 
git add ... 
git commit ... 

當你的工作準備好讓你的工作重新進入Subversion,請務必保持你的歷史線性:

git checkout master 
git svn rebase 
git rebase master feature1 
git checkout master 
git merge feature1 

發貨!

git svn dcommit