yas*_*ser 27 svn git indexing git-svn rebase
当我做了一个git svn rebase时,它停止了一点说:
Index mismatch: SHA key of a tree != SHA key of another tree. (我知道这些SHA键对应一棵树而不是上面两个sha键的git show提交.)
re-reading <sha index of a commit in svn/trunk>
... list of files ...
fatal: bad object <SHA1 index of the bad object>
rev-list -1 <SHA1 index of the bad object> --not <SHA1 index of the revision it was trying to re-read>: command returned error: 128
Run Code Online (Sandbox Code Playgroud)
我对git的内部工作方式不是很有经验,所以是否需要按照一系列步骤来剖析像这样的问题并可能解决它们?
Mat*_*ett 33
我有两次这个错误,两次都通过删除.git文件夹中的svn文件夹来解决它.
rm -r .git/svn
Run Code Online (Sandbox Code Playgroud)
然后使用以下命令重建svn元数据:
git svn fetch
Run Code Online (Sandbox Code Playgroud)
您可能会看到以下消息:
Migrating from a git-svn v1 layout...
Data from a previous version of git-svn exists, but
.git/svn
(required for this version (1.7.0.4) of git-svn) does not exist.
Done migrating from a git-svn v1 layout
Run Code Online (Sandbox Code Playgroud)
之后(重建可能需要一段时间,特别是在大型存储库上),您应该再次使用svn存储库的工作镜像.
Mat*_*lse 33
请不要删除.git/svn文件夹来解决此问题.它需要你重建一切,这很烦人,需要一段时间(我的仓库大小几个小时),这是不必要的.
我在这里找到了正确的答案,我在下面列出了它.
从链接:
在.git目录中运行以下命令:
$ find . -exec grep -Hin 5b32d4ac2e03a566830f30a702523c68dbdf715b {} \;
Binary file ./svn/.caches/lookup_svn_merge.db matches
Binary file ./svn/.caches/check_cherry_pick.db matches
Run Code Online (Sandbox Code Playgroud)
现在从第一个命令的输出中删除匹配的.svn/.caches
$ rm ./svn/.caches/lookup_svn_merge.db
$ rm ./svn/.caches/check_cherry_pick.db
Run Code Online (Sandbox Code Playgroud)
现在git svn rebase还是git svn fetch你心中的内容.
yar*_*lig 13
使用以下命令更新git客户端并重新获取上次svn提交:
git svn reset -r 12345
git svn rebase
Run Code Online (Sandbox Code Playgroud)
其中12345是现有的svn修订版.
| 归档时间: |
|
| 查看次数: |
17072 次 |
| 最近记录: |