当子模块存在时,为什么`git mv` coredump?

时间:2015-02-11 13:43:23

标签: git

我有一个名为third_party的目录,我希望将其重命名为thirdPartythird_party的子目录拥有我的git submodules,这可能是相关的。但是,当我尝试重命名目录时,出现以下错误:

$ git mv third_party/ thirdParty
git: builtin/mv.c:259: cmd_mv: Assertion `pos >= 0' failed.
Aborted (core dumped)

现在git status表示我已删除third_partythirdParty已存在,并且包含所需数据。好的,所以谁关心核心是否倾销,我会重新启动git并尝试

$ git add thirdParty/
fatal: Unable to create 'basedir/.git/index.lock': File exists. 

好的,只需删除锁定并继续:

$ git add thirdParty/
$ git status
fatal: Could not chdir to '../../../../third_party/OpenBLAS': No such file or directory
fatal: 'git status --porcelain' failed in submodule thirdParty/OpenBLAS

(OpenBLAS是我的git子模块之一。) 我怎样才能解决这个问题呢?

git version 1.9.1

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:   trusty

$ cat .gitmodules 
[submodule "third_party/OpenBLAS"]
    path = third_party/OpenBLAS
    url = https://github.com/xianyi/OpenBLAS.git
    ignore = dirty
[submodule "third_party/boost"]
    path = third_party/boost
    url = https://github.com/boostorg/boost.git
    ignore = dirty
[submodule "third_party/open-mpi"]
    path = third_party/open-mpi
    url = https://github.com/open-mpi/ompi-release.git
    ignore = dirty

0 个答案:

没有答案