No change to functionality. Just the logo changed to better indicate what this plugin does.
- Version 2018.03.06 • Released 2018-03-06 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Version 2018.02.22 • Released 2018-02-23 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Bug fixed in the Bit-Booster Hook / Merge Check: since version 2018.01.31 the Bit-Booster Hook, when enabled, blocks all tag or branch deletions attempted via "git push" with the following error message:
remote: Repository hook com.bit-booster.bb:bit-booster-hook failedremote: Commit '0000000000000000000000000000000000000000' does not exist in repository
- Version 2018.02.14 • Released 2018-02-15 • Supported By bit-booster.com • Paid via Atlassian • Commercial
One bug fix:
- Build-status on all-branches-graph was not showing up with newer versions of Bitbucket Server.
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
- Version 2018.01.31 • Released 2018-02-01 • Supported By bit-booster.com • Paid via Atlassian • Commercial
One bug fixed, and one enhancement implemented:
- The bug: Rebase, cherry-pick, and revert functionality was completely broken if LFS (large file storage) was enabled for the repo, and the repo included some LFS backed files. Fixed. (Background: LFS requires origin to point to a https:// or ssh:// remote, but Bit-Booster's temporary clone for rebase uses a file:// remote. Solution: disable LFS pointer resolutions in our temporary clone.)
- The enhancement: Foxtrot merges created from Bitbucket's automatic merge feature are now permitted. This is a special (and subtle!) case where the importance of letting the merge through outweighs the annoyance introduced by the foxtrot merge. We plan to blog about this situation at some future date in 2018, since it's probably interesting to deep-git nerds. At the very least it was interesting to us.
- Version 2017.12.22 • Released 2017-12-22 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- As before, please note: squash is no longer a rebasing squash. It's an in-place squash. Please see previous release notes from version 2017.12.18 for more details.
- Previous version (2017.12.18) completely broke the Squash / Amend functionality for Bitbucket 4.x installs. Fixed!
Also a couple rare race conditions fixed around Rebase / Squash / Amend features and forked repos:
- Rebase / Squash / Amend feature could stop working (buttons greyed out) if "sync changes" was not checked during new fork dialog. Fixed!
- Rebase / Squash / Amend feature could stop working (buttons greyed out) with forks if "Delete Bit-Booster Temporary Clones" button was clicked (from admin screen), and new forks subsequently created. Fixed!
- Version 2017.12.18 • Released 2017-12-19 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Squash is now an in-place squash rather than a rebase squash. This makes it behave closer to "rebase --interactive HEAD~N" that people are more used to. Except the Bit-Booster squash does not silently drop merges! :-D
- All Branches Graph is now free forever (no longer complains about invalid or expired license). Background: I noticed Mohamicorp recently acquired the free "Commit Graph" add-on, and so in case they transition it to a paid add-on (like they did with Webhook to Jenkins), I want to give Bitbucket users an escape route. But do not think I am being altruistic: it's all a marketing play. ;-)
- Amend and Squash are now based on the "git commit-tree" command under the hood. This makes them much faster.
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.
- Version 2017.11.28 • Released 2017-11-28 • Supported By bit-booster.com • Paid via Atlassian • Commercial
Two enhancements and thankfully no bug fixes this time:
- The "All Branches Graph" now includes build status (if available) in the far right column of the table for each commit on the graph. It uses the usual success/failure/in-progress icons and the same build status on-click dialog that native Bitbucket uses. Very useful for getting a quick view of how all your recent branches are doing with respect to their builds!
- The commit message for the Squash functionality is now pre-filled with the commit messages in reverse order. Based on user feedback, this is closer to what people expect, since it's identical to how squashing with "git rebase --interactive HEAD~5" orders the commit messages.(Background info: originally we copied the behaviour of "git merge --squash", which squashes the commit messages using reverse-chronology, but we now agree with our users that the forward-chronology approach used by "git rebase --interactive" is more natural and intuitive).
- Version 2017.10.31 • Released 2017-10-31 • Supported By bit-booster.com • Paid via Atlassian • Commercial
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
- Version 2017.10.02 • Released 2017-10-03 • Supported By bit-booster.com • Paid via Atlassian • Commercial
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 • Released 2017-09-27 • Supported By bit-booster.com • Paid via Atlassian • Commercial
Version 2017.09.27 introduces Build-Status Propagation, a powerful productivity booster.
- Build status propagation is strongly recommended for repositories where the "Minimum Successful Builds" merge check is enabled. This setting prevents rebases (or amends) from slowing down your team, since team members no longer need to wait for builds to complete every time they rewrite history.
- The logic uses "git patch-id" to determine if a pull-request update represents a material change to the patch. If "git patch-id" determines the change is immaterial (e.g., the patch-id is identical), then Build-Status Propagation is activated.
- This prevents rebase fights
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.
- Version 2017.09.18 • Released 2017-09-19 • Supported By bit-booster.com • Paid via Atlassian • Commercial
This release contains 2 fixes:
- Bit-Booster per-repository settings now follow the repository if it's moved to a different project. (Previously moves would cause repo-specific Bit-Booster settings to get reset to defaults).
- Eliminated spurious error messages about bad merge-bases when condensed all-branches-graph results span git orphans.
- Version 2017.09.01 • Released 2017-09-01 • Supported By bit-booster.com • Paid via Atlassian • CommercialSignificant Changes:
- All-Branches-Graph has a filter-by-author control now!
- Cherry-Pick / Revert branch drop-down increased to 50 branches. (Previously limited to 30 branches).
- "Bit-Booster - Settings" link added to Bitbucket global config screen.
- Bug on global settings screen for the "require-fast-forwards" setting fixed. (Current value was not rendering properly).
- Spurious error message removed from All-Branches-Graph when selected branches did not match any branches in repo.
- Version 2017.08.28 • Released 2017-08-28 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Foxtrot merge protection extended to all branches (note: we also changed the default behaviour. Whereas before the default behaviour only protected the default branch -- typically master -- now the default is to protect all branches).
- Foxtrot hook no longer blocks branch deletions or branch rewrites. It only blocks foxtrot merges now.
- Ability to configure protected branches for Foxtrot hook, as well as for Require Fast-Forwards Hook. Configure either globally, or per-project, or per-repo. Based on Bitbucket's "Branching Model."
- Version 2017.08.01 • Released 2017-07-30 • Supported By bit-booster.com • Paid via Atlassian • Commercial
Version 2017.08.01 contains two features, and two bugfixes.
- Squash author selection now includes all previous authors from any previous commit associated with the pull-request (including deleted commits from previous Rebases and Squashes).
- Amend dialog now let's you adjust the commit author. Useful when you accidentally choose the wrong author during a Squash!
- Permanent fix for issue #30 (rebase stops working if BITBUCKET_HOME changes).
- Author select on squash broke in previous version (2017.07.24, from last week). Author dropdown was empty and resulted in squashed commit's author being set to current user.
- Version 2017.07.24 • Released 2017-07-24 • Supported By bit-booster.com • Paid via Atlassian • Commercial
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.16 • Released 2017-06-16 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- All-Branches-Graph now offers a general-purpose search box built on "git log --all --grep=x". Git graph condensing operations no longer confined to only Jira tickets!
- Stacktraces when drawing commit-graphs are now captured and displayed to end-user (to help triage failing commit-graphs). Don't worry, these should never happen. But if they do, I won't have to ask for catalina logs!
- No longer using -Xignore-space-at-eol for rebase / cherry-pick / etc since it can corrupt files that are missing newlines at the end.
- A couple rendering problems with All-Branches-Graph fixed (occasional NPE, and some commits missing sometimes).
- Breadcrumb links on All-Branches-Graph fixed for setups when Bitbucket is not the root URL.
- Rebase / Squash / Amend etc broken on Windows Server installs of Bitbucket (regression in 2017.06.05. Sorry!)
- Jira integration fixed for alpha-numeric project keys (e.g., A23-456).
- Version 2017.06.05 • Released 2017-06-05 • Supported By bit-booster.com • Paid via Atlassian • Commercial
Version 2017.06.05 includes two major improvements to the Jira filter on the "All Branches Graph":
- Branch names are part of the matching logic now (not just commit messages).
- The three most recent tags after a match are now always included in the result. This helps users understand the context around a match.
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.
- Version 2017.05.18 • Released 2017-05-18 • Supported By bit-booster.com • Paid via Atlassian • CommercialNo release notes.
- Version 2017.05.08 • Released 2017-05-09 • Supported By bit-booster.com • Paid via Atlassian • Commercial
2017.05.08 release notes:
- Rebase / Squash / Cherry-Pick functionality automatically disabled now if there is not enough space on disk.
- Fixed bug from 2017.05.05; Non-admins could not use Rebase/Amend/Squash functionality.
2017.05.05 release notes:
- Bitbucket 5 compatibility!
- New feature: Bit-Booster Require Fast-Forwards Hook: "Pull-requests into "important branches" must be rebased or squashed before they merge."
- Feature enhancement: Rebase / Squash / Amend functionality preemptively probes branch permissions to Improve user experience when history rewriting is not possible.
- Bug fix: allow squashes that result in an empty commit.
- Bug fix: better error message when cherry-pick or revert results in an empty commit.
- Bug fix: Rebase / Squash / Amend / Cherry-Pick / Revert was broken for windows based Bitbucket installations. Git reset --hard was blowing up with "Entry 'X' not uptodate. Cannot merge."
- Version 2017.03.18 • Released 2017-03-18 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Stale temporary "bbClones" (untouched after 4 weeks) are automatically deleted. Added some code to make sure this logic is correct.
- Fixed problem where Jira ids stopped being clickable on the all-branches-graph. It's a boring story why. Email me if you really want to know... (firstname.lastname@example.org).
- Version 2017.03.16 • Released 2017-03-16 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Fixed race condition in version "2016.03.15".
- Global settings now allows admins to disable all-branches-graph.
- squash/rebase/cherry-pick etc done with -Xignore-space-at-eol to help avoid EOL conflicts
- bbClones now configured with core.ignoreStat=true to speed things up
- bbClones set with info/attributes of "* -text" to disable all EOL conversions.
- Low heap warning showed on Bit-Booster Settings in repo and project areas (if applicable, e.g., heap less than 1500M).
- Version 2017.03.10 • Released 2017-03-10 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Project and Repository settings now have a "Bit-Booster Settings" menu option. You can use this to enable or disable Rebase/Squash/Amend and Revert/Cherry-Pick per project or per repo. Before the only choice was a global all-or-nothing. This gives Bitbucket admins much finer granularity for controlling the rebase & cherry-pick features.
- The rebase & cherry-pick features would sometimes complain that they could not write ORIG_HEAD in the bbClones temporary clone. Fixed.
- Version 2017.02.23 • Released 2017-02-23 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Cherry-pick button now puts "(cherry picked from commit X)" in the commit message.
- Bugfix: prevent bit-booster temporary clone (under bbClones/) from filling up with invalid refs after the upstream clone garbage collects.
- Version 2017.02.15 • Released 2017-02-16 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Allow strategy-option (-X) for cherry-pick / revert buttons.
- Rebase/Squash now does "git clean -xfd" in the temporary clone after the "git reset --hard" instead of before.
- Version 2017.01.29 • Released 2017-01-30 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- New feature: cherry-pick button.
- New feature: revert button.
- Significant performance improvement for the all-branches graph.
- Version 2017.01.03 • Released 2017-01-03 • Supported By bit-booster.com • Paid via Atlassian • Commercial
Bit-Booster now puts three buttons on the pull-request screen (can be disabled via add-on settings):
- Rebase ("git rebase origin/TARGET")
- Squash ("git merge --squash origin/SOURCE")
- Amend ("git commit --amend")
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:
- Pre-filled squashed commit left as is if you are squashing a single-commit branch (e.g., no longer prepends sentence "squashed commit of the following" if it's just one commit in the first place).
- The commit's author can no longer be changed if all commits to be squashed have the same author.
- Version 2016.12.01 • Released 2016-12-02 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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.
- Version 2016.09.15 • Released 2016-09-16 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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.
- Version 2016.08.26 • Released 2016-08-26 • Supported By bit-booster.com • Paid via Atlassian • Commercial
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.
- Version 2016.7.20 • Released 2016-07-20 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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".
- Version 2016.7.18-stash3 • Released 2016-07-19 • Supported By bit-booster.com • Paid via Atlassian • CommercialNo release notes.
- Version 2016.7.17 • Released 2016-07-17 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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).
- Version 2016.7.6 • Released 2016-07-07 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- Commit messages that reference Jira ticket numbers are now made clickable, both on the commits page, and on the "All Branches Graph".
- Version 2016.7.6-stash3 • Released 2016-07-09 • Supported By bit-booster.com • Paid via Atlassian • CommercialNo release notes.
- Version 2016.7.2-stash3 • Released 2016-07-02 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- License check is less intrusive.
- Version 2016.7.2 • Released 2016-07-02 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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).
- Version 2016.7.1-stash3 • Released 2016-07-01 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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
- Version 2016.6.28 • Released 2016-06-28 • Supported By bit-booster.com • Paid via Atlassian • Commercial
- 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").