Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate from git-diff to diff-so-fancy #65

Open
IvanIvanoff opened this issue Jan 8, 2021 · 3 comments
Open

Migrate from git-diff to diff-so-fancy #65

IvanIvanoff opened this issue Jan 8, 2021 · 3 comments

Comments

@IvanIvanoff
Copy link

IvanIvanoff commented Jan 8, 2021

One problem with git diff is that there is no (to my knowledge) way to combine showing a green + row and a - row and adding different color to the actual changes on the row at the same time.

I'll illustrate the issue with a screenshot. In the following diff, it would be nice to have the path_out in the - row and another_path_output_var in the + row highlighted as the actual change.
image

I propose migrating from using the default git diff to diff-so-fancy.

Here is a screenshot with of same diff after changing my gitconfig so it uses diff-so-fancy:
image

I have personally not used diff-so-fancy. When I started searching for solutions to the problem this was what I found and liked the most. This is similar to how github shows the diff but I don't know what they use.

@wojtekmach
Copy link
Member

wojtekmach commented Jan 8, 2021

Currently we're using https://hex.pm/packages/git_diff which is written in pure Elixir which means we can avoid shelling out to an external tool. I think if we are to switch the diff tool we'd prefer staying in Elixir land. That being said I totally agree that the output shown above gives much nicer user experience. If you'd like to search for other pure elixir solutions with this capability or enhance git_diff accordingly that'd definitely be appreciated.

@IvanIvanoff
Copy link
Author

IvanIvanoff commented Jan 8, 2021

GitDiff takes the output of executing git diff as seen here, so the actual diffing is not done in pure Elixir.
But now that you say that, this might be an issue. The diff-so-fancy does not match the output of git diff, but we cannot extend GitDiff to handle other tools output as it will no longer be git diff.

@wojtekmach
Copy link
Member

Oops, thanks for clarifying this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants