Eri*_*cis 93 capistrano rvm-capistrano capistrano3
INFO [050fe961] Running mkdir -p /home/rails/rails-
capistrano/releases/20140114234157 on staging-rails
DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 )
INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful).
INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails
DEBUG [2dea2fe5] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 )
DEBUG [2dea2fe5] fatal: Not a valid object name
DEBUG [2dea2fe5] tar: This does not look like a tar archive
DEBUG [2dea2fe5] tar:
DEBUG [2dea2fe5] Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)
我对两件事感到困惑:
为什么Capistrano在git archive这里运行:
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
为什么tar失败?
kub*_*ing 294
我有同样的问题,直到我意识到我从git中拉出了不存在的分支.
Jor*_*nel 14
当要部署的服务器中的repo搞砸时会发生这种情况.我们正在谈论Capistrano默认会放入的裸git仓库/var/www/$application/repo(供其他人参考).
在您的情况下,它没有本地功能/ Capistrano分支,因此在运行时git archive feature/Capistrano没有任何内容输出到该|管道.要确认,请进入服务器,进入/ home/rails/rails-capistrano/repo,然后运行git branch.
它正在运行git archive作为导出所选分支树的方法.git archive "将其写入标准输出",因此Capistrano将其重定向到tar,以便立即将存档解压缩到新的发布目录中.(为什么Capistrano选择了这个而不是git checkout让我失望.)
tar失败了,因为它什么都没收到d:
我可以想到两种可能的解决方案/解决方法:
git remote -v) - 你可能只需要更新你:repo_url的deploy.rb(并删除repo/dir).每当我遇到此错误时,都是因为我的部署/环境.rb 文件中指定的分支未签入 git。执行 add / commit / git push originbranch_name ,这可能会使事情正常进行。