Re: [PATCH v8 00/14] Introduce new `git replay` command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Christian,

On Fri, 24 Nov 2023, Christian Couder wrote:

> # Changes between v7 and v8
>
> Thanks to Dscho, Linus Arver, Dragan Simic, Elijah, Junio, Derrick
> Stolee, Phillip Wood, Calvin Wan and Toon Claes for their suggestions
> on the previous versions! The only few changes compared to v7 are:
>
> * The patch series was rebased onto master at 564d0252ca (Git 2.43,
>   2023-11-20). This is to make it stand on a stable base.
>
> * In patch 2/14 (replay: introduce new builtin), there is a synopsys
>   change in the doc, and the corresponding usage message change as
>   suggested by Dscho. This is just about replacing " # EXPERIMENTAL"
>   at the end of both the synopsys and usage message with
>   "(EXPERIMENTAL!) " at the beginning of them.

Thank you so much for going all the way to where we are now.

> CI tests seem to pass according to:
>
> https://github.com/chriscool/git/actions/runs/6979770154
>
> (Sorry I am not waiting more than 20 minutes for the 3 last ones to
> finish.)

Yes, our test suite takes too long, and I fear that there are quite a few
developers ignoring it as a consequence.

> # Range-diff between v7 and v8
>
> (A single change was made in patch 2/14, but unfortunately as the
> lines changed in that patch are also changed by other patches later,
> it looks like there are more changes in subsequent patches.)

Right, the lines added in 2/14 are changed multiple times over the course
of the patch series.

