如何解决“文件未找到”上git svn dcommit?

我试图做git svn dcommit ,但是,一个目录继续在我失败,因此停止我的提交,并继续得到这个错误:

文件系统没有项目:找不到文件:/ usr / local / git / libexec / git-core / git-svn第572行中的文件未找到:事务'43999-6',路径'/ path / to / folder'

我试着重新加入文件夹,但我仍然得到这个错误。 我可以从树中删除一个提交来绕过这个吗? 不知道这里还有什么要做。

编辑
以下的一些问题并没有完全回答我的问题,但他们似乎是在正确的方向:

  • 有关跟踪问题和不分离HEAD的问题
  • 关于重组的问题
  • 有关恢复提交的问题
  • 最后一个问题似乎是我想要的东西,但我的回购规模(最后一次,把我身边的整体工作一天签出整个事情),和工作量少我会通过只是做了已经失去了hard重置(最终似乎做了诡计),我去了hard重置选项。


    svn重置 - 哈德没有为我工作

    原因在于,当对svn执行dcommit时,似乎删除文件的提交似乎同时在git和svn中完成,但链接丢失。

    对我而言,解决方案是将主设备重置为提交之前的提交,然后将所有成功提交合并回主设备(除故障设备外),然后重新删除文件。 可能会有更优雅的解决方案...

    旁注:git svn确实可以正确地重命名/移动文件。 它(无论是tortoisegit + mysgit还是jgit / egit)都会自动进行;)


    我不认为git-svn实际上支持重命名文件。 每次我尝试重命名某个东西时,都会收到此错误。 我总是最终不得不用svn重命名,然后用git-svn重新绑定。

    更新

    这很可能是由于git-svn不能很好地与URL中的空格配合使用。 我经常需要重命名项目路径才能让它们使用git-svn。 当然,对于实际上有其他人正在为他们工作的项目,这不是一个可接受的解决方案。 对于那些我只需要使用svn来移动文件。 这是一个巨大的麻烦。


    我能够通过修补git-svn来解决git svn无法在其中有空格的存储库的问题。

    我更新了url_path函数来:

    sub url_path { 
      my ($self, $path) = @_; 
    
      my $url = $self->{url} . '/' . $self->repo_path($path); 
      if ($self->{url} =~ m#^https?://#) { 
        $url =~ s!([^~a-zA-Z0-9_./-])!uc sprintf("%%%02x",ord($1))!eg; 
        $url =~ s!^(https?)%3A//!$1://!; 
      } 
      $url 
    } 
    

    这可以确保url中的空格编码正确。

    它似乎适用于我,但尚未经过彻底测试。

    链接地址: http://www.djcxy.com/p/49903.html

    上一篇: How to fix "file not found" on git svn dcommit?

    下一篇: How do I convert .pvr (PVRTC) files to .png?