Documentation/git-replay.adoc: fix errors around revision range

There was significant confusion in the git-replay manual about what
constitutes a revision range.  As noted in f302c1e4aa (revisions(7):
clarify that most commands take a single revision range, 2021-05-18):

   Commands that are specifically designed to take two distinct ranges
   (e.g. "git range-diff R1 R2" to compare two ranges) do exist, but they
   are exceptions. Unless otherwise noted, all "git" commands that operate
   on a set of commits work on a single revision range.

`git replay` is not an exception, but a few places in the manual were
written as though it were.  These appear to have come in revisions to
the original series, between v3->v4 (see
https://lore.kernel.org/git/CAP8UFD3bpLrVW97DH7j=V9H2GsTSAkksC9L3QujQERFk_kLnZA@mail.gmail.com/
, "More than one <revision-range> can be passed") and between v6->v7
(https://lore.kernel.org/git/20231115143327.2441397-1-christian.couder@gmail.com/,
"Takes ranges of commits"), and I missed both of these revisions when
reviewing.  Fix them now.

There was also a reference to the "Commit Limiting options below", but
this page has no such section of options; strike the misleading
reference.

It is worth noting that we are documenting existing behavior, rather
than optimal behavior.  Junio has multiple times suggested introducing
alternative ways to walk revisions and use them in `git replay
--advance`, e.g. at
  * https://lore.kernel.org/git/xmqqy1mqo6kv.fsf@gitster.g/
  * https://lore.kernel.org/git/xmqq8rb3is8c.fsf@gitster.g/
  * https://lore.kernel.org/git/xmqqtsydj2zk.fsf@gitster.g/ (item (2))
If/when we introduce some new revision walking flag that implements one
of these alternate types of revision walks, we can update the --advance
option and this manual appropriately.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Elijah Newren
2025-11-29 04:44:24 +00:00
committed by Junio C Hamano
parent b31ab939fe
commit 136f86abc0
2 changed files with 7 additions and 8 deletions

View File

@@ -9,12 +9,12 @@ git-replay - EXPERIMENTAL: Replay commits on a new base, works with bare repos t
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
(EXPERIMENTAL!) 'git replay' ([--contained] --onto <newbase> | --advance <branch>) [--ref-action[=<mode>]] <revision-range>... (EXPERIMENTAL!) 'git replay' ([--contained] --onto <newbase> | --advance <branch>) [--ref-action[=<mode>]] <revision-range>
DESCRIPTION DESCRIPTION
----------- -----------
Takes ranges of commits and replays them onto a new location. Leaves Takes a range of commits and replays them onto a new location. Leaves
the working tree and the index untouched. By default, updates the the working tree and the index untouched. By default, updates the
relevant references using an atomic transaction (all refs update or relevant references using an atomic transaction (all refs update or
none). Use `--ref-action=print` to avoid automatic ref updates and none). Use `--ref-action=print` to avoid automatic ref updates and
@@ -55,11 +55,10 @@ which uses the target only as a starting point without updating it.
The default mode can be configured via the `replay.refAction` configuration variable. The default mode can be configured via the `replay.refAction` configuration variable.
<revision-range>:: <revision-range>::
Range of commits to replay. More than one <revision-range> can Range of commits to replay; see "Specifying Ranges" in
be passed, but in `--advance <branch>` mode, they should have linkgit:git-rev-parse[1]. In `--advance <branch>` mode, the
a single tip, so that it's clear where <branch> should point range should have a single tip, so that it's clear to which tip the
to. See "Specifying Ranges" in linkgit:git-rev-parse[1] and the advanced <branch> should point.
"Commit Limiting" options below.
include::rev-list-options.adoc[] include::rev-list-options.adoc[]

View File

@@ -366,7 +366,7 @@ int cmd_replay(int argc,
const char *const replay_usage[] = { const char *const replay_usage[] = {
N_("(EXPERIMENTAL!) git replay " N_("(EXPERIMENTAL!) git replay "
"([--contained] --onto <newbase> | --advance <branch>) " "([--contained] --onto <newbase> | --advance <branch>) "
"[--ref-action[=<mode>]] <revision-range>..."), "[--ref-action[=<mode>]] <revision-range>"),
NULL NULL
}; };
struct option replay_options[] = { struct option replay_options[] = {