How often do you have to stop what you are doing to solve a conflict in a pull request? How long does it take before you get refocused on the task at hand? Wouldn't it be great if a bot was able to automatically solve most of those merges so you don't have to waste time in context switching?

Well, that's precisely what we are working on. We call it mergedroid and it is a way to apply our Semantic Merge technology to the server side to reduce manual intervention when merging pull requests. It is the same merge tech that comes with gmaster, but applied to solve GitHub pull requests.

We found that between 16 to 30% of conflictive pull requests can be fully automated by mergedroid, saving tons of precious time.

Do you want to learn more about mergedroid? Go to

gmaster (short for Git Master) is a Git GUI designed to solve 3 key issues that users face: branching is hard to understand, merging is a nightmare and committing changes is tougher than it should.

To solve these 3 key problems, we introduced 3 solutions in gmaster:

  • Natural branch visualization – so understanding branching becomes trivial.
  • Built-in merge tools with semantic superpowers - to remove the pain out of merging.
  • One step commits: to simplify saving changes.

These were the goals we had when we decided to develop it. And these are the key differentiators when you compare gmaster to all the other Git GUIs around.

Git is a powerful way to share and control source-code. It can keep track of source-code, its changes and collaborate with other developer's safely. But, unfortunately, most of the client tools that can communicate with Git are all based on command line (aka shell or prompt).

Remembering all the Git commands and their parameters are difficult and very hard on your brain. A branch-based approach becomes pretty hard to see and you can miss the whole overview of dependencies and relation between branches.

This is why a graphical interface client for Git can transform and improve your development process. And gmaster can take this to the next level. In this post, we are going to cover the first steps with gmaster and you will be able to see how much detail you miss by not using gmaster.

By the end of this post, you will have Microsoft's GVFS up and running on your PC, and be able to use it with gmaster, your favorite (I-hope-so) Git client.

Size comparison between a full clone and a GVFS clone

The cool thing about GVFS, in case you didn't know, is that you can now have large Git repositories on your PC, -even the ones too big for your hard drive-, while the operations on it are still super-fast, regardless of its size.

This is because you won't really have the entire repository on your PC. GVFS, short for Git Virtual File System, will silently download on demand the necessary files to your PC, just when you or any other program on your PC require them. You can read more about how GVFS works here (you'll see our logo at the bottom!); this post is just a guide to get you started with GVFS and gmaster.

By the time I'm writing this, GVFS requires a computer with Windows 10 1703 (Creators Update, released on April 2017) or later. Because it also requires a service that supports the GVFS protocol, for now you are restricted to using Visual Studio Team Services if you want to try GVFS, although other big players in the field, such as GitHub and BitBucket are working to bring GVFS support to their platforms, and GitHub is working with Microsoft to bring GVFS support to GNU/Linux and macOS.

Are you ready? Ok, let's go!

Nowadays, most developers and designers love to use customized themes for their tools. In my case, I prefer especially dark themes. They help me to keep focused and avoid distractions. But, maybe your preferences go in another completely different direction.

As you know, a theme can be everything from the color of your sidebar to tabs, and things like that. In gmaster, you have complete control to transform these however you want.

You can change your active theme by clicking on the top-right menu Theme. Then, you can switch between the Light or Dark theme.

In this tutorial, we are going to learn how we can build and use our customized theme.

You have seen it more than once. Every time you create a branch, next to the "Manual" tab -where you are stuck at-, there is a disabled "From task" tab. Yes, gmaster has supported the creation of branches from issue trackers for a long time. But no, gmaster does not have a dialog in place to configure them yet.

So, let's see how we can configure an issue tracker extension by hand.

You just moved some method to a different file while doing a refactor. You know, cleaning up stuff and making it clearer. Chances are you modified the moved code.

What about diffing it now? Not trivial, is it?

And, what if someone modified the method at the original location while you were refactoring? A very ugly merge... at best.

What if your Git client understood the refactors well enough to help you in this example?