Also, turn the saturation down. That’s the greenest green and the reddest red next to the darkest blue. My eyes.
Back on point, I see so much of this grey-on-grey type thing, just a little common sense would suggest it's very poor practice but it keeps happening.
looks cool already though, got to try it some time.
Initially, tool would merge based on series of heuristics and then user would manually adjust "matching" nodes (user could say "actually, this A on the left and B on the right are the same, it's just that it was heavily modified").
Also-- for "standalone" tools like this that are written in Python, I highly recommend Pipx for installing them: https://pipxproject.github.io/pipx/. It installs each tool into a separate self-contained virtual environment and symlinks the executable itself to a "bin" directory, which prevents tools with different dependencies from conflicting.
I was recently working on a similar tool[1] but specific to the domain of "content trees" that consist of content nodes organized into a hierarchical structure. In my case each tree node has a persistent `content_id` associate with the underlying content file and independent of its position within the tree, which allows me to detect "move" operations[2] (a node with the same `content_id` appearing in a different place in the tree).
The use case is for educational content: Kolibri channels[3] are these huge trees that consist of thousands of nodes and it's difficult to know what has changed when we create new versions of the channels. I tried all kinds of general-purpose diffing tools and failed miserably so I started working on treediffer. It's almost done; I hope to finish it later this fall, and will look at graphtage to see how it works.
[1] https://github.com/learningequality/treediffer [2] https://treediffer.readthedocs.io/en/latest/diff_formats.htm... [3] https://kolibri-demo.learningequality.org/en/learn/#/topics
I’d changed a shell script, with a chain of commands. I added a second call to the same command with different args and the diff was just... bad.
something && fizz foo && another
something && fizz bar && fizz foo && another
It decided that “bar && fizz” was my edit, and I just stared at it (it was already a tough day). Even if they had just weighted punctuation characters differently, it would have gotten the right answer, as it would with adding new functions or array entries, which it always gets wrong too.Sort it out please.
I like the idea that it can do semantic diffs across different formats.
kudos for putting the two concepts together / will give it a go