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

Re: [GSoC][PATCHl 5/6] rebase -i: support --ignore-date

From
Rohit Ashiwal <rohit.ashiwal265@gmail.com>
Date
Aug 7, 2019, 20:33 UTC
Message-ID
<CAL7ArXoaZU2zPq=nLRghwY+Rj1HPKtTXqaOF75b406iybX9bqw@mail.gmail.com>
In-Reply-To
<xmqqimr8hgjl.fsf@gitster-ct.c.googlers.com>
Hi Junio and Dscho
On Thu, Aug 8, 2019 at 1:52 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 73 quoted lines
>
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > On Tue, 6 Aug 2019, Rohit Ashiwal wrote:
> >
> >> @@ -1046,6 +1066,8 @@ static int run_git_commit(struct repository *r,
> >>              argv_array_push(&cmd.args, "--amend");
> >>      if (opts->gpg_sign)
> >>              argv_array_pushf(&cmd.args, "-S%s", opts->gpg_sign);
> >> +    if (opts->ignore_date)
> >> +            argv_array_pushf(&cmd.args, "--date=%ld", time(NULL));
> >>      if (defmsg)
> >>              argv_array_pushl(&cmd.args, "-F", defmsg, NULL);
> >>      else if (!(flags & EDIT_MSG))
> >
> > I need this patch to make the code _at least_ compile on Windows again
> > (I don't know whether it breaks the test suite yet):
> >
> > -- snipsnap --
> > Subject: [PATCH] fixup! rebase -i: support --ignore-date
> >
> > It is a mistake to believe that the return value of `time()` is always
> > an `unsigned long`.
>
> Good catch.  We can at least expect it to be some integral type ;-)
>
> With or without this fix-up, I think the patch is still not quite
> right.  Output from time() formatted as an integer is a string of
> digits, and the side that reads that string and interprets it as a
> timestamp does so by calling parse_date(); it is up to that function
> to decide what datestring format it is in, and it does not
> necessarily take it as seconds since epoch.  It is safer to force
> the "seconds since epoch" interpretation by writing the timestamp
> string like so:
>
>         argv_array_pushf(&args, "--date=@%ld", time(NULL));
>
> See 14ac2864 ("commit: accept more date formats for "--date"",
> 2014-05-01), which gives a good hint on how to do this right, and
> 2c733fb2 ("parse_date(): '@' prefix forces git-timestamp",
> 2012-02-02) for a backstory.
>
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > ---
> >  sequencer.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/sequencer.c b/sequencer.c
> > index 539c0ef601b..a4c932d3407 100644
> > --- a/sequencer.c
> > +++ b/sequencer.c
> > @@ -1070,7 +1070,8 @@ static int run_git_commit(struct repository *r,
> >       if (opts->gpg_sign)
> >               argv_array_pushf(&cmd.args, "-S%s", opts->gpg_sign);
> >       if (opts->ignore_date)
> > -             argv_array_pushf(&cmd.args, "--date=%ld", time(NULL));
> > +             argv_array_pushf(&cmd.args, "--date=%"PRIuMAX,
> > +                              (uintmax_t)time(NULL));
> >       if (defmsg)
> >               argv_array_pushl(&cmd.args, "-F", defmsg, NULL);
> >       else if (!(flags & EDIT_MSG))
> > @@ -3642,7 +3643,8 @@ static int do_merge(struct repository *r,
> >                       argv_array_push(&cmd.args, opts->gpg_sign);
> >               if (opts->ignore_date)
> >                       argv_array_pushf(&cmd.args,
> > -                                      "GIT_AUTHOR_DATE=%ld", time(NULL));
> > +                                      "GIT_AUTHOR_DATE=%"PRIuMAX,
> > +                                      (uintmax_t)time(NULL));
> >
> >               /* Add the tips to be merged */
> >               for (j = to_merge; j; j = j->next)
> > --
> > 2.22.0.windows.1.6.g271c090e89

Thanks for suggestions, I'll incorporate these changes along with changes suggested by Junio and re-send the patch.

- Rohit
Previous: Junio C HamanoNext: Phillip Wood
Message 16 of 96 in “[GSoC][PATCHl 0/6] rebase -i: support more options”
  1. Rohit AshiwalAug 6, 2019
  2. [GSoC][PATCHl 1/6] rebase -i: add --ignore-whitespace flagRohit Ashiwal, Aug 6, 2019
  3. Junio C HamanoAug 7, 2019
  4. Rohit AshiwalAug 7, 2019
  5. Phillip WoodAug 8, 2019
  6. Rohit AshiwalAug 12, 2019
  7. [GSoC][PATCHl 3/6] rebase -i: support --committer-date-is-author-dateRohit Ashiwal, Aug 6, 2019
  8. Phillip WoodAug 8, 2019
  9. Junio C HamanoAug 8, 2019
  10. [GSoC][PATCHl 2/6] sequencer: add NULL checks under read_author_scriptRohit Ashiwal, Aug 6, 2019
  11. [GSoC][PATCHl 4/6] sequencer: rename amend_author to author_to_renameRohit Ashiwal, Aug 6, 2019
  12. Phillip WoodAug 8, 2019
  13. [GSoC][PATCHl 5/6] rebase -i: support --ignore-dateRohit Ashiwal, Aug 6, 2019
  14. Johannes SchindelinAug 7, 2019
  15. Junio C HamanoAug 7, 2019
  16. Rohit AshiwalAug 7, 2019
  17. Phillip WoodAug 8, 2019
  18. Phillip WoodAug 8, 2019
  19. [GSoC][PATCHl 6/6] rebase: add --author-date-is-committer-dateRohit Ashiwal, Aug 6, 2019
  20. Phillip WoodAug 8, 2019
  21. [GSoC][PATCH v2 0/6] rebase -i: support more optionsRohit Ashiwal, Aug 12, 2019
  22. [GSoC][PATCH v2 1/6] rebase -i: add --ignore-whitespace flagRohit Ashiwal, Aug 12, 2019
  23. Phillip WoodAug 13, 2019
  24. [GSoC][PATCH v2 2/6] sequencer: add NULL checks under read_author_scriptRohit Ashiwal, Aug 12, 2019
  25. [GSoC][PATCH v2 3/6] rebase -i: support --committer-date-is-author-dateRohit Ashiwal, Aug 12, 2019
  26. Phillip WoodAug 13, 2019
  27. Phillip WoodAug 13, 2019
  28. Junio C HamanoAug 13, 2019
  29. Phillip WoodAug 14, 2019
  30. Phillip WoodAug 13, 2019
  31. [GSoC][PATCH v2 4/6] sequencer: rename amend_author to author_to_renameRohit Ashiwal, Aug 12, 2019
  32. Phillip WoodAug 13, 2019
  33. [GSoC][PATCH v2 5/6] rebase -i: support --ignore-dateRohit Ashiwal, Aug 12, 2019
  34. Phillip WoodAug 13, 2019
  35. Junio C HamanoAug 13, 2019
  36. Phillip WoodAug 14, 2019
  37. Junio C HamanoAug 13, 2019
  38. Phillip WoodAug 14, 2019
  39. Junio C HamanoAug 14, 2019
  40. Phillip WoodAug 17, 2019
  41. [GSoC][PATCH v2 6/6] rebase: add --author-date-is-committer-dateRohit Ashiwal, Aug 12, 2019
  42. Junio C HamanoAug 13, 2019
  43. 0/6 rebase -i: support more optionsRohit Ashiwal, Aug 20, 2019
  44. 1/6 rebase -i: add --ignore-whitespace flagRohit Ashiwal, Aug 20, 2019
  45. Phillip WoodAug 20, 2019
  46. Rohit AshiwalAug 20, 2019
  47. 2/6 sequencer: add NULL checks under read_author_scriptRohit Ashiwal, Aug 20, 2019
  48. Junio C HamanoAug 23, 2019
  49. 3/6 rebase -i: support --committer-date-is-author-dateRohit Ashiwal, Aug 20, 2019
  50. Phillip WoodAug 20, 2019
  51. 4/6 sequencer: rename amend_author to author_to_renameRohit Ashiwal, Aug 20, 2019
  52. 5/6 rebase -i: support --ignore-dateRohit Ashiwal, Aug 20, 2019
  53. Phillip WoodAug 20, 2019
  54. Junio C HamanoAug 20, 2019
  55. Phillip WoodAug 20, 2019
  56. [GSoC][PATCH v2 6/6] rebase: add --author-date-is-committer-dateRohit Ashiwal, Aug 20, 2019
  57. Rohit AshiwalAug 20, 2019
  58. 6/6 rebase: add --reset-author-dateRohit Ashiwal, Aug 20, 2019
  59. Rohit AshiwalAug 20, 2019
  60. Phillip WoodAug 20, 2019
  61. Junio C HamanoAug 20, 2019
  62. Phillip WoodAug 20, 2019
  63. 0/6 rebase -i: support more optionsRohit Ashiwal, Sep 7, 2019
  64. 1/6 rebase -i: add --ignore-whitespace flagRohit Ashiwal, Sep 7, 2019
  65. Phillip WoodOct 4, 2019
  66. Elijah NewrenOct 5, 2019
  67. Rohit AshiwalOct 6, 2019
  68. 2/6 sequencer: allow callers of read_author_script() to ignore fieldsRohit Ashiwal, Sep 7, 2019
  69. 3/6 rebase -i: support --committer-date-is-author-dateRohit Ashiwal, Sep 7, 2019
  70. Phillip WoodOct 4, 2019
  71. Rohit AshiwalOct 6, 2019
  72. Phillip WoodOct 24, 2019
  73. 4/6 sequencer: rename amend_author to author_to_renameRohit Ashiwal, Sep 7, 2019
  74. 5/6 rebase -i: support --ignore-dateRohit Ashiwal, Sep 7, 2019
  75. Rohit AshiwalSep 7, 2019
  76. Phillip WoodSep 27, 2019
  77. Rohit AshiwalOct 6, 2019
  78. Phillip WoodOct 24, 2019
  79. 6/6 rebase: add --reset-author-dateRohit Ashiwal, Sep 7, 2019
  80. Junio C HamanoSep 9, 2019
  81. Phillip WoodSep 9, 2019
  82. Junio C HamanoSep 9, 2019
  83. 0/6 rebase -i: support more optionsRohit Ashiwal, Nov 1, 2019
  84. 1/6 rebase -i: add --ignore-whitespace flagRohit Ashiwal, Nov 1, 2019
  85. 2/6 sequencer: allow callers of read_author_script() to ignore fieldsRohit Ashiwal, Nov 1, 2019
  86. 3/6 rebase -i: support --committer-date-is-author-dateRohit Ashiwal, Nov 1, 2019
  87. 4/6 sequencer: rename amend_author to author_to_renameRohit Ashiwal, Nov 1, 2019
  88. 5/6 rebase -i: support --ignore-dateRohit Ashiwal, Nov 1, 2019
  89. Junio C HamanoNov 2, 2019
  90. Junio C HamanoNov 2, 2019
  91. 6/6 rebase: add --reset-author-dateRohit Ashiwal, Nov 1, 2019
  92. Junio C HamanoNov 2, 2019
  93. Junio C HamanoNov 21, 2019
  94. Alban GruinNov 21, 2019
  95. Junio C HamanoNov 22, 2019
  96. Phillip WoodNov 28, 2019

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.