首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git和SVN没有历史记录

Git和SVN没有历史记录
EN

Stack Overflow用户
提问于 2014-06-17 14:51:15
回答 1查看 448关注 0票数 0

我有个问题。

我在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-我从远程存储库获取数据。

代码语言:javascript
复制
git fetch neworigin/dev

5-我在旧的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存储库中添加一个远程分支,以便传输本地提交。我不知道这是否是一个好的解决方案,但它对我有用。

谢谢吉特

谢了,齐克

EN

回答 1

Stack Overflow用户

发布于 2014-06-17 17:46:16

您可以通过编辑config文件夹中的<repository>/.git文件,在git存储库中设置第二个svn。

它可以如下所示(第二个是新的存储库):

代码语言:javascript
复制
...
[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上,以便将它们提交到存储库中。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24266931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档