From: Junio C Hamano Date: Tue, 27 Dec 2016 21:11:43 GMT Subject: Re: [PATCH v9 15/20] ref-filter: modify the 'lstrip=' option to work with negative '' Message-ID: In-Reply-To: <20161227162357.28212-16-Karthik.188@gmail.com> Karthik Nayak writes: > Currently the 'lstrip=' option only takes a positive value '' > and strips '' slash-separated path components from the left. Modify > the 'lstrip' option to also take a negative number '' which would > only _leave_ behind 'N' slash-separated path components from the left. "would only leave behind N components from the left" sounds as if the result is A/B, when you are given A/B/C/D/E and asked to lstrip:-2. Given these two tests added by the patch ... > +test_atom head refname:lstrip=-1 master > +test_atom head refname:lstrip=-2 heads/master ... I somehow think that is not what you wanted to say. Instead, you strip from the left as many as necessary and leave -N components that appear at the right-most end, no? > --- a/Documentation/git-for-each-ref.txt > +++ b/Documentation/git-for-each-ref.txt > @@ -98,7 +98,8 @@ refname:: > abbreviation mode. If `lstrip=` is appended, strips `` > slash-separated path components from the front of the refname > (e.g., `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo`. > - `` must be a positive integer. > + if `` is a negative number, then only `` path components > + are left behind. I think positive is so obvious not to require an example but it is good that you have one. The negative case needs illustration more than the positive case. Perhaps something like: (e.g. %(refname:lstrip=-1) strips components of refs/tags/frotz from the left to leave only one component, i.e. 'frotz'). Would %(refname:lstrip=-4) attempt to strip components of refs/tags/frotz from the left to leave only four components, and because the original does not have that many components, it ends with refs/tags/frotz? I am debating myself if we need something like "When the ref does not have enough components, the result becomes an empty string if stripping with positive , or it becomes the full refname if stripping with negative . Neither is an error." is necessary here. Or is it too obvious?