How does MergeBoard work?

MergeBoard can be easily integrated into almost any software development workflow. Once MergeBoard is configured, all you need to do is tell your team members to use MergeBoard to create and review merge requests in the future. You can continue to use all other functions of your code hosting platform as before.

In practice, the new workflow could look like this: After a team member pushes their changes to a feature branch, they open the project’s MergeBoard and create a merge request. Another member of your team (reviewer) will be notified and can take a look at it. Typically they either provide feedback or approve the merge request. If a merge request fulfills all requirements (enough approvals, CI passed, etc.) it can be merged into the target branch.

Technical Integration: In the background MergeBoard mimics the actions of someone manually merging two branches. MergeBoard fetches the changes from your source git repository, creates a merge commit and pushes it to the target git repository. In most cases the source and target repository (git remote) will be the same.

No, MergeBoard only handles the code review workflow and does not include any support for hosting git repositories. Our aim is to provide a great code review experience that you can integrate into your existing workflow, without forcing you to switch away from the tools you are used to. As minimum requirement you need to provide access to a git repository via network (e.g., via SSH, HTTP(S) or the git protocol).

Please note that your choice of git hosting service/software might also have influence on the available integration, e.g., issuetracker and CI integration is only available for a few git hosting services so far.

Yes, you can install and run MergeBoard on your own servers if you prefer. Nevertheless, we would like to emphasize that we make great efforts to secure your data on our SaaS servers. Our staff will never access the source code stored in your MergeBoard workspace unless you grant us permission as part of a support ticket or we are required to do so by law. Another advantage of the SaaS version is that you do not have to take care of the setup and maintenance of the software yourself.

If you enable the InspecDiff mode in MergeBoard, the software parses your source code into an abstract syntax tree (AST). This tree contains all tokens from the source code in a structured way. For example, parsing if (a) { b(); } might create a tree similar to:

 [If Node]
   ┌─┼──────┬───────┬───────┐
  if ( [condition]  )  [statement]
            │          ┌────┴───┬────────┐
            a          { [Function Call] }
                              ┌─┼─┐
                              b ( )

MergeBoard parses the old and new version of the source code in this way and then compares the generated trees instead of the text representation. This immediately provides some advantages over traditional diff algorithms.

Many styling related changes are directly filtered out. The tree is the same regardless of whether you write if (a) { b(); } in a single line or split it up over multiple lines. The AST also makes it much easier to detect how the code has been modified, since we know the structure of the source code. MergeBoard can distinguish between a renamed function or variable. This allows us to implement some exciting features that would be very hard to replicate and more error prone when treating everything just as text.

MergeBoard also contains language-specific rules to hide certain changes that would not affect the program flow. For example, removing the curly brackets (i.e. if (a) b();) would not yield a change in the diff.

Yes, but also no. MergeBoard supports any number of upstream and downstream repositories, but there are some features missing yet to make the fork and pull model really usable. In order to create a merge request, the project owner or a maintainer would need to manually add the remote of the fork and either convince the fork author to setup a webhook or pull the changes manually whenever the repo is updated. This can work if you have a small number of contributors but would alienate first time contributors.

We are aware of this issue and plan to resolve it in the near future. We haven’t decided on a final solution yet, so if you are affected by this, drop us a mail. We would like to hear how you would imagine the collaboration with your contributors.

Feel free to schedule a demo, we are happy to tell you more about our product! You can also visit our documentation at https://cloud.mergeboard.com/docs/ for more details.


Which features does MergeBoard support?

The basic diff functions are available for all text files and even some image formats. The more advanced features (InspecDiff) are available for the following languages:

  • Fully supported: C++ C CSS3 Go JavaScript JSON Lua Python Rust SCSS TypeScript
  • Beta support: HTML Java Latex Vue.js
  • Coming soon: Bash C# Common Lisp CUDA DOT Elm Emacs Lisp ERB / EJS Fennel GLSL (OpenGL Shading Language) HCL Make Markdown OCaml PHP R Ruby SPARQL Svelte SystemRDL TOML Turtle Verilog VHDL WASM WGSL WebGPU Shading Language YAML Agda Dockerfile Erlang Go mod Hack Haskell Julia Kotlin Nix Objective-C Perl Scala Sourcepawn SQL Swift

Your language is labelled as “Coming soon” or you don’t see it at all? Contact us and we will look into it.

MergeBoard can interact with any git hosting service that provides network access to the repository via SSH, HTTP(S) or the Git protocol. MergeBoard supports authentication via SSH key or username/password. Please note that this only ensures that you can fetch changes and merge them. Further integrations (CI, issue tracker, etc.) are only supported for certain hosters.

If you are looking for the best overall integration, you might want to check out GitLab or GitHub. We will extend our integrations based on user feedback, so please contact us if you think MergeBoard could be enhanced by adding support for a third-party software.

We currently support GitLab, GitHub, Bugzilla and Jira. We plan to extend this list based on user feedback, so please contact us if your issue tracker is not yet supported.

