我能从使用--no-metadata创建的SVN git克隆中执行“git svn dcommit”吗?(问题标题)

3

我使用以下命令将SVN存储库转换为git:

git svn clone --stdlayout --authors-file=authors.txt --no-metadata svn://svn.foo.com

但是,这似乎给了我一个看起来像是裸存储库的东西。只有一个.git目录。在克隆的存储库中,我想要进行检出。由于git checkout无法工作,所以我运行了以下命令:

git reset --hard

这是正确的方法吗?它似乎有效,但听起来很可怕。然后,我尝试运行以下命令:

git svn rebase

以便将Subversion存储库中的最新更改拉入我的git克隆中。但是,这并没有起作用。相反,它会产生以下消息:

无法从工作树历史记录确定上游SVN信息

有人知道这是为什么吗?

1个回答

3
我认为这是因为在 git svn clone 命令中使用了 --no-metadata 参数。关于“无元数据”选项,git-svn(1) 说明文档中是这样描述的:

这将清除每个提交末尾的 git-svn-id: 行。

如果您丢失了 .git/svn/git-svn/.rev_db 文件,则 git svn 将无法重建它,您也将无法再次获取。对于一次性导入来说,这是可以接受的。

我没有意识到这一点,但显然使用 --no-metadata 会使 git svn 不生成 git-svn/.rev_db 文件。我有一个 .git/svn 子目录,但是其中没有 git-svn 目录。

没错 - git-svn-id 行对于从工作树历史记录中确定上游 SVN 信息至关重要。 - Daniel Hershcovich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接