推送到bitbucket:授权失败

时间:2011-09-19 18:52:07

标签: mercurial push bitbucket

我是 git& github 用户 mercurial& bitbucket 和我试图将bitbucket用于项目。

到目前为止,我已获得对新的私有 bitbucket存储库的写入权限,并I got started通过以下方式:

  1. 克隆
  2. 添加我现有的项目
  3. 提交
  4. 尝试推送,我通过以下方式获取authorization failed
  5. HTTPS

    $ hg push https://mariusbutuc@bitbucket.org/DB2UAdmin/repo
    http authorization required
    realm: Bitbucket.org HTTP
    user: mariusbutuc
    password: 
    pushing to https://mariusbutuc@bitbucket.org/DB2UAdmin/repo
    searching for changes
    abort: authorization failed
    

    SSH

    $ hg push ssh://hg@bitbucket.org/DB2UAdmin/repo
    pushing to ssh://hg@bitbucket.org/DB2UAdmin/repo
    searching for changes
    remote: adding changesets
    remote: adding manifests
    remote: adding file changes
    remote: added 1 changesets with 9664 changes to 9664 files
    remote: You're not allowed to write to this repository.
    remote: transaction abort!
    remote: rollback completed
    remote: abort: pretxnchangegroup.bb_perm hook failed
    

    还尝试通过简单的 HTTP ,得到与 HTTPS 类似的结果。

    我怎样才能让它发挥作用?

    额外详情:

    • python 2.7.1 +
    • mercurial 1.7.5
    • on Ubuntu 11.04

2 个答案:

答案 0 :(得分:4)

  1. bitbucket帐户是在我的Gmail地址[ addr A ]下打开的。
  2. SSH密钥是使用我公司[ addr B ]的地址制作的。
  3. addr B 已作为辅助地址添加到我的帐户中。
  4. 我有mariusbutuc帐户的写入权限,它有两个地址。
  5. ......我仍然无法通过身份验证测试。

    1. 在我的工作地址 - addr B 上收到了管理员的邀请。使用管理员权限,不仅可以写。
    2. 尝试接受邀请,我不能:我的帐户已经可以访问存储库 不得不撤销我自己的访问权限,只是为了能够
    3. 接受管理员权限。
    4. 通过 SSH
    5. 成功推送
      $ hg push ssh://hg@bitbucket.org/DB2UAdmin/repo
      pushing to ssh://hg@bitbucket.org/DB2UAdmin/repo
      searching for changes
      remote: adding changesets
      remote: adding manifests
      remote: adding file changes
      remote: added 1 changesets with 9664 changes to 9664 files
      remote: bb/acl: mariusbutuc is allowed. accepted payload.
      

      我仍然不知道为什么通过 HTTPS [用户名/密码]推送失败了!

答案 1 :(得分:1)

对于那些通过谷歌搜索“pretxnchangegroup.bb_perm hook failed”来到这里的人来说,这可能是因为尝试合并到你没有bitbucket上“分支权限”下的“写入”权限的分支。 据推测,这是因为您应该使用拉取请求进行合并,而不是继续并合并到您的本地。