git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2 v3] sha1_name: teach get_sha1_1 "-" shorthand for "@{-1}"

From
Siddharth Kannan <kannan.siddharth12@gmail.com>
Date
Feb 12, 2017, 10:42 UTC
Message-ID
<20170212104220.GA20317@ubuntu-512mb-blr1-01.localdomain>
In-Reply-To
<vpqbmu768on.fsf@anie.imag.fr>

Hey Matthieu, On Sun, Feb 12, 2017 at 10:48:56AM +0100, Matthieu Moy wrote:

Show 22 quoted lines
> Siddharth Kannan <kannan.siddharth12@gmail.com> writes:
> 
> >  sha1_name.c              |  5 ++++
> >  t/t4214-log-shorthand.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 78 insertions(+)
> >  create mode 100755 t/t4214-log-shorthand.sh
> >
> > diff --git a/sha1_name.c b/sha1_name.c
> > index 73a915f..d774e46 100644
> > --- a/sha1_name.c
> > +++ b/sha1_name.c
> > @@ -947,6 +947,11 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1, unsigned l
> >  	if (!ret)
> >  		return 0;
> >  
> > +	if (!strcmp(name, "-")) {
> > +		name = "@{-1}";
> > +		len = 5;
> > +	}
> 
> After you do that, the existing "turn - into @{-1}" pieces of code
> become useless and you should remove it (probably in a further patch).

Yeah, this is currently also implemented in checkout, apart from the grepped list that you have supplied here. I will find all the instances, and ensure that they work, and remove them. (This will require some more digging into the codepath the commands, to ensure that get_sha1_1 is called somewhere down the line)

Show 11 quoted lines
> 
> > diff --git a/t/t4214-log-shorthand.sh b/t/t4214-log-shorthand.sh
> > ...
> > +test_expect_success 'setup' '
> > +	echo hello >world &&
> > +	git add world &&
> > +	git commit -m initial &&
> > +	echo "hello second time" >>world &&
> > ...
> 
> You may use test_commit to save a few lines of code.

Oh, yeah! I will use that. I need to work on improving the tests, as well as adding the documentation.

Show 11 quoted lines
> 
> > +test_expect_success 'symmetric revision range should work when one end is left empty' '
> > +	git checkout testing-2 &&
> > +	git checkout master &&
> > +	git log ...@{-1} > expect.first_empty &&
> > +	git log @{-1}... > expect.last_empty &&
> > +	git log ...- > actual.first_empty &&
> > +	git log -... > actual.last_empty &&
> 
> Nitpick: we stick the > and the filename (as you did in most places
> already).
Sorry, slipped my mind!
> 
> It may be worth adding tests for more cases like
> 
> * Check what happens with suffixes, i.e. -^, -@{yesterday} and -~.

These do not work right now. The first and last cases here are handled by peel_onion, if I remember correctly. I have to find out why exactly these are not working. Thanks for mentioning this!

Show 5 quoted lines
> 
> * -..- -> to make sure you handle the presence of two - properly.
> 
> * multiple separate arguments to make sure you handle them all, e.g.
>   "git log - -", "git log HEAD -", "git log - HEAD".
Yeah, will add these tests.
Show 6 quoted lines
> 
> The last two may be overkill, but the first one is probably important.
> 
> -- 
> Matthieu Moy
> http://www-verimag.imag.fr/~moy/

-- Regards,

Siddharth Kannan.
Previous: Matthieu MoyNext: Junio C Hamano
Message 5 of 18 in “WIP: allow "-" as a shorthand for "previous branch"”
  1. 0/2 WIP: allow "-" as a shorthand for "previous branch"Siddharth Kannan, Feb 10, 2017
  2. 1/2 revision.c: args starting with "-" might be a revisionSiddharth Kannan, Feb 10, 2017
  3. 2/2 sha1_name: teach get_sha1_1 "-" shorthand for "@{-1}"Siddharth Kannan, Feb 10, 2017
  4. Matthieu MoyFeb 12, 2017
  5. Siddharth KannanFeb 12, 2017
  6. Junio C HamanoFeb 13, 2017
  7. Junio C HamanoFeb 13, 2017
  8. Junio C HamanoFeb 10, 2017
  9. Siddharth KannanFeb 11, 2017
  10. Junio C HamanoFeb 11, 2017
  11. Junio C HamanoFeb 11, 2017
  12. 0/3 prepare for a rev/range that begins with a dashJunio C Hamano, Feb 12, 2017
  13. 1/3 handle_revision_opt(): do not update argv[left++] with an unknown argJunio C Hamano, Feb 12, 2017
  14. 2/3 setup_revisions(): swap if/else bodies to make the next step more readableJunio C Hamano, Feb 12, 2017
  15. 3/3 setup_revisions(): allow a rev that begins with a dashJunio C Hamano, Feb 12, 2017
  16. Siddharth KannanFeb 12, 2017
  17. Junio C HamanoFeb 12, 2017
  18. Siddharth KannanFeb 14, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.