Search code examples
gitgit-svn

git-svn - #object# doesn't exist in the repository at /opt/local/libexec/git-core/git-svn line 4706


on

git svn dcommit

it starts commiting and then I get this

A   spec/controllers/authenticated_system_spec.rb
A   spec/controllers/sessions_controller_spec.rb
A   spec/controllers/users_controller_spec.rb
A   spec/fixtures/users.yml
A   spec/helpers/users_helper_spec.rb
A   spec/models/user_spec.rb
A   vendor/plugins/haml/init.rb
A   vendor/plugins/restful_authentication
7235d9150e8beb80a819923a4c871ef4069c6759 doesn't exist in the repository at /opt/local/libexec/git-core/git-svn line 4706
Failed to read object 7235d9150e8beb80a819923a4c871ef4069c6759 at /opt/local/libexec/git-core/git-svn line 570

any ideas how one goes about fixing this one?

tried inspecting with git fsck --full but git repo and all git commands seem to work fine just can't dcommit.


Solution

  • Did you create submodules in your Git repo ?
    This blog post seems to mention that as an issue.

    As of Jan 2009 git-svn does NOT work with submodules.
    There is no good way to map submodules to svn and the perl script that implements git-svn just bombs when doing git svn dcommit.

    You need to go back and rewrite history.
    You should be able to use git commit --amend.

    $ git tag bad mywork~5
    $ git checkout bad
    $ # make changes here and update the index
    $ git commit --amend
    $ git rebase --onto HEAD bad mywork