1

在 Cygwin 上使用 git-svn 执行远程操作,例如:

  • git svn 变基
  • git svn dcommit
  • 等等

导致出现有关错误配置文件的许多奇怪错误消息之一

$ git svn rebase
fatal: bad config file line 1 in /home/tj/.gitconfig
fatal: bad config file line 1 in /home/tj/.gitconfig
Cannot rebase: You have unstaged changes.
Please commit or stash them.
rebase refs/remotes/git-svn: command returned error: 1

实际上没有任何未分级的更改,该错误消息似乎是配置文件问题的产物:

# On branch master
nothing to commit (working directory clean)

有时它会抱怨同一文件中的其他行,或 .git/config 中的行

我实际的 git 配置文件非常简单,完全相同的配置文件在其他机器(也运行 Cygwin)上也能正常工作。以供参考:

.gitconfig:

[user]
        name = tj
        email = tj@example.com

.git/配置:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        preloadindex = true
[svn-remote "svn"]
        url = https://url.to/repository
        fetch = :refs/remotes/git-svn

octo-spacing 是文件中的一个选项卡,在 vim 中使用 set list 查看文件显示没有奇怪的字符混在一起。

最奇怪的是,有时它可以毫无问题地工作。但是,在短时间内,它会继续显示错误消息。如果有人知道这个问题可能是什么,或者如何解决它,我将不胜感激。

谢谢!

编辑:

到目前为止我已经尝试过:

  • 从运行 Cygwin 的工作机器复制好的配置文件
  • 在 Cygwin 中运行 rebaseall
  • 重新安装 git-svn 包

我可能会尝试:

  • 重新安装 Cygwin(宁愿不)

编辑2:成功?

在摆弄了几个小时之后,我尝试从 git 配置中一一删除,看看它是否有所作为。

从 .git/config 文件中删除 preloadindex = true 似乎已经解决了这个问题,尽管很难确定。

4

1 回答 1

1

罪魁祸首确实是core.preloadindex = true,这在cygwin中表现不佳。

于 2013-03-31T04:02:41.837 回答