Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
svn2git-命令失败-错误:pathspec';硕士';与git已知的任何文件都不匹配_Git_Svn_Svn2git - Fatal编程技术网

svn2git-命令失败-错误:pathspec';硕士';与git已知的任何文件都不匹配

svn2git-命令失败-错误:pathspec';硕士';与git已知的任何文件都不匹配,git,svn,svn2git,Git,Svn,Svn2git,我们正在尝试使用svn2git实用工具()从svn迁移到git。该实用程序似乎每次都会出现以下错误。如果有人看到同样的错误或有更好的选择,请分享 命令 svn2githttps://xyz.xyz.com/svn/svnrepo/ --详细--authors.txt 控制台输出 Running command: git svn init --prefix=svn/ --no-metadata --trunk='trunk' --tags ='tags' --branches='branches'

我们正在尝试使用svn2git实用工具()从svn迁移到git。该实用程序似乎每次都会出现以下错误。如果有人看到同样的错误或有更好的选择,请分享

命令
svn2githttps://xyz.xyz.com/svn/svnrepo/ --详细--authors.txt

控制台输出

Running command: git svn init --prefix=svn/ --no-metadata --trunk='trunk' --tags
='tags' --branches='branches' https://xyz.xyz.com/svn/svnrepo/  
Running command: git config --local --get user.name  
Running command: git config --local svn.authorsfile authors.txt  
Running command: git svn fetch  
Running command: git branch -l --no-color  
Running command: git branch -r --no-color  
Running command: git config --local --get user.name  
Running command: git config --local --get user.email  
Running command: git checkout -f master  
error: pathspec 'master' did not match any file(s) known to git.  
command failed:  
git checkout -f master  

另外,我的SVN回购URL也是正确的,就在主干上方。我正在Win7 64位机器上尝试此功能。

有很多工具称为
svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用
svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活

您使用的
svn2git
工具基于
git svn
git svn
而不是一次性转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用
Git SVN
,而是
svn2git
,它更适合此用例

如果您不是100%了解存储库的历史记录,
svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具


尽管
git svn
(或者您的案例中错误的
svn2git
)更容易开始,但以下是使用KDE
svn2git
而不是
git svn
更优越的原因,除了它的灵活性之外:

  • 通过
    svn2git
    (如果使用了正确的历史记录),可以更好、更清晰地重建历史记录,对于具有分支和合并等更复杂的历史记录尤其如此
  • 这些标记是真实的标记,而不是Git中的分支
  • 使用
    git svn
    时,标记包含一个额外的空提交,这也使得它们不是分支的一部分,因此正常的
    fetch
    将不会获取它们,直到您将
    --tags
    交给命令,因为默认情况下,也只获取指向已获取分支的标记。使用正确的svn2git标记就可以找到它们所属的位置
  • 如果您更改了SVN中的布局,您可以使用
    svn2git
    轻松配置它,使用
    git SVN
    您最终将丢失历史记录
  • 使用
    svn2git
    还可以轻松地将一个SVN存储库拆分为多个Git存储库
  • 或者将同一SVN根目录中的多个SVN存储库轻松组合到一个Git存储库中
  • 使用正确的
    svn2git
    比使用
    git svn

有很多原因导致
git svn
更差,而KDE
svn2git
更优越。:-)

已经很晚了,但有人可能仍然需要这个。我设法把这件事追查到了警察局。长话短说,Windows不理解脚本添加到
git
命令的参数周围的单引号(
)。修复它的方法可能多种多样,但我只是手动破解了
migration.rb
文件,即以下代码片段:

cmd+=“--trunk=#{trunk}”,除非trunk.nil?
除非是零?
#在此处填充默认标记,以便以后可以对其进行筛选
tags=['tags']如果tags.empty?
#处理默认标记或用户提供的标记
标记。每个do |标记|
cmd+=“--tags=#{tag}”
结束
结束
除非是零?
#在此处填充默认分支,以便以后可以对其进行筛选
Branchs=['Branchs']如果branchs.empty?
#处理默认或用户提供的分支
分支机构。每个机构都有分支机构|
cmd+=“--branchs=#{branch}”
结束
注意,
{trunk}
{tag}
{branch}
周围不再有引号。这就成功了。

不是什么“答案”,但这是我的案例的解决方案。顺便说一句,来自svn2git的错误消息真的毫无帮助

得到完全相同错误的原因是,在执行初始导入时,我没有使用主干的完整路径

SVN回购协议的结构如下:

https://example.com/folderA/projectName
 - trunk
 - tags
 - ...
我只使用
svn2git运行svn2githttps://example.com/folderA --用户名…

当我将“/projectName”也包括在回购路径中时,我做到了:

svn2githttps://example.com/folderA/projectName --用户名…


…一切都很好。另外,在重试之前-我从以前的尝试中删除了现有的
.git
文件夹。

git repo中有主分支吗?没有,我正在尝试克隆svn repo,它应该在本地创建并初始化一个新的git repo。我无法使用svn2git,但我尝试了以下两个选项,这两个选项都对我有效。1) 对于完整的SVN回购迁移-2)对于选择性分支/标签-为什么要复制粘贴相同的答案?@bahrep这不是相同的答案,但适合于这个问题。事实上,问题是完全不同的,但答案通常是“使用正确的工具,效果会更好”。我不确定它是否适用于您的情况,但投票结束作为副本如何?选择最受欢迎和最相关的问题,并投票将类似的问题作为副本关闭。这并不是真的正确,因为这些问题非常不同,而且都是关于不同的问题。这和我建议的解决方案是一样的,答案中有特定于问题的部分。事实上,看到这样重复的答案很烦人。我们中的许多人通过搜索来这里,必须反复筛选相同的答案,以找到一个真正有效的答案。对于Windows上的非Ruby用户:以下是我使用的路径:
C:\Ruby26-x64\lib\Ruby\gems\2.6.0\gems\svn2git-2.4.0\lib\svn2git
查找
迁移