Repo "aragost/projrc" requires authorization although there are no changes to push (BB-4794)

Issue #4321 resolved
Former user created an issue

I use aragost/projrc as a subrepo. I have no changes to be pushed in this subrepo (and I have no permission to push to that subrepo). When I try to push the master repo, projrc requests authorization. We have several other subrepos from bitbucket (for example, onsub), where this is not the case.

To reproduce the problem, just clone aragost/projrc, don't change anything and try to push:

{{{ D:\Users\schueler\tmp\projrc>hg push pushing to searching for changes no changes found http authorization required realm: HTTP user: lantiq password: }}}

As far as I understand it, you should be able to push when there are no changes, because the discovery phase of push does only require read permission (which I obviously have, because I can clone the repo). See, for example, this discussion: I'm especially referring to this paragraph:

{{{ An empty push to a pullable repo should always work, regardless of whether you have permission to push or not. The first part of the push, discovery, is allowed for both push and pull, and the second part (actually sending a bundle) is skipped if there's nothing to send.

So unmodified subrepos shouldn't be causing a problem. }}}

I'm using the current Mercurial, version 2.2.3.

Comments (6)

  1. Brodie Rao
    • changed status to open

    After further investigation, it looks like this is a bug in how Bitbucket creates merge commits. We're leaving the commits at the default phase of draft, and they should be set to public.

    I'll look at getting out a fix soon.

  2. Brodie Rao

    OK, I've pushed out a fix for this. In the future, pull requests should create public changesets.

    I've also set the tip of aragost/projrc to public, so that should fix your specific case. I may look into fixing other repos, but in the meantime hopefully they'll be fixed as people push to them.

  3. Log in to comment