我有个问题。
我在SVN存储库中使用Git。但是有些人改变了SVN存储库(他们创建了一个新的存储库,只是把所有的项目文件都放进去了)。它们不保存旧存储库的SVN历史记录。
我不知道如何将Git与新的SVN存储库连接起来,以便提交我的修改。
谢谢你的帮忙
编辑
我终于找到了解决办法。
因此,我有一个本地存储库Git (在我的本地目录/home/oldSVNrepo中),它连接到旧的SVN存储库。在旧的SVN存储库和新的SVN存储库之间没有常见的提交。
我必须做的是:
我必须将修改提交到新的SVN存储库中。
我所做的:
1-我创建了一个本地目录(像mkdir /tmp/myNewRepo )2-在这个新目录中,我克隆了新的SVN存储库
`cd /tmp/myNewRepo git svn clone [UrlOfNewSVNrepository]/myproject -T trunk -b branches -t tags --username XXX cd myproject git checkout -b dev git checkout master`
我创建一个新分支,以便合并SVN存储库的新更新,并从远程存储库提交推送。(如果分支是活动的,我们就不能推动回购)
3-在旧SVN的本地Git存储库中,我添加了一个远程存储库:新的Git存储库。
` cd /home/oldSVNrepo git远程添加neworigin -t dev /tmp/myNewRepo/myproject
4-我从远程存储库获取数据。
git fetch neworigin/dev5-我在旧的Git存储库中创建了一个新分支(在提交所有修改之前)。
`git checkout -b branchForMerge`
6-我在远程neworigin和branchForMerge之间合并
`git merge neworigin/dev`
当我进行合并时,Git给我一个警告:没有普通的提交。(实际上,在我的例子中,合并前使用git-mv,因为myproject的旧目录与新项目目录不同)
7-我修复冲突并犯下
我把我的修改推到了neworigin上
`git push neworigin branchForMerge:dev`
9-现在在新Git存储库(/tmp/myNewRepo)的分支开发中,我可以轻松地将修改发送到新的SVN存储库上。
因此,我只需创建一个新的本地Git存储库,它连接到新的SVN存储库,并在我的旧Git存储库中添加一个远程分支,以便传输本地提交。我不知道这是否是一个好的解决方案,但它对我有用。
谢谢吉特
谢了,齐克
发布于 2014-06-17 17:46:16
您可以通过编辑config文件夹中的<repository>/.git文件,在git存储库中设置第二个svn。
它可以如下所示(第二个是新的存储库):
...
[svn-remote "svn"]
url = https://url.to.the.first.svn.repository
fetch = :refs/remotes/git-svn
[svn-remote "new-svn"]
url = https://url.to.the.second.svn.repository
fetch = :refs/remotes/new-git-svn
...您可以获取新的存储库git svn fetch new-svn;这将导致远程分支new-git-svn与新存储库更新。
现在,您应该能够轻松地将自己的修改rebase到新的new-git-svn上,以便将它们提交到存储库中。
希望这能有所帮助。
https://stackoverflow.com/questions/24266931
复制相似问题