1

我正在将具有历史记录的大型颠覆存储库迁移到 git。我首先使用'git svn clone'命令克隆svn repo。这在克隆时崩溃了,但是,我通过执行“git svn fetch”恢复了迁移。迁移已经成功运行了几天 - 偶尔它崩溃了,我不得不删除 index.lock 文件,如此处详述 -致命:无法创建'/.git/index.lock':文件存在。多次删除此文件后,它成功继续,直到我遇到相同的错误:

    fatal: Unable to create '/path/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
read-tree f49b2a08d26076d9cb2828b9aba5fde30d46f73b: command returned error: 128

但是,这一次删除 index.lock 文件没有用,“git svn fetch”继续抱怨。这是正在发生的事情:

我收到上述错误
我删除了 index.lock 文件
我重新启动 'git svn fetch'
'git svn fetch' 进程重新创建 index.lock 文件
'git svn fetch' 错误再次出现上述错误

所以'git svn fetch'似乎处于一些错误的循环中,它正在重新创建 index.lock 文件,然后抱怨它存在。所以:

我已经删除了 index.lock 文件。
我已经确保机器有足够的磁盘空间。
我已经尝试重新启动机器,以防有一个旧的 git 处理挂在锁定文件上。
我已经按照此处的建议进行了 git gc 和 git prune致命:git-write-tree: error building trees

以上都没有奏效,我是 git 新手。我不想重新开始迁移,因为它需要几天才能运行。谁能建议我可以尝试的其他东西?

4

1 回答 1

2

回答我自己的问题只是为了整理一下。不幸的是,我从未彻底解决这个问题,我们不得不开始新的迁移(事实上,我们在不同的机器上进行了 3 次迁移,第一个完成的迁移需要 2 周的时间才能运行)。如果您正在迁移一个大型存储库(我们的存储库是大约 35 GB 的代码和资产库),预计它会花费很长时间并且会遇到一些挫折。我们经常遇到上述错误,我很高兴地说删除 index.lock 文件并使用“git svn fetch”继续迁移是可行的。我们没有再次遇到上述迁移无法继续的问题。

于 2014-01-10T09:44:21.543 回答