Hi,
when using a somewhat older git (of SLES11 SP1 SDK), I could not find a way to "git diff" between two tag names; I can only diff between two commit numbers. I can display a changeset using "git show", but that's not what I wanted.
Is it possible to get the diff I want using older versions, and is such a feature implemented in the current version? If so, since when?
As I'm not subscribed to the list, I'd appreciate CC'ed replies. Thank you.
Greeting
Ulrich
Tag is a pointer to a commit (if to say simply)
e.g. in my repo
$ git show-ref --tags --abbrev=7
-->8--
676f194 refs/tags/v2.6.7
b23c481 refs/tags/v2.6.8
-->8--
so
$ git diff v2.6.7..v2.6.8
is equivalent to
$ git diff 676f194..b23c481
etc
Hi,
when using a somewhat older git (of SLES11 SP1 SDK), I could not find
a way to "git diff" between two tag names; I can only diff between
two commit numbers. I can display a changeset using "git show", but
that's not what I wanted. Is it possible to get the diff I want using
older versions, and is such a feature implemented in the current
version? If so, since when?
As I'm not subscribed to the list, I'd appreciate CC'ed replies.
Thank you.
Greeting
Ulrich
From: Jakub Narebski <hidden> Date: 2016-06-15 22:52:20
"Ulrich Windl" [off-list ref] writes:
When using a somewhat older git (of SLES11 SP1 SDK),
Nb. you can check version of git with "git --version".
I could not
find a way to "git diff" between two tag names; I can only diff
between two commit numbers. I can display a changeset using "git
show", but that's not what I wanted.
Is it possible to get the diff I want using older versions, and is
such a feature implemented in the current version? If so, since
when?
From the very beginning in Git you can use tag name where you need
commit identifier; Git would use commit that tag points to (will
dereference or peel a tag).
That is not possible in some [censored] version control systems; I am
looking at you, Subversion!
So if you can do
$ git show v0.9
$ git show v1.0
you can also do
$ git diff v0.9 v1.0
and
$ git log v0.9..v1.0
--
Jakub Narębski
Hello Alexey,
thank you very much for your reply. I felt I did something wrong, but couldn't find out what it was. Actually it turned out that I had just mistyped one tag name.
Also it seems that both syntaxes work:
git diff v0.4..v0.5
git diff v0.4 v0.5
The question is: How does git disambiguate between tag names, commits and file names? (All may start with a letter)
This seems to work automagically, and I was desparately looking for an option like "--" to separate revisions from file names. I found "SPECIFYING REVISIONS" in git-rev-parse(1), so you don't really have to answer.
Regards,
Ulrich
quoted
quoted
Alexey Shumkin [off-list ref] schrieb am 28.10.2011 um 14:59 in
Nachricht [off-list ref]:
Tag is a pointer to a commit (if to say simply)
e.g. in my repo
$ git show-ref --tags --abbrev=7
-->8--
676f194 refs/tags/v2.6.7
b23c481 refs/tags/v2.6.8
-->8--
so
$ git diff v2.6.7..v2.6.8
is equivalent to
$ git diff 676f194..b23c481
etc
quoted
Hi,
when using a somewhat older git (of SLES11 SP1 SDK), I could not find
a way to "git diff" between two tag names; I can only diff between
two commit numbers. I can display a changeset using "git show", but
that's not what I wanted. Is it possible to get the diff I want using
older versions, and is such a feature implemented in the current
version? If so, since when?
As I'm not subscribed to the list, I'd appreciate CC'ed replies.
Thank you.
Greeting
Ulrich
Jakub Narebski [off-list ref] schrieb am 28.10.2011 um 15:21 in Nachricht
[off-list ref]:
"Ulrich Windl" [off-list ref] writes:
quoted
When using a somewhat older git (of SLES11 SP1 SDK),
Nb. you can check version of git with "git --version".
Hi!
For the records, it's "1.6.0.2"...
quoted
I could not
find a way to "git diff" between two tag names; I can only diff
between two commit numbers. I can display a changeset using "git
show", but that's not what I wanted.
Is it possible to get the diff I want using older versions, and is
such a feature implemented in the current version? If so, since
when?
From the very beginning in Git you can use tag name where you need
commit identifier; Git would use commit that tag points to (will
dereference or peel a tag).
As said before, I was confused by the simplicity: I was looking for an option to specify revisions (as opposed to file names), like "-r" for RCS, but found none. To make things complicated, I had mistyped one tag name without noticing, so I failed to diff, making me think that tag names won't work the way they actually do.
Sorry, and thanks to everybody who helped!
Ulrich
That is not possible in some [censored] version control systems; I am
looking at you, Subversion!
So if you can do
$ git show v0.9
$ git show v1.0
you can also do
$ git diff v0.9 v1.0
and
$ git log v0.9..v1.0
Hello Alexey,
thank you very much for your reply. I felt I did something wrong, but
couldn't find out what it was. Actually it turned out that I had just
mistyped one tag name.
Also it seems that both syntaxes work:
git diff v0.4..v0.5
git diff v0.4 v0.5
The question is: How does git disambiguate between tag names, commits
and file names? (All may start with a letter) This seems to work
automagically, and I was desparately looking for an option like "--"
to separate revisions from file names. I found "SPECIFYING REVISIONS"
in git-rev-parse(1), so you don't really have to answer.
Yes, you found right answer. "--" option separates file names from
"commits' names". but it usually necessary when you have branches or
tags named as some of your files.
E.g. you have file "test" and you name branch "test"
so "git log test" will complain that it cannot understand your
intention to see log of what and will fail
$ git log test
fatal: ambiguous argument 'test': both revision and filename
Use '--' to separate filenames from revisions
$ git log -- test
will show log of file test
$ git log test --
will show log of branch test
Also it seems that both syntaxes work:
git diff v0.4..v0.5
git diff v0.4 v0.5
honestly, I do not know the difference (at the moment :))
may be gurus or manual will help to discover it
Regards,
Ulrich
quoted
quoted
quoted
Alexey Shumkin [off-list ref] schrieb am 28.10.2011 um
14:59 in
Nachricht [off-list ref]:
quoted
Tag is a pointer to a commit (if to say simply)
e.g. in my repo
$ git show-ref --tags --abbrev=7
-->8--
676f194 refs/tags/v2.6.7
b23c481 refs/tags/v2.6.8
-->8--
so
$ git diff v2.6.7..v2.6.8
is equivalent to
$ git diff 676f194..b23c481
etc
quoted
Hi,
when using a somewhat older git (of SLES11 SP1 SDK), I could not
find a way to "git diff" between two tag names; I can only diff
between two commit numbers. I can display a changeset using "git
show", but that's not what I wanted. Is it possible to get the
diff I want using older versions, and is such a feature
implemented in the current version? If so, since when?
As I'm not subscribed to the list, I'd appreciate CC'ed replies.
Thank you.
Greeting
Ulrich
From: Frans Klaver <hidden> Date: 2016-06-15 22:52:22
On Wed, Nov 2, 2011 at 10:29 AM, Alexey Shumkin [off-list ref] wrote:
quoted
Also it seems that both syntaxes work:
git diff v0.4..v0.5
git diff v0.4 v0.5
honestly, I do not know the difference (at the moment :))
may be gurus or manual will help to discover it
As per the git-diff documentation, these two versions behave equally
-- i.e. no differences.
Comparing branches
$ git diff topic master <1>
$ git diff topic..master <2>
$ git diff topic...master <3>
1. Changes between the tips of the topic and the master branches.
2. Same as above.
3. Changes that occurred on the master branch since when the topic
branch was started off it.
Cheers,
Frans
On Wed, Nov 2, 2011 at 10:29 AM, Alexey Shumkin
[off-list ref] wrote:
quoted
quoted
Also it seems that both syntaxes work:
git diff v0.4..v0.5
git diff v0.4 v0.5
honestly, I do not know the difference (at the moment :))
may be gurus or manual will help to discover it
As per the git-diff documentation, these two versions behave equally
-- i.e. no differences.
Comparing branches
$ git diff topic master <1>
$ git diff topic..master <2>
$ git diff topic...master <3>
1. Changes between the tips of the topic and the master branches.
2. Same as above.
3. Changes that occurred on the master branch since when the topic
branch was started off it.
Cheers,
Frans