-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
git svn fetch fails with: index uses e 2. extension, which we do not understand #3780
Comments
That seems to be the cause of your issue, your index file got corrupted. How that happened is anyones guess, but you seem to have non-extension data in parts of the index file where git expects extensions to the index.
|
Did the git fsck and no luck. |
I think the only occurrence of that error message is in read-cache.c, so you'll probably need to add that logging to the C code. |
That would require a full rebuild vs a small change in the Perl files. Any other way to determine which file is chocking on ? |
The repo was cloned using the git svn so any extension should have been created by the tool itself. |
Line 70: #define CACHE_ENTRY_PATH_LENGTH 80 draw my attention. |
Yes: |
From the documentation it looks that the extensions have the size in their header but the index entries do not have their size mentioned. Once I runt the git svn gc and rerun the fetch just for the specific SVN revision I get a new index file under SVN tag folder that is 4GB in size. Please advise. |
They have a variable size.
That's an SHA-1 (usually), so 20 bytes.
after the
That's interesting. This could be related to #2179. |
Was checking that issue and is 3 years old and not fixed. |
For new repos you can use the |
2.5 million entries sounds like a lot, but would by my rough napkin math only account for somewhere between 200 and 800 megabytes of the index file. |
My bad! read it wrong the header says 25 Millions |
That would do it.
|
The index file I am talking is under the SVN subfolder and the git svn gc seems to delete it anyway. |
|
running git update-index did not help. Still getting the same error. perl.exe using 1.3GB RAM and still have plenty left on the system |
Any help with this error ? Seems that no matter how many times I restart the 'git svn fetch' using the index v4 I get this error while there is plenty of free memory on the system. |
This would suggest an i686 version of Git might be used, and https://github.com/git-for-windows/git/wiki/32-bit-issues might help resolve it. (It might even help resolve it if the Git in question is of the x86_64 flavor.) |
I am using the 64bit for GIT already. |
I skipped the specific revision by using fetch the -r next revision and the system progressed for a while. Not sure what to do next. Can anyone help please ? |
You're using MSys2 perl, so the path makes perfect sense. Converted to a windows path, that would be |
the line reported in the error is: my @q = &{$info->{U}}(@_); |
I am stuck right now with these multiple issues and I have a huge repo to convert. Any help is appreciated. |
Any update on this issue? Anyone have any idea on how to move this forward ? I am currently stuck on migrating an SVN repo to GIT. |
If you want to perform a one-time migration, it might make sense to use WSL to do it. Historically, Git for Windows' |
@fmuntean you might want to look at https://gitlab.com/esr/reposurgeon, from what I heard it should support many scenarios git-svn doesn't. I think your git-svn misdetected your tags directory and tries to map all of them in your working copy instead of as branches/tags. You might be able to fix that in other ways. |
I am trying to clone a huge repo using GIT SVN I am getting the following error using: git svn fetch
git svn fetch -q -r 64480
error: index uses e 2. extension, which we do not understand
fatal: index file corrupt
write-tree: command returned error: 128
I have the svn repo locally and serving using the svnserve command from local computer thus no issues with netowrking.
svnadmin verify reports no issues.
Setup
-[System Info]
git version:
git version 2.35.1.windows.2
cpu: x86_64
built from commit: 5437f0f
sizeof-long: 4
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon
uname: Windows 10.0 19044
compiler info: gnuc: 11.2
libc info: no libc information available
$SHELL (typically, interactive shell): C:\Program Files\Git\usr\bin\bash.exe
One of the following:
Editor Option: Notepad++
Custom Editor Path:
Default Branch Option:
Path Option: Cmd
SSH Option: OpenSSH
Tortoise Option: false
CURL Option: WinSSL
CRLF Option: CRLFCommitAsIs
Bash Terminal Option: MinTTY
Git Pull Behavior Option: Rebase
Use Credential Manager: Enabled
Performance Tweaks FSCache: Enabled
Enable Symlinks: Disabled
Enable Pseudo Console Support: Disabled
Enable FSMonitor: Disabled
to the issue you're seeing?
nothing special
Details
mingw64
Minimal, Complete, and Verifiable example
this will help us understand the issue.
to work and clone the entire project
error: index uses e 2. extension, which we do not understand
fatal: index file corrupt
write-tree: command returned error: 128
The text was updated successfully, but these errors were encountered: