From: Junio C Hamano Date: Thu, 23 Aug 2012 17:51:42 GMT Subject: Re: [PATCH] specifying ranges: we did not mean to make ".." an empty set Message-ID: <7vobm14hu9.fsf@alter.siamese.dyndns.org> In-Reply-To: <874nntq0sb.fsf@thomas.inf.ethz.ch> Thomas Rast writes: > 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 filename Any 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.