2011-09-16 91 views
0

我正在嘗試整合兩個svn回購。一種是另一種叉子。但它不完全是一個叉子,所以我找不到一個共同點。將git-svn本地回購推送到已存在的其他svn遠程回購

我已經在一個本地git-svn回購中克隆了兩個回購,每個回購在一個分支,並且我已經集成了兩個回購,但知道我需要將更改推送到原始回購之一。我試圖找出上傳維護歷史記錄的更改的最佳工作流程。我認爲應該是這樣的:

# Move the trunk of the remote repo to a branch 
$ svn move svn+ssh://host.example.com/repos/project/trunk svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH -m "Creating a branch of project" 

# Make a commit that explains the change that is going to happen 

# Change to the branch that tracks the remote repo, and fetch the changes 
$ git checkout myBranch 
$ git svn rebase 

# The folder should be empty at this point 

# Upload the local changes to the trunk of the remote repo 
$ git merge integrationBranch 

# ¿rewrite the history? 

# Upload it 
$ git svn dcommit 

我無法找到一個better explanation但我認爲,混帳SVN dcommit使用最後的混帳svn的-ID提交推測這是推動網址,所以我想在某些時候我應該重寫歷史,但我不知道如何。

此外,如果任何人都可以提供一種方法來進行測試,然後真正上傳的變化將是巨大的。

回答

0

經過一番研究,我發現如何重寫歷史based on this post。要改變我使用的git-svn-id:

git filter-branch --msg-filter 'sed "s/git-svn-id:.*//g"' myBranch