A single regression was fixed in version 2018.04.10:
- Squash/Amend would error out on Bitbucket 4.x.
A single regression was fixed in version 2018.04.10:
No change to functionality. Just the logo changed to better indicate what this plugin does.
remote: Repository hook com.bit-booster.bb:bit-booster-hook failedremote: Commit '0000000000000000000000000000000000000000' does not exist in repository
One bug fix:
Recent Bitbucket versions renamed the build-status API to 'bitbucket-plugin-build/internal/feature/build/common/build-status-common', so we now have some logic to probe for that.
Yes, yes, we know, we shouldn't call into "internal" APIs, but we're not interested in writing our own build-status integration from scratch, and we can get the native feature with only 3 nested try/catch blocks! :-D
One bug fixed, and one enhancement implemented:
Also a couple rare race conditions fixed around Rebase / Squash / Amend features and forked repos:
Background reading on "squash": I originally based the logic on "git merge --squash", but I've slowly transitioned to a "git rebase --interactive" model over the last 6 months: the pre-filled commit messages became more terse, their order reversed, and now I've dropped the rebase.
Two enhancements and thankfully no bug fixes this time:
Fixed this error (only happens with empty repositories):
Repository hook com.bit-booster.bb:bit-booster-hook failed remote: refs/heads/master is set as the default branch, but this branch does not exist
Before this version, the squash logic could result in an empty commit. We've removed that ability, and instead the pull-request gets automatically declined now if the end-result of a rebase or a squash would be an empty commit.
We've also updated the error messages around this scenario. Here's an example:
-----Rebasing...Success! (see note:)
Rebase succeeded, but caused the pull-request to be declined. The diff was empty. No work was lost, but the rebase caused branch "TKT-123" to be subsumed into branch "master".Reload page to see the now declined pull-request."-----
Background note: the reason a branch can be subsumed into its upstream through a rebase or squash is explained in the git rebase manual (e.g., "git help rebase"). Here's the pertinent sentence:
> Note that any commits in HEAD which introduce the same textual changes as a commit in HEAD..<upstream> are omitted (i.e., a patch already accepted upstream with a different commit message or timestamp will be skipped).
Version 2017.09.27 introduces Build-Status Propagation, a powerful productivity booster.
Bit-Booster - Rebase Squash Amend, with Build-Status Propagation enabled (it's enabled by default) greatly improves this situation:
1. Your CI build is on the slow side (e.g., slower than 1 minute)
2. Your merge policy enforces a rebase workflow.
3. Your merge policy also requires a minimum number of successful builds on the feature branch.
This release contains 2 fixes:
Version 2017.08.01 contains two features, and two bugfixes.
1. The "blind revert blocker" has been removed. This functionality, introduced a year ago, would look for the word "revert" in commit messages and block pushes if a corresponding commit-id was not also present in the same commit message. It's annoyed many of my users, causing all sorts of awkward workarounds. It's time has come. Good bye, blind revert blocker. I liked you, but I think most other people did not.
2. The suggested commit-message in the squash dialogue is now similar to what "git rebase -i" would suggest. And lines that start with "#" are ignored.
Version 2017.06.05 includes two major improvements to the Jira filter on the "All Branches Graph":
Some additional minor improvements to Bit-Booster also included in this release: breadcrumb on "All Branches Graph"; 18th stab-in-dark fix for our longest standing bug; more improvements to error/debug logging.
2017.05.08 release notes:
2017.05.05 release notes:
Bit-Booster now puts three buttons on the pull-request screen (can be disabled via add-on settings):
All three of these rewrite history via "git push --force" if successful. They respect all push hooks and branch permissions.
The "Squash" button also lets you choose the author for the squashed commit if the commits you are squashing happen to have different authors.
Small fixes to the "Squash" logic in this version since the previous version:
- New config screen let's you control commit dates on the main "commits" page. You can use this screen to control the source of the time & date values (CommitDate vs. AuthorDate), and to control whether to enable or disable relative time values (e.g., "42 minutes ago").
- The config screen also let's you disable the Bit-Booster commit graph in favor of the Awesome Graphs version instead, if that's what you prefer.
- Bugfix: commit message with raw tab characters breaks graph.
- Further enhancements to the Jira integration. Introduced a control for quickly switching between repositories that contain commits related to the provided Jira ticket on the All Branches Graph. Demo here: vm.bit-booster.com/bitbucket.
This is the minimum version you must install if you want the "Bit-Booster Git Graph for Jira" add-on to work. Licensing note: "Bit-Booster Git Graph for Jira" does *not* depend on this add-on being properly licensed. It only depends on this add-on being installed.
- Foxtrot prevention uses "default" branch now (instead of being hard-coded to use "master") (change introduced in 2016.7.17)
- The "All Others" filter in the "All Branches Graph" was omitting branches that had been already merged into "master".
- Foxtrot prevention uses "default" branch now (instead of being hard-coded to use "master").
- "All Branches Graph" would not display on Windows installs if the git repo had over 750 branches & tags. Fixed.
- "All Branches Graph" performance (especially infinite scroll) improved significantly.
- Branch & Tag names over 30 characters long are truncated now on "All Branches Graph". The full branch & tag name is available as a tooltip (hover mouse for 0.5 seconds).
- Commit messages that reference Jira ticket numbers are now made clickable, both on the commits page, and on the "All Branches Graph".
- License check is less intrusive.
- License check no longer complains on every push. If the license is invalid, then only blocked reverts and foxtrot merges include a mention of the license being expired (and the commits are still blocked).
- repos with no tags no longer show a spurious error message on "all branches graph"
- blind revert blocker ported to stash3
- some wording fixups in the ui
- Repositories with no tags using Git 1.8.x or earlier no logger report a spurious error on "All Branches Graph". (The "git show-ref" invocation I use under the hood resturns the correct result, but also sets exit-code to -1 when git version <= 1.8.x and there are no tags).
- The "Revert Checker" introduced: this forces "git revert" commit messages to include the reverted commit-id in their log message. Otherwise we cannot cross out the reverted commit on the commits page and the all-branches graph (there is no way to identify it).
- Note: "revert checker" integrated with the foxtrot blocker, so it's still just one hook to enable.
- Minor renamings of some UI elements to improve clarity of the add-on (e.g., "first-parent-hook" renamed "bit-booster hook", "all branches" renamed to "all branches graph").