在做git svn clone -s https://svn.example.com/repo/
的同时,我收到了以下输出:
r3073 = a6132f3a937b632015e66d694250da9f606b8333 (refs/remotes/trunk)
Found possible branch point: https://svn.example.com/repo/trunk => https://svn.example.com/repo/branches/v1.3, 3073
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
real path: repo/trunk
Continuing ahead with repo/trunk
fatal: Not a valid object name refs/remotes/tags/Sync Controllers
cat-file commit refs/remotes/tags/Sync Controllers: command returned error: 128
正在运行git branch -a
:
remotes/tags/Sync%20Controllers
remotes/tags/v1.1
remotes/trunk
remotes/v1.2
我认为问题在于“遥控器/标签/同步控制器”!=“遥控器/标签/同步%20控制器”。
答案 0 :(得分:16)
SVN上的标签中有一个空格,但是git中的标签将此空间转换为%20
(URL编码)。要解决此问题,只需手动添加一个带有逐字名称的新标签:
cd .git/refs/remotes/tags/
mv Sync%20Controllers Sync\ Controllers
然后再次运行git svn clone
命令。
(通常你会用git tag OLDTAG NEWTAG
执行此操作,但git不允许我定义带有空格的标记。标记文件只是包含相关提交哈希的文本文件。)
答案 1 :(得分:4)
您可以使用git-svn服务器端替代,SubGit以避免许多git-svn转换问题。
我是一名SubGit开发人员,可以说我们已经做了很多工作来解决上面提到的字符翻译问题;在此特定情况下,标记将转换为refs/tags/Sync+Controllers
标记。
另请注意,git-svn已将Subversion标记转换为分支而非标记。
答案 2 :(得分:2)
我今天遇到了这个问题,并认为这个包含其中步调的分支并不重要,我只是运行
git branch -r -d partialPayment%202.4
重新运行git
svn fetch
它跳过当前分支并继续抓住下一个分支。
答案 3 :(得分:0)
我认为空格的问题在Git> = 1.8.0中是固定的(参见:#786942)。
所以你应该升级它。
我已经测试了它,它似乎适用于最新版本的git。
请参阅GitHub主页:https://github.com/git/git
答案 4 :(得分:0)
我正在使用git 1.29.2并且也遇到了问题。此外,它正在运行到Windows Server 2016中,并且git在cygwin下。
正在检入/**
* Filter orders formatterd billing address.
*
* @since 3.8.0
* @param string $address Formatted billing address string.
* @param array $raw_address Raw billing address.
* @param WC_Order $order Order data. @since 3.9.0
*/
function filter_woocommerce_order_get_formatted_billing_address( $address, $raw_address, $order ) {
// Get meta
$value = $order->get_meta( 'billing_company_id' );
// NOT empty
if ( ! empty ( $value ) ) {
// Append
$address .= $value;
}
return $address;
}
add_filter( 'woocommerce_order_get_formatted_billing_address', 'filter_woocommerce_order_get_formatted_billing_address', 10, 3 );
,并且文件夹在那里没有空格,/GitMigration/.git/svn/refs/remotes/origin
没什么变化。
但是,在%20
中,出现问题的标记没有出现,没有名称,也没有哈希。
该问题应该还有另一个与之相关的问题,该问题会导致产生错误,而不仅仅是错误。
查看packed-refs
后发现了以下几行的重复:
./.git/config
每当我运行git-svn clone语句时,就会产生这种情况。因此,我确实从配置文件中删除了这些文件,保存并再次运行,但是这次使用branches = server/branches/*:refs/remotes/origin/*
tags = server/tags/*:refs/remotes/origin/tags/*
,以防止再次出现重复的行,瞧!问题解决了。