The basic concepts of CI and the MergeBoard scanners are very similar. Both execute tools on the source code in a sandboxed environment and their results affect whether a merge request can be merged. The main difference is that scanners do not just return a success or failure state, but instead create change requests for any issues found.

These requests can then either be resolved by altering the code or they can be marked as false positive or intentional. MergeBoard only takes scan results into account that were introduced by the source code changes and ignores those that were already present. This makes scanners the optimal candidate for static code analyzers with a small number of false positives or if you want to enforce new tools without fixing all the existing code.

Please note that MergeBoard does not implement it’s own CI and only supports the integration with external CIs. You can also not add your own scanners but are limited to those implemented in MergeBoard.

MergeBoard can fetch the CI status from GitLab, GitHub and Bitbucket. Please contact us if your CI pipeline is not yet supported.


Licenses & Trial

A trial is a normal license with a user limit of 100 users that expires after 14 days. All features of MergeBoard are available without any restrictions. You can upgrade to a paid plan at any time while the trial is active or within 30 days after it expired.

MergeBoard Cloud: Start a new trial, go to Administration ➜ Billing and choose a plan.

MergeBoard On-Premises: We do not yet provide an automated way to order on-premises licenses. If you are interested in our on-premises solution, please contact us.

All users who are not disabled, i.e. don’t have the “Disabled” flag set, are counted against your license. Please note that depending on your settings, the number of users can increase without your confirmation. This may be the case if you have user registration or OAuth based logins enabled.

You won’t be able to create new merge requests. Merge requests that are already open can still be worked on, e.g., you can comment on them, merge them, etc.

MergeBoard Cloud: In case you are using our SaaS product (MergeBoard Cloud), your workspace will enter a grace period in which you will be able to renew your license. If this period expires without you having acquired a new license, your workspace and all data associated with it will be permanently deleted.

If you are using a trial license to test MergeBoard there is nothing to do. The trial will not convert into a subscription without you explicitly ordering a license. If you instead have an active subscription, use the following steps:

MergeBoard Cloud: Open your MergeBoard workspace, go to Administration ➜ Billing and select your active contract by clicking the “View” button. You can now cancel your subscription by clicking “Cancel Subscription” in the “Your current Subscription” box.

MergeBoard On-Premises: Please send an email to support@mergeboard.com to cancel your subscription.

The premium and standard support are both email based. You can submit a ticket by writing an email to support@mergeboard.com. The difference is that the premium support comes with an SLA. When choosing premium support, we guarantee a 24-hour response time on weekdays, excluding holidays in Germany, Baden-Württemberg.

We try our best to resolve any issues to your satisfaction as quickly as possible, but please be aware that our SLAs times are not to be considered as an expected time-to-resolution. If you want your issue to be resolved quickly, make sure to include all necessary information in your initial mail.

If you need higher SLAs, please contact us and we try to make you an offer.

Yes, if you are a maintainer of an open source project, you and your contributors will be able to use MergeBoard Cloud free of charge! We are currently working on the last details to integrate MergeBoard into the workflow of open source projects. Feel free to contact us and tell us more about how you would like to use MergeBoard in your open source project.


Billing

The supported payment methods for MergeBoard Cloud are:

  • Credit Cards: Visa, Mastercard, American Express, China UnionPay
  • SEPA Direct Debit

If you are interested in an on-premises solution, please contact us.

With a monthly subscription, you are billed at the end of each month based on the maximum number of users enabled during each day of the month. Disabled users are not included in the billing calculation.

For example: You have 12 users enabled and add 3 more during the middle of the month. For simplicity we assume that you are charged 10€/month for each user. You invoice amount would be calculated as follows:
12 * 10€ * 0.5 + 15 * 10€ * 0.5 = 135€

The main difference between an annual and a monthly subscription is that you pay for a certain amount of users in advance at a discounted rate. If you add more users to your workspace than you paid for, you are billed for the additional users in the same way as a monthly subscription. As long as you are using more users than included in your pre-paid plan, you will therefore get an invoice at the end of each month.

Assuming you have an annual subscription with X users, and you add Y extra users (so you have X + Y users total), then those extra users will be billed based on the monthly subscription prices for users X + 1 to X + Y. This detail is important if the per user price varies in your plan depending on the user count. In the case of X=10 and Y=2, the two additional users are billed based on the monthly user price for the 11th and 12th user and not 1st and 2nd.

If users are added or removed during the month, they will be billed on a pro-rata basis.

For example: You have 3 pre-paid users and add 4 more users during the middle of the month. We assume that the monthly user price is 10€/month for the first 5 users and 25€/month starting at the 6th user. So you would pay 10€/month for the fourth and fifth user and 25€/month for the sixth and seventh user. Since you added the users in the middle of the month, your invoice amount would be calculated as follows:
2 * 10€ * 0.5 + 2 * 25€ * 0.5 = 35€

Please take a look at our pricing page for the actual monthly subscription prices.

MergeBoard Cloud: Open your MergeBoard workspace, go to Administration ➜ Billing and select your active contract by clicking the “View” button. You can now edit your billing information.

MergeBoard On-Premises: Please send an email to support@mergeboard.com to update your details.