scttnlsn/dandelion

repository.rb:99:in `lookup': Object not found

bobrocke opened this issue · 6 comments

With dandelion v0.4.10 I get this error when attempting to deploy:

RockBox:www.grav.dev bob$ dandelion --config=production.yml deploy
Connecting to ftp://bobrocke@ftp.bobrockefeller.com//public_html/materialize.bobrockefeller.com
Remote revision:    d562e7419defe903c3bf5a4a7efadd82efb92c0d
Deploying revision: f773c9e15f6ef64386917c3fd6416af18917a778
Deploying changes...
Writing file:  user/pages/03.accordions/accordions.md
Writing file:  user/pages/04.stylesheet/stylesheet.md
Writing file:  user/plugins/materializer
/Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/rugged-0.21.4/lib/rugged/repository.rb:99:in `lookup': Object not found - failed to find pack entry (24fc42875a5cac592aac66b85686c97e91d32216) (Rugged::OdbError)
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/rugged-0.21.4/lib/rugged/repository.rb:99:in `lookup'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/tree.rb:19:in `block in data'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/tree.rb:14:in `each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/tree.rb:14:in `data'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/changeset.rb:27:in `block (2 levels) in each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/change.rb:12:in `call'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/change.rb:12:in `data'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/deployer.rb:49:in `deploy_change!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/deployer.rb:13:in `block in deploy_changeset!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/changeset.rb:28:in `block in each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/diff.rb:41:in `block in each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/diff.rb:37:in `each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/diff.rb:37:in `each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/changeset.rb:20:in `each'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/deployer.rb:9:in `deploy_changeset!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/command/deploy.rb:55:in `deploy_changeset!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/command/deploy.rb:30:in `execute!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/lib/dandelion/cli.rb:73:in `execute!'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/gems/dandelion-0.4.10/bin/dandelion:8:in `<top (required)>'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/bin/dandelion:23:in `load'
        from /Users/bob/.rvm/gems/ruby-2.0.0-p247@rails3/bin/dandelion:23:in `<main>'

How can I fix that?

Could you provide the output of git show 24fc42875a5cac592aac66b85686c97e91d32216 and git fsck 24fc42875a5cac592aac66b85686c97e91d32216?

Is user/plugins/materializer a normal file?

user/plugins/materializer is a normal directory.

RockBox:www.grav.dev bob$ git show 24fc42875a5cac592aac66b85686c97e91d32216
fatal: bad object 24fc42875a5cac592aac66b85686c97e91d32216

and

RockBox:www.grav.dev bob$ git fsck 24fc42875a5cac592aac66b85686c97e91d32216
Checking object directories: 100% (256/256), done.
Checking objects: 100% (9046/9046), done.
dangling blob a8a0bfe2f3d9804dd1f9ce46f06cb4f49d8059f6
dangling blob 82adaab1841b5bc76b95140063666fe5afb35b81
dangling blob f84c9ec0e22c1c97d1e08e9709f30e415bdeeee3

What do you make of that?

user/plugins/materializer being a directory is likely the reason for the error. Not sure why that is showing up in the diff. Could you run git diff d562e7419defe903c3bf5a4a7efadd82efb92c0d f773c9e15f6ef64386917c3fd6416af18917a778 --name-only and paste the output?

RockBox:www.grav.dev bob$ git diff d562e7419defe903c3bf5a4a7efadd82efb92c0d f773c9e15f6ef64386917c3fd6416af18917a778 --name-only
user/pages/03.accordions/accordions.md
user/pages/04.stylesheet/stylesheet.md
user/plugins/materializer
user/themes/materialize

And thanks for the fast help!

Is user/plugins/materializer a submodule or symlink? Let's continue this discussion here: https://gitter.im/scttnlsn/dandelion

v0.4.12 should fix the error you're seeing and will gracefully ignore submodules. For now you'll need to deploy each submodule independently. In #74 we're discussing the possibility of having Dandelion handle submodule deployment.