Issue #8678 on hold

"Draft" status on commits (BB-9791)

Klaas van Schelven
created an issue

Our commits (private repo) are showing up as drafts as of recently.

It appears to be the same issue as described here, except that none of the solutions provided there seem to work.

http://stackoverflow.com/questions/20648510/draft-commits-on-mercurial

specifically, I tried turning "This is a non-publishing repository" on and off.

I'm not aware of using "phases".

Comments (41)

  1. NRG Admin

    We're seeing the same behavior on one of our repos:

    https://bitbucket.org/nrg/xnat_builder_1_6dev/commits/all

    The commit that is currently in draft state is:

    https://bitbucket.org/nrg/xnat_builder_1_6dev/commits/af53ee218079c9720537af1c0beae315466b6460

    I did the merge of the pull request same as we've always done, and now it's a "draft" with no explanation of what that means and no indication of how to make it not a draft. When I do "hg incoming" on my local repo, the "draft" merge shows as an incoming change, so I'm not sure what's really different.

  2. NRG Admin

    This looks to be a bitbucket issue, not necessarily a Mercurial issue. Working from Jesse's suggestion above, I tried to run that command, specifying the revision of the changeset explicitly. That gave me the following:

    rherrick@Aerys:~/Development/XNAT/1.6/xnat_builder_1_6dev$ hg phase --force --public -r 2306
    no phases changed
    

    I repeated this with the 7-character checksum, then the full 40-character checksum with the same results.

    So I tried to check the phase of the changeset that bitbucket is showing as being draft:

    rherrick@Aerys:~/Development/XNAT/1.6/xnat_builder_1_6dev$ hg phase -r 2306
    2306: public
    rherrick@Aerys:~/Development/XNAT/1.6/xnat_builder_1_6dev$ hg phase -r af53ee2
    2306: public
    rherrick@Aerys:~/Development/XNAT/1.6/xnat_builder_1_6dev$ hg phase -r af53ee218079c9720537af1c0beae315466b6460
    2306: public
    

    So my local repo thinks it's public, it's showing up just fine, but on bitbucket it's showing up differently:

    Draft changeset

    It was saying "Draft" before, but now it's not, it's just grayed out and weird looking. So... no idea what's going on with it.

  3. Josh Baker

    When committing from the web, the commit shows up as a draft, but it seems to clear itself up after about 15 minutes.

    NRG Admin that specific commit (af53ee2) is a merge commit, so Bitbucket will show it grayed-out since it isn't important.

  4. Joseph Kenny

    Yep, we've got the same problem. Commit pushed to bitbucket repo via CLI listed as a draft on the bitbucket commits page. But hg phase <cs> lists it as public, so I believe our repos are fine, bug in the web source browser or some such thing.

  5. Brodie Rao staff

    This should be fixed going forward.

    We actually had a longstanding issue where we were incorrectly marking changesets Bitbucket made (and changesets pulled through PRs) as drafts. It's only recently when we started exposing draft information that it became apparent.

    I've put out a fix that makes Bitbucket commit/merge PRs with the proper phase. As you push to your repos (or make new commits), you should see the draft commits become public.

  6. Jeff Hinrichs

    Me Too --- draft status on commits in my repo ---arrgh, via the cli no less, not using the web interface. Displaying on commit happening since Jan 31, 2014 -- just noticed it now -- I swear that was nothing about "Draft" on Friday. Feb 7.

  7. Slavita Baciuna

    We are experiencing the same problem on several of our repositories(commits marked as drafts on repositories that do not allow drafts).

    Are there any workarounds for this problem? (we tried turning "This is a non-publishing repository" on and off and it did not work)

    Do you have any information in regards to when this will be fixed?

    Thanks

  8. Islam El-Nabarawy

    I'm experiencing the same issue, but somehow it happened for the last series of commits and not the ones before that.

    The repository was created today and there were commits on it done by myself and a team mate, and only the last group of commits done by myself have this Draft status.

    Screenshot:

    Capture.JPG

    Edit: Commits were done locally and pushed via TortoiseHG on Windows 7 64-bit, in case that's relevant.

  9. David Winter

    Experiencing the same issue. We created a new repo today and pushed a local repo which is running a really old version of Mercurial (1.2.1) that doesn't even support phases, and once pushed up to Bitbucket, the commits are marked as draft.

    Can someone from Bitbucket please comment? Will this cause issues for us? Is it just cosmetic? Or...?

  10. David Winter

    Have just noticed that the commits are now no longer appearing as draft. Looks like this happened at the same time the change to fade out merge commits was deployed. Unless I'm going mad, that happened since I last commented.

    Thanks guys! Avoids a lot of confusion for us.

  11. David Winter

    Looks like I was a bit premature in responding. It appears fixed for a repo that was broken previously, but on other repos, the issue still persists.

  12. Islam El-Nabarawy

    It seems like this issue may be triggered by pushing commits made from an older Mercurial version. I noticed that in our repository, when I pushed my commits they were marked as Draft, but when my colleague pushed her commits they weren't, and they even caused the Draft status to be removed from my earlier commits. I checked and found she was using the latest TortoiseHG with Mercurial 2.9, so I updated mine and the problem no longer happens.

    Hopefully this helps track down the issue, or at least help other people work around it.

  13. kritisen

    I noticed the same problem today.

    I tried "hg phase --force --public -r XX" and found that my Mercurial version on my local computer had not been updated in a while.

    Updated Mercurial.

    Then did a minor edit, commited, and pushed back to the repo.

    "Draft" signs are gone :)

    UPDATE: After posting, I noticed that Islam (2 comments above) found the same solution. Why does bitbucket forum not get a stackexchange kind of voting system so that best answers surface to the top?

  14. Scott Natelli

    I just ran into this issue on Friday, April 18th, on a repository that I have been using for a while with older v2 Mercurial clients. The series of commits displayed with the draft status were all committed and pushed with the same client.

    Draft_Commits.png

    I did not change any of the settings on the repository since I created it or on any of the preexisting client systems I had before this latest push. The draft status appeared when I pushed commits from a machine that had a brand-new installation of Mercurial and TortoiseHG installed on it; v2.9.2 and v2.11.2 respectively.

    So, the issue can't be solely caused by an out of date client like has been mentioned in the other comments, since mine were caused using the most recent Mercurial version. Also, since this issue was opened last year, I just wanted to add that none of my repositories exhibited this behavior until this incident last week. In addition, the affected repository is the only one I have touched in the past couple of months.

  15. Scott Natelli

    I made another push today to the same repository I mentioned in my earlier post, and using the exact same client as well. However, the new commits did not have the draft status on them, and the commits from the 18th no longer have the draft status either.

    New_Commits.png

    The only setting in TortoiseHG I changed today, was the security options when I went to push to the repository; I set the Secure HTTPS Connection to No host validation, but still encrypted (bad). I made this change because I was experiencing the following error, and the solution mentioned in the blog post did not resolve it.

  16. Reinoud van Santen

    This problem suddenly started in one of my private repo's somewhere between 21-05-2014 and 27-05-2014. No changes to the repository where done. hg phase --force --public . on my repo says that no phases where changed. I just changed the setting of the repo to non publishing but I don't know if that's going to fix the problem because no commits have been pushed yet.

  17. Jan-Philip Gehrcke

    I find this annoying, but I have seen this issue come and go in my repos, and it has never actually been an actual problem. My guess is that bitbucket has various kinds of batch jobs, modifying (and possibly auto-correcting) all repos (or at least the web abstraction of them) in this respect from time to time. That would explain the time scale we see things change, as well as that we almost never can correlate these changes with actions on our sides.

  18. Martin Geisler

    To everybody suggesting running hg phases --force --public .: you never need force when you change the phase from secret to draft or from draft to public. This direction is the default direction, so you can safely leave out --force. (You should in general never use a --force flag without reading up on what it does first.)

  19. Rudey Yao

    Found my newly imported HG repo all with 'D' flag - the reason is I'm using an out of date HG client. Using 'hg push' with latest client and after that all 'D' flag disappeared.

  20. Marcus Bertrand staff

    Hi all,

    Please ensure you are running the latest version of Mercurial. Older versions of Mercurial may be incompatible with the newer phases. The issue here should be resolved as of quite some time ago. I will place this issue on hold for now. If, after upgrading the Mercurial client on your machine, you still see this issue, please come to support@bitbucket.org with the full details of your repo with the issue and we'll take a look.

    Thanks,
    Marcus Bertrand
    Bitbucket Developer

  21. Log in to comment