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

Re: [PATCH v11 20/22] stash: convert `stash--helper.c` into `stash.c`

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Nov 27, 2018, 13:46 UTC
Message-ID
<nycvar.QRO.7.76.6.1811271438310.41@tvgsbejvaqbjf.bet>
In-Reply-To
<xmqqefb8z9qh.fsf@gitster-ct.c.googlers.com>
Hi Junio & Paul,
On Mon, 26 Nov 2018, Junio C Hamano wrote:
Show 28 quoted lines
> Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com> writes:
> 
> > The old shell script `git-stash.sh`  was removed and replaced
> > entirely by `builtin/stash.c`. In order to do that, `create` and
> > `push` were adapted to work without `stash.sh`. For example, before
> > this commit, `git stash create` called `git stash--helper create
> > --message "$*"`. If it called `git stash--helper create "$@"`, then
> > some of these changes wouldn't have been necessary.
> >
> > This commit also removes the word `helper` since now stash is
> > called directly and not by a shell script.
> >
> > Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@gmail.com>
> > ---
> >  .gitignore                           |   1 -
> >  Makefile                             |   3 +-
> >  builtin.h                            |   2 +-
> >  builtin/{stash--helper.c => stash.c} | 157 +++++++++++++++------------
> >  git-stash.sh                         | 153 --------------------------
> >  git.c                                |   2 +-
> >  6 files changed, 92 insertions(+), 226 deletions(-)
> >  rename builtin/{stash--helper.c => stash.c} (91%)
> >  delete mode 100755 git-stash.sh
> 
> Seeing the recent trouble in "rebase in C" and how keeping the
> scripted version as "git legacy-rebase" helped us postpone the
> rewritten version without ripping the whole thing out, I wonder if
> we can do the same here.

Feel very free to cherry-pick https://github.com/git-for-windows/git/commit/004da7e7faa36c872868ae938e06594ea1c2f01c and https://github.com/git-for-windows/git/commit/cedfcd39f5a4e4beb33e16fa67c4659fd4bdabf6 which is what we carry in Git for Windows.

Ciao, Dscho

Show 11 quoted lines
> Also, the remaining two patches should be done _before_ this step, I
> would think.  I can understand it if the reason you have those two
> after this step is because you found the opportunity for these
> improvements after you wrote this step, but in the larger picture
> seen by the end users of the "stash in C" and those developers who
> follow the evolution of the code, the logical place for this "now we
> have everything in C, we retire the scripted version" step to happen
> is at the very end.
> 
> Thanks.
> 
Previous: Junio C HamanoNext: Ævar Arnfjörð Bjarmason
Message 25 of 35 in “Convert "git stash" to C builtin”
  1. 00/22 Convert "git stash" to C builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  2. 01/22 sha1-name.c: add `get_oidf()` which acts like `get_oid()`Paul-Sebastian Ungureanu, Nov 22, 2018
  3. 02/22 strbuf.c: add `strbuf_join_argv()`Paul-Sebastian Ungureanu, Nov 22, 2018
  4. 03/22 strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()`Paul-Sebastian Ungureanu, Nov 22, 2018
  5. Thomas GummererNov 25, 2018
  6. Johannes SchindelinNov 27, 2018
  7. Thomas GummererNov 27, 2018
  8. 04/22 stash: improve option parsing test coveragePaul-Sebastian Ungureanu, Nov 22, 2018
  9. 05/22 t3903: modernize stylePaul-Sebastian Ungureanu, Nov 22, 2018
  10. 07/22 stash: add tests for `git stash show` configPaul-Sebastian Ungureanu, Nov 22, 2018
  11. 06/22 stash: rename test cases to be more descriptivePaul-Sebastian Ungureanu, Nov 22, 2018
  12. 08/22 stash: mention options in `show` synopsisPaul-Sebastian Ungureanu, Nov 22, 2018
  13. 10/22 stash: convert drop and clear to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  14. 09/22 stash: convert apply to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  15. 11/22 stash: convert branch to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  16. 15/22 stash: convert store to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  17. 13/22 stash: convert list to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  18. 12/22 stash: convert pop to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  19. 16/22 stash: convert create to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  20. 18/22 stash: make push -q quietPaul-Sebastian Ungureanu, Nov 22, 2018
  21. 17/22 stash: convert push to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  22. 19/22 stash: convert save to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  23. 20/22 stash: convert `stash--helper.c` into `stash.c`Paul-Sebastian Ungureanu, Nov 22, 2018
  24. Junio C HamanoNov 26, 2018
  25. Johannes SchindelinNov 27, 2018
  26. Ævar Arnfjörð BjarmasonNov 27, 2018
  27. Johannes SchindelinNov 29, 2018
  28. 21/22 stash: optimize `get_untracked_files()` and `check_changes()`Paul-Sebastian Ungureanu, Nov 22, 2018
  29. 22/22 stash: replace all `write-tree` child processes with API callsPaul-Sebastian Ungureanu, Nov 22, 2018
  30. 14/22 stash: convert show to builtinPaul-Sebastian Ungureanu, Nov 22, 2018
  31. Thomas GummererNov 25, 2018
  32. Junio C HamanoNov 26, 2018
  33. Junio C HamanoNov 26, 2018
  34. Johannes SchindelinNov 29, 2018
  35. Johannes SchindelinNov 29, 2018

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.