Re: [PATCH] specifying ranges: we did not mean to make ".." an empty set
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 23, 2012, 17:51 UTC
- Message-ID
- <7vobm14hu9.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <874nntq0sb.fsf@thomas.inf.ethz.ch>
Thomas Rast <trast@student.ethz.ch> writes:
Show 7 quoted lines
> I don't think that ".." is really a no-op. It is true that HEAD..HEAD > does not itself result in any revisions, but it *could* be used as a > silly shorthand to introduce ^HEAD into the objects being walked. This > can make a difference if it then excludes other objects, too. > > I would argue that such use is misguided, and I am in favor of the > patch, but in theory it is possible.
You could say "log --all .. --" when you mean "log --all ^HEAD", because .. === HEAD..HEAD === ^HEAD HEAD and HEAD is already contained in --all. So it is a valid point.
You however cannot say "log --all .." without double-dash to disambiguate, as you would get:
$ git log --all ..
fatal: ambiguous argument '..': both revision and filenameAny existing practice that used to produce useful results couldn't have been using ".." without an explicit "--", I think, and with the disambiguation that favors to take ".." as the parent directory, "log --all .. --" still means "log --all ^HEAD".
So I think we are still OK.