gmaster now supports PHP

Monday, February 04, 2019 21 Comments

PHP is used broadly across the web. Any given user of a popular programming language like PHP would expect the tooling supporting the language to be problem-solving, right?

Well, that's all the latest gmaster update is about. If you are a PHP developer, you can now benefit from diff and merge capabilities that understand PHP.

In essence, what this means for PHP users is that using gmaster as your Git client will render more automatic merges to your code base as well as help prevent conflicts during integration. How does this magic happen? Read on.

Git client with semantic super powers

Have you ever been confused about merging or rebasing PHP code? You have a staging / testing branch with a couple of commits and you want to merge it to main development branch, crossing your fingers that no conflicts arise. With gmaster's new support for PHP the number of automatic merges will dramatically increase because it now understands the language. In other words, what other merge tools consider a conflict, gmaster won't. Let's say a developer makes changes inside a method. That method, in the eyes of a random merge tool will look different than the unchanged method, but under gmaster's PHP parser, it's not. That is just one example of a minimal change that could generate integration conflicts. See below other examples from the gmaster's interface:

In this example, a changed and moved method conflicts with a changed method. The tool will identify all changes affecting the same method:

An evil twin conflict will also be detected as shown below:

Monster merges

Some of the merges performed in small code bases do not need to invoke the semantic powers of gmaster. It is when a massive, full of conflicts, merge comes your way when a tool like gmaster becomes extremely handy.

To demonstrate this, we ran some tests and collected some numbers to help PHP users measure what would this mean for their projects. Although the test ran on a C# repo, there is nothing in the PHP grammar that would prevent gmaster from getting the same or even better results.

gmaster's semantic merge tool was tested with the Git Extensions repo. Every commit with two parents was taken as a merge. Once the list was ready gmaster, ran every merge again. This is what we got back from it:

We found that between 16% to 30% of conflictive PRs can, in fact, be fully automated. In fact, 28,57% of all the manual merges can be automated. In other words, 98 manual merges could save up to 24,50 hours of conflict resolution time.

Drilling down to the actual files conflicting in manual merges, after running our test we found out that 41,92 % of the manual file merges could be automated. Specifically, 332 manual file merges are automated with gmaster. That is 16,60 hours of integration work saved with an adequate solution.

gmaster is free PHP, pirates!

PHP is the 4th language by usage in GitHub. Although some people have said nasty things about PHP, yet there it is, atop usage charts of a platform hosting over 96 million repos that grow at a 40% yoy. Facebook themselves build part of their platform with their own flavor of PHP!

If your VCS of choice is Git and your preferred programming language is PHP, you have a complete Git client with semantic steroids that can solve most of your integration conflicts.

We develop gmaster, a Git GUI with semantic superpowers. It parses the code to really understand how it was refactored and then diff it and merge it as a human would do, matching methods instead of lines.

If you want to try it, download it from here.

We are also the developers of SemanticMerge and Plastic SCM, a full-featured version control.


  1. Seems promising, would definitely give it a try, thankyou

  2. Hi
    Great that you keep doing fantastic work.
    I have two questions and appreciate if you answer:
    1) Do you plan to add support for self-hoster GIT servers and/or Self-Hosted Bitbucket?
    2) Is there any GMaster forum available (like for PlasticSCM)?

    Best regards

    1. Hey, I can answer 1) with yes, since I'm currently using it with a privately hosted GitLab server! It's not a completely smooth ride to get working, but the support team has been very helpful to me.

  3. They can easily avoid writing additional code by executing conditional code through ternary operator instead of If/Else statements.web design company Toronto

  4. Frequently developers think that its overwhelming to comprehend and alter the code composed by others. Consequently, they need additional opportunity to keep up and update the PHP applications effectively.Why use Laravel

  5. Wow! This could be one particular of the most helpful blogs We’ve ever arrive across on this subject. Basically Magnificent. I am also an expert in this topic so I can understand your effort. web design

  6. Hello… DropshipDragon provides dropping for quality, affordable products direct from China to your customers. Perfect for eBay sellers and website owners alike!… development companies

  7. Wow! This could be one particular of the most helpful blogs We’ve ever arrive across on this subject. Basically Magnificent. I am also an expert in this topic so I can understand your effort. development studios

  8. I enjoy reading it. I fundamental to learn more on this subject.. Thanks for the sake theme this marvellous post.. Anyway, I am gonna subscribe to your silage and I wish you post again soon. ipad photoshop

  9. I do trust all of the concepts you’ve presented for your post. They are really convincing and can certainly work. Nonetheless, the posts are too brief for newbies. May just you please lengthen them a little from next time? Thanks for the post. macbook mockups

  10. I visited a lot of website but I appreciate this one contains something special in it in it cell phone mockup

  11. When I originally commented I clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I get four emails with the same comment. Is there any way you can remove me from that service? Thanks! web developers

  12. Heya i’m for the first time here. I found this board and I to find It truly helpful & it helped me out a lot. I hope to provide something back and aid others such as you helped me. app store screenshot template

  13. hardware and different substances created by producers were on expanded and the innovators turned out to be particularly intrigued that the developments done by them ought not be encroached by any one else by duplicating them or by receiving the strategies utilized by them.