>  1:  cddcd967b2 =  1:  18fd9b0d5d t6429: remove switching aspects of fast-rebase
>  2:  c8476fb093 !  2:  fc6bdf4de4 replay: introduce new builtin
>     @@ Documentation/git-replay.txt (new)
>      +SYNOPSIS
>      +--------
>      +[verse]
>     -+'git replay' --onto <newbase> <oldbase> <branch> # EXPERIMENTAL
>     ++(EXPERIMENTAL!) 'git replay' --onto <newbase> <oldbase> <branch>
>      +
>      +DESCRIPTION
>      +-----------
>     @@ builtin/replay.c: int cmd__fast_rebase(int argc, const char **argv)
>      -
>         if (argc == 2 && !strcmp(argv[1], "-h")) {
>      -          printf("Sorry, I am not a psychiatrist; I can not give you the help you need.  Oh, you meant usage...\n");
>     -+          printf("git replay --onto <newbase> <oldbase> <branch> # EXPERIMENTAL\n");
>     ++          printf("usage: (EXPERIMENTAL!) git replay --onto <newbase> <oldbase> <branch>\n");
>                 exit(129);
>         }
>
>  3:  43322abd1e !  3:  e96a66c352 replay: start using parse_options API
>     @@ builtin/replay.c: int cmd_replay(int argc, const char **argv, const char *prefix
>         int ret = 0;
>
>      -  if (argc == 2 && !strcmp(argv[1], "-h")) {
>     --          printf("git replay --onto <newbase> <oldbase> <branch> # EXPERIMENTAL\n");
>     +-          printf("usage: (EXPERIMENTAL!) git replay --onto <newbase> <oldbase> <branch>\n");
>      -          exit(129);
>      +  const char * const replay_usage[] = {
>     -+          N_("git replay --onto <newbase> <oldbase> <branch> # EXPERIMENTAL"),
>     ++          N_("(EXPERIMENTAL!) git replay --onto <newbase> <oldbase> <branch>"),
>      +          NULL
>      +  };
>      +  struct option replay_options[] = {
>  4:  6524c7f045 =  4:  f819d283d9 replay: die() instead of failing assert()
>  5:  05d0efa3cb =  5:  68bbcf9492 replay: introduce pick_regular_commit()
>  6:  c7a5aad3d6 =  6:  72221c647e replay: change rev walking options
>  7:  01f35f924b =  7:  f54d8fce22 replay: add an important FIXME comment about gpg signing
>  8:  1498b24bad =  8:  e50cc22522 replay: remove progress and info output
>  9:  6786fc147b =  9:  0c5ea3d18e replay: remove HEAD related sanity check
> 10:  9a24dbb530 = 10:  9fc636fc3d replay: make it a minimal server side command
> 11:  ad6ca2fbef ! 11:  2096bcad79 replay: use standard revision ranges
>     @@ Documentation/git-replay.txt: git-replay - EXPERIMENTAL: Replay commits on a new
>       SYNOPSIS
>       --------
>       [verse]
>     --'git replay' --onto <newbase> <oldbase> <branch> # EXPERIMENTAL
>     -+'git replay' --onto <newbase> <revision-range>... # EXPERIMENTAL
>     +-(EXPERIMENTAL!) 'git replay' --onto <newbase> <oldbase> <branch>
>     ++(EXPERIMENTAL!) 'git replay' --onto <newbase> <revision-range>...
>
>       DESCRIPTION
>       -----------
>     @@ builtin/replay.c: int cmd_replay(int argc, const char **argv, const char *prefix
>         int ret = 0;
>
>         const char * const replay_usage[] = {
>     --          N_("git replay --onto <newbase> <oldbase> <branch> # EXPERIMENTAL"),
>     -+          N_("git replay --onto <newbase> <revision-range>... # EXPERIMENTAL"),
>     +-          N_("(EXPERIMENTAL!) git replay --onto <newbase> <oldbase> <branch>"),
>     ++          N_("(EXPERIMENTAL!) git replay --onto <newbase> <revision-range>..."),
>                 NULL
>         };
>         struct option replay_options[] = {
> 12:  081864ed5f ! 12:  d5414806ef replay: add --advance or 'cherry-pick' mode
>     @@ Documentation/git-replay.txt: git-replay - EXPERIMENTAL: Replay commits on a new
>       SYNOPSIS
>       --------
>       [verse]
>     --'git replay' --onto <newbase> <revision-range>... # EXPERIMENTAL
>     -+'git replay' (--onto <newbase> | --advance <branch>) <revision-range>... # EXPERIMENTAL
>     +-(EXPERIMENTAL!) 'git replay' --onto <newbase> <revision-range>...
>     ++(EXPERIMENTAL!) 'git replay' (--onto <newbase> | --advance <branch>) <revision-range>...
>
>       DESCRIPTION
>       -----------
>     @@ builtin/replay.c: static struct commit *pick_regular_commit(struct commit *pickm
>         int ret = 0;
>
>         const char * const replay_usage[] = {
>     --          N_("git replay --onto <newbase> <revision-range>... # EXPERIMENTAL"),
>     -+          N_("git replay (--onto <newbase> | --advance <branch>) <revision-range>... # EXPERIMENTAL"),
>     +-          N_("(EXPERIMENTAL!) git replay --onto <newbase> <revision-range>..."),
>     ++          N_("(EXPERIMENTAL!) git replay (--onto <newbase> | --advance <branch>) <revision-range>..."),
>                 NULL
>         };
>         struct option replay_options[] = {
> 13:  19c4016c7c ! 13:  2a3e521c13 replay: add --contained to rebase contained branches
>     @@ Documentation/git-replay.txt: git-replay - EXPERIMENTAL: Replay commits on a new
>       SYNOPSIS
>       --------
>       [verse]
>     --'git replay' (--onto <newbase> | --advance <branch>) <revision-range>... # EXPERIMENTAL
>     -+'git replay' ([--contained] --onto <newbase> | --advance <branch>) <revision-range>... # EXPERIMENTAL
>     +-(EXPERIMENTAL!) 'git replay' (--onto <newbase> | --advance <branch>) <revision-range>...
>     ++(EXPERIMENTAL!) 'git replay' ([--contained] --onto <newbase> | --advance <branch>) <revision-range>...
>
>       DESCRIPTION
>       -----------
>     @@ builtin/replay.c: int cmd_replay(int argc, const char **argv, const char *prefix
>         int ret = 0;
>
>         const char * const replay_usage[] = {
>     --          N_("git replay (--onto <newbase> | --advance <branch>) <revision-range>... # EXPERIMENTAL"),
>     -+          N_("git replay ([--contained] --onto <newbase> | --advance <branch>) "
>     -+             "<revision-range>... # EXPERIMENTAL"),
>     +-          N_("(EXPERIMENTAL!) git replay (--onto <newbase> | --advance <branch>) <revision-range>..."),
>     ++          N_("(EXPERIMENTAL!) git replay "
>     ++             "([--contained] --onto <newbase> | --advance <branch>) "
>     ++             "<revision-range>..."),
>                 NULL
>         };
>         struct option replay_options[] = {
> 14:  29556bcc86 = 14:  93e034faee replay: stop assuming replayed branches do not diverge

The range-diff looks excellent!

Thank you for addressing all of my concerns, I am very much in favor of
getting this version into git/git's main branch.

Thank you,
Johannes





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux