Comments (3)
Thank you for giving those very useful information. I am closing this issue because it's intended behavior.
from ydiff.
from ydiff.
Thank you, that does the job. Sorry it's taken a while to get back to you.
Spent a while reading through the git-diff
, git-stash
and git-show
docs trying to suss out what the default formats are for various cases and what options they support. Learned quite a few things but there's definitely some dark corners still.
In case anyone else finds this with the same questions I had:
git stash show <ref>
This command is built on top of git diff
and can take any of its options. By default, it does output a diffstat (NB: this is probably what you meant in your first line instead of git show <ref>
.) But it can take --patch
, which makes it output a diff in patch format, which cdiff
can parse (as you suggested).
git show <object>
This is a multipurpose command to display several kinds of things.
-
When
<object>
is a non-merge commit, the default output is in two parts: 1) a header with the commit author/date/message and 2) a diff body generated by a normalgit diff
(you can see this by running, e.g.,diff -us <(git show) <(git diff HEAD~1 HEAD)
as long as the last commit wasn't a merge).cdiff
can parse the output for this case just fine. -
When
<object>
is a merge commit, by defaultgit show
usesgit diff
's--cc
option to generate a combined diff.cdiff
can't parse the output for this case. -
When
<object>
is a stash ref, it's always going to be a merge commit, because of the way stashes are stored.
However, if the -m
option is used (git show -m <object>
), multiple single diffs are generated instead, and cdiff
can parse those. (Though in the case of stashes, you'll basically be seeing two copies of the same diff)
So both of these work:
git stash show -p stash@{1} | cdiff -s # longer, one diff
git show -m stash@{1} | cdiff -s # shorter, two diffs
from ydiff.
Related Issues (20)
- How to use ydiff in "git add -p"? HOT 2
- Request: expose basic diff command as a callable HOT 4
- Unable to diff two local files? HOT 2
- Highlight just changed characters, not lines.
- Apt package? HOT 2
- side-by-side becomes unified when disabling color HOT 7
- Using "git difftool --extcmd="ydiff" displayes temporary file names HOT 3
- Hang on large files HOT 5
- Replace legacy distutils by... setuptools? HOT 7
- Navigate to next hunk HOT 3
- " brew install ydiff " doesnt work HOT 2
- Fedora package HOT 6
- Customize colors HOT 3
- Configurable pager behaviour (auto/always/never) HOT 13
- Heads-up: FreeBSD package
- configure default to side by side HOT 4
- Stdin only works if in a VCS HOT 1
- Tabs are not expanded correctly in `-s` mode
- How to use on Windows HOT 4
- Highlight changes instead of underlining them HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ydiff.