我正在尝试使用此命令将SVN存储库中的最后100个修订引入本地git存储库(在Windows上)。
git svn clone http://...-r 100
由于某些原因,除了.git文件夹以外,结果检出为空。
但是如果没有-r参数,它就可以正常工作(尽管可以检查出时间的曙光)。
有人知道发生了什么吗?
谢谢!
对于git svn,-r参数引用SVN中的修订版本号,而不是所需的修订版本数。
摘录自git help svn命令,显示了-r选项的以下描述:
-r <arg>, --revision <arg> Used with the fetch command. This allows revision ranges for partial/cauterized history to be supported. $NUMBER, $NUMBER1:$NUMBER2 (numeric ranges), $NUMBER:HEAD, and BASE:$NUMBER are all supported. This can allow you to make partial mirrors when running fetch; but is generally not recommended because history will be skipped and lost.
对于您的情况,您需要找到SVN存储库的最新修订版,并从中减去100,以找到克隆的起始修订版。您还应该明确地将HEAD定义为最终修订版(因为也可以仅克隆修订历史记录的一部分)。
因此,根据您的情况,计算出起始修订版本号是($ rev),然后运行以下命令:
git svn clone -r $rev:HEAD http://...
或者,如果您只想要最新的修订版本而不获取任何修订历史记录:
git svn clone -r HEAD http://...
注意:您还可以使用-s选项为SVN信息库指定标准的主干/分支/标签布局,但是,仅当克隆整个信息库历史记录时,这才有意义。当使用SVN分支时,我发现仅从您感兴趣的分支开始克隆存储库会更有效。例如:
git svn clone -r HEAD http://.../branches/mybranch