2011-09-16 65 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