Skip to content
Merged
15 changes: 15 additions & 0 deletions Documentation/RelNotes/2.53.0.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ UI, Workflows & Features
* "git fast-import" learns "--strip-if-invalid" option to drop
invalid cryptographic signature from objects.

* The use of "revision" (a connected set of commits) has been
clarified in the "git replay" documentation.


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------
Expand Down Expand Up @@ -135,6 +138,18 @@ Fixes since v2.52
have been corrected.
(merge df963f0df4 rs/config-set-multi-error-message-fix later to maint).

* "git replay" forgot to omit the "gpgsig-sha256" extended header
from the resulting commit the same way it omits "gpgsig", which has
been corrected.
(merge 9f3a115087 pw/replay-exclude-gpgsig-fix later to maint).

* A few tests have been updated to work under the shell compatible
mode of zsh.
(merge a92f243a94 bc/zsh-testsuite later to maint).

* The way patience diff finds LCS has been optimized.
(merge c7e3b8085b yc/xdiff-patience-optim later to maint).

* Other code cleanup, docfix, build fix, etc.
(merge 46207a54cc qj/doc-http-bad-want-response later to maint).
(merge df90eccd93 kh/doc-commit-extra-references later to maint).
Expand Down
13 changes: 6 additions & 7 deletions Documentation/git-replay.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ git-replay - EXPERIMENTAL: Replay commits on a new base, works with bare repos t
SYNOPSIS
--------
[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
-----------

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
relevant references using an atomic transaction (all refs update or
none). Use `--ref-action=print` to avoid automatic ref updates and
Expand Down Expand Up @@ -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.

<revision-range>::
Range of commits to replay. More than one <revision-range> can
be passed, but in `--advance <branch>` mode, they should have
a single tip, so that it's clear where <branch> should point
to. See "Specifying Ranges" in linkgit:git-rev-parse[1] and the
"Commit Limiting" options below.
Range of commits to replay; see "Specifying Ranges" in
linkgit:git-rev-parse[1]. In `--advance <branch>` mode, the
range should have a single tip, so that it's clear to which tip the
advanced <branch> should point.

include::rev-list-options.adoc[]

Expand Down
4 changes: 2 additions & 2 deletions builtin/replay.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ static struct commit *create_commit(struct repository *repo,
const char *message = repo_logmsg_reencode(repo, based_on,
NULL, out_enc);
const char *orig_message = NULL;
const char *exclude_gpgsig[] = { "gpgsig", NULL };
const char *exclude_gpgsig[] = { "gpgsig", "gpgsig-sha256", NULL };

commit_list_insert(parent, &parents);
extra = read_commit_extra_headers(based_on, exclude_gpgsig);
Expand Down Expand Up @@ -366,7 +366,7 @@ int cmd_replay(int argc,
const char *const replay_usage[] = {
N_("(EXPERIMENTAL!) git replay "
"([--contained] --onto <newbase> | --advance <branch>) "
"[--ref-action[=<mode>]] <revision-range>..."),
"[--ref-action[=<mode>]] <revision-range>"),
NULL
};
struct option replay_options[] = {
Expand Down
2 changes: 1 addition & 1 deletion t/t0614-reftable-fsck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ test_expect_success "no errors reported on a well formed repository" '
done &&

# The repository should end up with multiple tables.
test_line_count ">" 1 .git/reftable/tables.list &&
test_line_count -gt 1 .git/reftable/tables.list &&

git refs verify 2>err &&
test_must_be_empty err
Expand Down
4 changes: 2 additions & 2 deletions t/t5564-http-proxy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ test_expect_success 'clone can prompt for proxy password' '

start_socks() {
mkfifo socks_output &&
{
(
"$PERL_PATH" "$TEST_DIRECTORY/socks4-proxy.pl" "$1" >socks_output &
echo $! > "$TRASH_DIRECTORY/socks.pid"
} &&
) &&
read line <socks_output &&
test "$line" = ready
}
Expand Down
5 changes: 4 additions & 1 deletion xdiff/xpatience.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,10 @@ static int find_longest_common_sequence(struct hashmap *map, struct entry **res)
for (entry = map->first; entry; entry = entry->next) {
if (!entry->line2 || entry->line2 == NON_UNIQUE)
continue;
i = binary_search(sequence, longest, entry);
if (longest == 0 || entry->line2 > sequence[longest - 1]->line2)
i = longest - 1;
else
i = binary_search(sequence, longest, entry);
entry->previous = i < 0 ? NULL : sequence[i];
++i;
if (i <= anchor_i)
Expand Down