On Wed, May 14, 2025, at 02:24, Elijah Newren via GitGitGadget wrote: > Changes since v2: > > * Converted locations missed in v1 in changing --mergeability-only -> > --dry-run > > Changes since v1: > > * Renamed --mergeability-only flag to --dry-run, as per suggestion from > Junio > * added some commit message clarifications > > This adds a new flag, --dry-run, to git merge-tree, which suppresses all > output and leaves only the exit status (reflecting successful merge or > conflict). This is useful for Git Forges in cases where they are only > interested in whether two branches can be merged, without needing the actual > merge result or conflict details. > > The advantage of the flag is two fold: > > * The merge machinery can exit once it detects a conflict, instead of > continuing to compute merge result information > * The merge machinery can avoid writing merged blobs and trees to the > object store when in the outer layer of the merging process (more details > in the first commit message). > > Elijah Newren (2): > merge-ort: add a new mergeability_only option > merge-tree: add a new --dry-run flag All I can say is that this looks good considering the comments on v2. Interdiff: ``` diff --git a/Documentation/git-merge-tree.adoc b/Documentation/git-merge-tree.adoc index 7dcc1780619..74716b91019 100644 --- a/Documentation/git-merge-tree.adoc +++ b/Documentation/git-merge-tree.adoc @@ -65,11 +65,11 @@ OPTIONS default is to include these messages if there are merge conflicts, and to omit them otherwise. ---mergeability-only:: +--dry-run:: Disable all output from the program. Useful when you are only interested in the exit status. Allows merge-tree to exit - early on the first conflict it finds, and allows it to avoid - writing most objects created by merges. + early when it finds a conflict, and allows it to avoid writing + most objects created by merges. --allow-unrelated-histories:: merge-tree will by default error out if the two branches specified diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c index 579e81d5184..273ec171e98 100644 --- a/builtin/merge-tree.c +++ b/builtin/merge-tree.c @@ -596,13 +596,13 @@ int cmd_merge_tree(int argc, if (dry_run && o.show_messages == -1) o.show_messages = 0; o.merge_options.mergeability_only = dry_run; - die_for_incompatible_opt2(dry_run, "--mergeability-only", + die_for_incompatible_opt2(dry_run, "--dry-run", o.show_messages, "--messages"); - die_for_incompatible_opt2(dry_run, "--mergeability-only", + die_for_incompatible_opt2(dry_run, "--dry-run", o.name_only, "--name-only"); - die_for_incompatible_opt2(dry_run, "--mergeability-only", + die_for_incompatible_opt2(dry_run, "--dry-run", o.use_stdin, "--stdin"); - die_for_incompatible_opt2(dry_run, "--mergeability-only", + die_for_incompatible_opt2(dry_run, "--dry-run", !line_termination, "-z"); if (xopts.nr && o.mode == MODE_TRIVIAL) ```