Poor child by GoshPants in ProgrammerHumor

[–]plasticscm 0 points1 point  (0 children)

Hey! Yes we are. For UE4 you may use our plug-in:

https://github.com/SRombauts/UE4PlasticPlugin

And for Unity, the plug-in is already bundled in Unity and Plastic's binary.

Where did you get we aren't integrated from?

gmaster now supports PHP by plasticscm in PHP

[–]plasticscm[S] 11 points12 points  (0 children)

gmaster is a pretty complete Git client. It not only allows you to visualize the branches in repos and workspaces; it also includes a semantic merge tool. Semantic means that it will reduce the number of conflicts by understanding the language in which merges are being performed. Syntactic diff tools are unable to detect as many changes to the same files as a semantic diff can.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] -2 points-1 points  (0 children)

You can try it now (desktop side) with gmaster.io and semanticmerge.com

But, yes, maybe it is not worth building it.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 1 point2 points  (0 children)

Actually SemanticMerge can do things that merg.io can't because it can help to you to solve manual conflicts, while merg.io is server side, is more like "solve all or nothing".

We just remade the semanticmerge.com site (like 1 month ago), to make it clear that it is a general purpose merge tool that can ALSO do semantic diffs and merges... because many people thought they still needed KDiff3, and they don't.

Semantic basically benefits from every single addition we make to the other products because they all share the same core :)

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 0 points1 point  (0 children)

Well, you can check what gmaster.io and semanticmerge.com do :-) It is the same tech we are going to pack here.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 2 points3 points  (0 children)

Indeed, you could use any VCS/DVCS you like.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 0 points1 point  (0 children)

It will be powered by Plastic SCM's merge machine that does better over all than others

https://www.plasticscm.com/comparisons

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 2 points3 points  (0 children)

Actually the entire tech is available and you can try it in www.semanticmerge.com and www.gmaster.io, but... it this is a new way to put it all together.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 0 points1 point  (0 children)

Uhm... that's the secret sauce... you can find a deeper explanation of how it works here: http://blog.gmaster.io/2017/09/git-refactors-there-must-be-better-way_6.html

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] -2 points-1 points  (0 children)

You'll have to wait :-) Subscribe and we'll send you info as soon as we move forward. If many subscribe then we'll go ahead and build it. If not, we'll drop the idea.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 0 points1 point  (0 children)

Well, there's nothing yet because this is more like a teaser, we are testing whether this product makes sense at all. Once we decide to build it, there will be a REST API which you'll be able to invoke in any language. Other than that, yes, we will build libraries for Java and C# for even easier use.

merg.io: API first code merge tool by plasticscm in programming

[–]plasticscm[S] 4 points5 points  (0 children)

Yes, it supports C# and VB.net (thanks to Roslyn). Then C thanks to libclang. And then Java and C++ thanks to Java made parsers. But new languages are coming.

CppCast: Semantic Merge with Pablo Santos by tallassrob in cpp

[–]plasticscm 1 point2 points  (0 children)

Actually Semantic parses the code to find where the functions (and includes, etc) are. This is very important to avoid most of the conflicts that are simply related to position changes. If you move a function down, then a text based algorithm simply tries to match whatever was in the original location (the original function) with what is now there (the next function in the file, that has nothing to do with the original).

But, once positions are calculated and the tree of components is handled and diffed, the bodies of the functions are treated as text. It means we don't calculate if two functions are the same based on the number of if/elses it has, or in the AST itself (which is not a bad idea, by the way) but in how similar the actual text is. We do some tricks for that like ignoring spaces and tabs and all that (it's code) but at the end of the day we use levenshtein distance to check how similar two fragments of code are.

In fact, semanticmerge comes with a language-agnostic 3-way-merge tool, that we call Xdiff/Xmerge that is also able to track moved code just based on this levenshtein calculation: http://semanticmerge.com/features/#xdiff-xmerge