尝试 couchapp 推送我从团队的 Git 存储库更新的代码时出错

Posted

技术标签:

【中文标题】尝试 couchapp 推送我从团队的 Git 存储库更新的代码时出错【英文标题】:Error when trying to couchapp push code that I updated from team's Git repo 【发布时间】:2011-07-04 09:53:48 【问题描述】:

[CRITICAL] 无需重复

以上是我尝试在我的 couchDB 中推送代码时遇到的错误。在我尝试从我们团队使用的 Git 存储库中提取更改之前,一切都运行良好。还没解决。

任何想法或帮助将不胜感激!

详细的错误报告如下(更多信息。):

thinkboard$ couchapp push http://localhost:5984/thoughtboard_db 2011-07-04 14:52:52 [关键] 没有什么可重复的 $ couchapp 推送 http://localhost:5984/thoughtboard_db 2011-07-04 14:52:52 [关键] 没有什么可重复的 回溯(最近一次通话最后): 文件“/usr/local/lib/python2.6/dist-packages/couchapp/dispatch.py​​”,第 48 行,在调度中 返回_dispatch(args) _dispatch 中的文件“/usr/local/lib/python2.6/dist-packages/couchapp/dispatch.py​​”,第 92 行 返回乐趣(conf,conf.app_dir,*args,**opts) 文件“/usr/local/lib/python2.6/dist-packages/couchapp/commands.py”,第 79 行,在推送中 doc.push(dbs,noatomic,浏览,强制) 推送中的文件“/usr/local/lib/python2.6/dist-packages/couchapp/localdoc.py”,第 122 行 doc = self.doc(db, force=force) 文件“/usr/local/lib/python2.6/dist-packages/couchapp/localdoc.py”,第 185 行,在 doc self._doc.update(self.dir_to_fields(self.docdir, manifest=manifest)) dir_to_fields 中的文件“/usr/local/lib/python2.6/dist-packages/couchapp/localdoc.py”,第 303 行 elif self.check_ignore(名称): 文件“/usr/local/lib/python2.6/dist-packages/couchapp/localdoc.py”,第 285 行,在 check_ignore match = re.match(i, item) 匹配中的文件“/usr/lib/python2.6/re.py”,第 137 行 return _compile(模式,标志).match(字符串) _compile 中的文件“/usr/lib/python2.6/re.py”,第 245 行 raise error, v # 无效表达式 错误:没有什么可重复的

【问题讨论】:

【参考方案1】:

我不确定出了什么问题(如果我在 IRC 上看到 Benoit,我会问他)。也许是一种解决方法?

改为创建.couchapprc。它是一个标准的 JSON 对象。

cat > .couchapprc
 "env":
   "dev"    : "db": "http://localhost:5984/thoughtboard_db"
  , "staging": "db": "http://user:pass@staging.server:5984/thoughtboard_db"
  

现在只需使用couchapp push dev 推送即可。

标准做法是不要将此文件签入 Git,因为它有(或将来可能有)生产密码。事实上,告诉 git 忽略它。

echo .couchapprc >> .gitignore
git add .gitignore
git commit -m "Ignore the .couchapprc"

如果您担心将密码留在系统上的(git 忽略)文件中,请考虑您的 shell 命令(带有任何密码)已经存储在 $HOME/.bash_history 中,并且在命令行输入的密码是世界可读的在 couchapp 运行时输入 ps。 (这可能与您的情况无关,只是提醒您。)

【讨论】:

【参考方案2】:

谢谢@jhs!

添加默认或开发环境对我没有任何用处。不过,这次我按照您的指示收到了不同的错误消息(仅在 .couchapprc 中添加了开发环境)

$ couchapp push dev .
2011-07-05 20:51:54 [CRITICAL] 'msg': '', 'status_int': 400, 'response': <couchapp.client.CouchdbResponse object at 0xa2ead6c>

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/couchapp/dispatch.py", line 48, in dispatch
    return _dispatch(args)
  File "/usr/local/lib/python2.6/dist-packages/couchapp/dispatch.py", line 92, in _dispatch
    return fun(conf, conf.app_dir, *args, **opts)
  File "/usr/local/lib/python2.6/dist-packages/couchapp/commands.py", line 76, in push
    dbs = conf.get_dbs(dest)
  File "/usr/local/lib/python2.6/dist-packages/couchapp/config.py", line 144, in get_dbs
    return [Database(dburl) for dburl in dburls]
  File "/usr/local/lib/python2.6/dist-packages/couchapp/client.py", line 223, in __init__
    self.res.head()
  File "/usr/local/lib/python2.6/dist-packages/couchapp/restkit/resource.py", line 121, in head
    params_dict=params_dict, **params)
  File "/usr/local/lib/python2.6/dist-packages/couchapp/client.py", line 141, in request
    raise RequestFailed(str(e))
RequestFailed: 'msg': '', 'status_int': 400, 'response': <couchapp.client.CouchdbResponse object at 0xa2ead6c>

【讨论】:

以上是关于尝试 couchapp 推送我从团队的 Git 存储库更新的代码时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CouchDB 中提取 CouchApp

TortoiseGit尝试推送时要求我输入密码

更改 Git 中推送的凭据

Couchapp 在查询视图时返回 304

VisualStudio 如何快速添加一个 Git Tag 推送

git:推送事件触发