【问题标题】:git svn clone > git svn rebase > Unable to determine upstream SVN information from working tree historygit svn clone > git svn rebase > 无法从工作树历史中确定上游 SVN 信息
【发布时间】:2011-05-12 17:37:18
【问题描述】:

我正在尝试将 http://googleappengine.googlecode.com/svn/trunk/python 的只读签出保存到 git 存储库中,该存储库作为远程存储在 github 中。

1) $git svn clone http://googleappengine.googlecode.com/svn/trunk/python.

2) $git svn rebase

-- 无法从工作树历史中确定上游SVN信息

所以我开始查看 .git/config 文件来解决这个问题,而我现在的位置是:

[svn-远程“svn”]
fetch = :refs/remotes/git-svn
网址=http://googleappengine.googlecode.com/svn/trunk/python

[远程“原点”]
fetch = +refs/heads/:refs/remotes/origin/
url = git@github.com:...PRIVATE_URL...

[分支“主”]
远程 = 原点
合并 = refs/heads/master

我只需要获取并合并最后一次提交,然后将更改推送到 github。 我一直在寻找解决方案,但到目前为止似乎没有一个对我有用,任何指针都会有所帮助。

提前致谢:)

【问题讨论】:

  • 部分原因可能是 git-svn 假设它正在使用整个存储库,而不仅仅是一个主干。因此 - 例如 - 人们开始在分支上开发然后突然将其合并到主干,您的设置将无法跟踪更改的来源。
  • 听起来很可能。但是由于我只克隆了trunk,我猜我拉的历史也是来自trunk。也许我应该克隆一个全新的树干?

标签: git git-svn


【解决方案1】:

最好的办法是克隆整个 repo(即使它得到了你当前不想要的 java 东西):

git svn clone -s http://googleappengine.googlecode.com/svn/

(-s 表示您有一个标准布局,在适当命名的目录中有分支、标签和主干)。

以任何其他方式进行操作都会很复杂,因为您想要映射的内容将存在于分支/1.1/python 分支/1.2.1/python 等目录中,据我所知 git -svn 不接受分支/*/python 形式的规范

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2012-09-19
    相关资源
    最近更新 更多