Iteration 1105 — Incoming!

Visualize the changes between forked repositories

One of the reasons DVCS is awesome is because it makes forking cheap and easy. The Bitbucket team ends up forking repositories almost every day – to work on new features, experiments, bugs fixes, or investigations. But once you’ve got all of those forks out there, you might want see what’s different between the parent repository and the developer’s fork. So that’s what we built!

Click the icon pictured above and you can compare a repository with its parent. Bitbucket will show you a list of the changesets. This works both ways: child to parent, and parent to child. Look for the cycle icon to change the direction of the report.

More accurate mapping of commits to users

When setting up Mercurial, one of the first tasks you should complete is configuring the ~/.hgrc configuration file with your full username:

[ui]
username = Justen Stepka <jstepka@atlassian.com>

Unfortunately, folks often forget to do this. When that happens, their commits are recorded with a login name (something like bob). Prior to today, when these changesets are pushed to Bitbucket we tried to be smart and automatically mapped bob‘s changesets to the Bitbucket user bob.

But there plenty of times when the two Bobs were not actually the same person. Bitbucket user bob got confused, wondering where all of these commits came from. And local bob got scared, because it looked like someone else had access to his repository.

This caused a great deal of confusion and a bunch of support requests. Consequently, we’re no longer going attempt automatic username mapping. If a user forgets to set their username in the Mercurial ~/.hgrc configuration file, these commits will remain un-associated in our interface.

But all is not lost! If you’ve got a bunch of changesets that were committed by poor, hapless bob, you can still make sure those commits get linked up. You can create an alias for that username that tells Bitbucket that bob is really Bitbucket user robert.a.smith.

Anytime an unknown user shows up in one of your repositories, you can click on the little question mark (see screenshot) and make an alias for him. This aliasing only applies to an individual repository, and will hopefully minimize confusion. For more information, check out the documentation for custom username aliases.

Improvements

  • Bitbucket now allows you to visualize the difference between two forks.
  • To prevent accidental matches, Mercurial usernames without email addresses are no longer automatically matched up to Bitbucket usernames.
  • The primary input field is now automatically focused on many forms across the site.

Bug fixes

  • Fixed an issue with the email brokers not properly supporting multiple recipients.
  • Fixed a caching bug when accessing a new repository with a large number of changesets.
  • Fixed a display error where text on the explore page is incorrectly positioned when there are no repositories to display.
  • Fixed the wiki textarea input area to have a focused state.
  • Fixed an internal server error when commenting on issues while not logged in.
  • Fixed our event system to better garbage collect memory, so we can keep track of more events in the public and private feeds.
  • Fixed a CSS error when viewing source code that causes indented tabs to display poorly.
  • Fixed a CSS display alignment error when inputting a wiki commit message.
  • Fixed an issue with horizontal scrolling in the source browser.
  • Fixed an issue with help redirects not redirecting when a trailing slash is present.
  • Fixed a security issue with RSS feed authentication.
  • Fixed a security bug where files in a private wiki could be accessed without authentication.
  • Fixed a problem where a user’s issues and issue comments would sometimes be deleted when the user deleted his or her account.
  • Fixed an issue with missing toolbar buttons in the issue and wiki editors.
  • Fixed an issue with our global messaging system displaying multiple success messages.