dbrasco
dbrasco

Reputation: 1183

Incomplete data: Delta source ended unexpectedly while git svn fetch

I have cloned my svn repo into git and everyday i am doing git svn fetch (i only do changes in SVN) but i am planning to move to git and i keep the git repo in sync for the day since the svn clone tooke me 2 weeks (yeah it's a big repo).

Anyway the git svn fetch has worked fine every day until 2 days ago where i now get

Incomplete data: Delta source ended unexpectedly at /usr/lib/perl5/site_perl/Git/SVN/Ra.pm line 290

at a specific revision. I tried the different suggestions online about git svn reset and going back some revisions and i went about 20 revisions back with no luck. I also tried to run :

git config --get core.autocrlf

which gave true.

I know that the svn repo is working good, i have no issues doing svn up.

Any ideas how i can get back on track to sync again ? I am stuck without ideas what to try.

I might reveal one issue. I don't recall but before running the issue i might have had a disk full on the disk where the repo is when i tried the fetch. Maybe that destroyed something ?

/donnib

Upvotes: 2

Views: 1694

Answers (3)

jszoja
jszoja

Reputation: 349

I resolved similar problem using -r param. My case was as follow:

  • I created /branches/dev branch in SVN at particular revision, eg 1000 and started using it
  • all previous revision were made to /trunk
  • I started master branch migration with git svn clone, which got all svn /trunk to git master
  • then I've added another fetch config for my svn development branch and resumed the svn fetch
# .git/config
[svn-remote "svn"]
    url = http://some-repo/path
    fetch = /trunk:refs/remotes/trunk
    fetch = branches/dev:refs/remotes/dev
  • git svn fetch complained at revision 999, which belong to /trunk and has been already migrated to git master (Incomplete data: Delta source ended unexpectedly at /usr/lib/perl5/site_perl/Git/SVN/Ra.pm line 312)
  • notice error refers to line 312, which might be related to different problem than line 290 referred in this ticket?
  • then I run git svn fetch -r 1000:HEAD, which allowed me to migrate all revisions of /branches/dev excluding revisions before creating /branches/dev

Upvotes: 0

Omer Dagan
Omer Dagan

Reputation: 15976

Using --ignore-paths sometimes helps, so the steps are:

  1. git svn reset -r <svn-version-before-error>
  2. git svn fetch --ignore-paths=/branches/badbranch

Upvotes: 0

boskicthebrain
boskicthebrain

Reputation: 545

  1. Make sure there are no additional git/perl processes running (which could create the index.lock file and mess up the current fetch). Kill'em all.
  2. Delete the ...\my_repository.git\.git\svn\refs\remotes\trunk\index.lock file
  3. git svn reset -r SomeSVNRevisionNumberBeforeTheProblematicOne
  4. git svn fetch

Fetch should continue from the SomeSVNRevisionNumberBeforeTheProblematicOne.

The most probable reason why this happened is concurrency between two git instances running simultaneously on the same repository.

Upvotes: 1

Related Questions