From: "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Christian Couder" <chriscool@tuxfamily.org>,
"Taylor Blau" <me@ttaylorr.com>,
"Johannes Altmanninger" <aclopte@gmail.com>,
"Ramsay Jones" <ramsay@ramsayjones.plus.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Christian Couder" <christian.couder@gmail.com>,
"René Scharfe" <l.s.r@web.de>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Elijah Newren" <newren@gmail.com>,
"Johannes Sixt" <j6t@kdbg.org>,
"Elijah Newren" <newren@gmail.com>
Subject: [PATCH v3 00/15] In-core git merge-tree ("Server side merges")
Date: Wed, 02 Feb 2022 07:34:26 +0000 [thread overview]
Message-ID: <pull.1122.v3.git.1643787281.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1122.v2.git.1643479633.gitgitgadget@gmail.com>
Note: Depends on en/remerge-diff (to avoid a small textual conflict). Still
under heavy discussion, though, so no need to pick up yet.
== Basic Summary ==
This series introduces a new mode to git merge-tree allowing it to perform
real merges (three-way text content merges, recursive ancestor
consolidation, rename detection, proper directory/file conflict handling,
etc.) and write the result as a toplevel tree. It doesn't touch the working
tree or index, and doesn't create any commits or update any refs.
== Quick Overview ==
* Patches 1-2: preparatory cleanups
* Patches 3-4: implement basic real merges
* Patches 5-9: include informational messages ("CONFLICT" messages and
such) in output
* to be honest, patches 5, 6, & 8 may be less relevant since we're now
including these messages on stdout anyway...
* Patches 10-13: add ability to include ls-files -u style of info in the
output
* Patch 14: support --allow-unrelated-histories
* Patch 15: augment the manual with potential usage mistakes
== Updates Log ==
Updates since v2 (or v4, if you include the rounds at
https://lore.kernel.org/git/pull.1114.v2.git.git.1641403655.gitgitgadget@gmail.com/):
* Improved patches from Dscho for the diff_warn_rename_limit() handling
* Add a -z option for NUL-terminated conflict info lines (so that filenames
do not have to be quoted)
Stuff NOT included that reviewers brought up in earlier rounds:
* Very generic (mode, oid, stage, filename) printing formatting[1]
* Always printing 3 stages for each filename with conflicts[2] [1]
https://lore.kernel.org/git/CABPp-BGnOes7J_piDyBUeuLVm274w4-9G3k0vR-0it3z7TPn_w@mail.gmail.com/
[2]
https://lore.kernel.org/git/CABPp-BG2rMEYBLuBW=0wtpJe4aUFGCFa8D0NTSKz9Sm+CkXPxw@mail.gmail.com/
Updates since v1 (or v3 depending on how you count; thanks to René, Ævar,
Christian, Dscho for very helpful feedback):
* New patch from Dscho allowing diff_warn_rename_limit() to print somewhere
other than stdout (I hope he's okay with me including his Signed-off-by)
* Now prints filenames relative to prefix, much like ls-files
* Renamed --exclude-oids-and-modes to --exclude-modes-oids-stages and gave
it a -l shorthand; I'm wondering if I should just drop this option,
though.
* And numerous cleanups, in lots of areas:
* Multiple parse-options cleanups
* Lots of commit message cleanups
* Wording tweaks to the "Description" section of the manual
* Several small code cleanups
* I dropped the RFC label
Updates since original submission v2 (thanks to Christian, Dscho, Ramsay,
and René for suggestions and comments):
* Significant changes to output format:
* Flags no longer take a filename for additional output; they write to
stdout instead.
* More information included by default when there are conflicts (no need
to request it with additional flags, instead flags can be used to
suppress it).
* Provide (mode, oid, stage, file) tuples -- i.e. ls-files -u style of
information -- when there are conflicts. Add a flag to only list
conflicted files if that's preferred.
* Much more thorough manual for git-merge-tree.txt
* Renamed option from --real to --write-tree
* Accept an optional --trivial-merge option to get old style merge-tree
behavior
* Allow both --write-tree and --trivial-merge to be omitted since we can
deduce which from number of arguments
* Document exit code when the merge cannot be run (so we can distinguish
other error cases from conflicts)
* testcase cleanups: test_tick, early skip of test when using recursive
backend, variable renames, etc.
* various minor code cleanups
* Add a new --allow-unrelated-histories option (with same meaning as the
one used in git merge)
* Rebased on top of en/remerge-diff to avoid a small conflict
Updates since original submission v1 (thanks to Johannes Altmanninger and
Fabian for suggestions):
* Fixed a bad patch splitting, and a style issue pointed out by Johannes
Altimanninger
* Fixed misleading commit messages in new test cases
* Fixed my comments about how commit-tree could be used to correctly use
two -p flags
Elijah Newren (13):
merge-tree: rename merge_trees() to trivial_merge_trees()
merge-tree: move logic for existing merge into new function
merge-tree: add option parsing and initial shell for real merge
function
merge-tree: implement real merges
merge-ort: split out a separate display_update_messages() function
merge-ort: allow update messages to be written to different file
stream
merge-tree: support including merge messages in output
merge-ort: provide a merge_get_conflicted_files() helper function
merge-tree: provide a list of which files have conflicts
merge-tree: provide easy access to `ls-files -u` style info
merge-tree: allow `ls-files -u` style info to be NUL terminated
merge-tree: add a --allow-unrelated-histories flag
git-merge-tree.txt: add a section on potentional usage mistakes
Johannes Schindelin (2):
Introduce a variant of the `warning()` function that takes a `FILE *`
diff: allow diff_warn_rename_limit to write somewhere besides stderr
Documentation/git-merge-tree.txt | 192 +++++++++++++++++++++++++++--
builtin/merge-tree.c | 164 +++++++++++++++++++++++--
diff.c | 13 +-
diff.h | 3 +-
git-compat-util.h | 1 +
git.c | 2 +-
merge-ort.c | 109 +++++++++++------
merge-ort.h | 30 +++++
merge-recursive.c | 3 +-
t/t4301-merge-tree-write-tree.sh | 204 +++++++++++++++++++++++++++++++
usage.c | 14 +++
11 files changed, 667 insertions(+), 68 deletions(-)
create mode 100755 t/t4301-merge-tree-write-tree.sh
base-commit: ea5df61cf358d3c831189e2f04863abc2157e3e1
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1122%2Fnewren%2Fin-core-merge-tree-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1122/newren/in-core-merge-tree-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1122
Range-diff vs v2:
1: 4a7cd5542bb = 1: 4a7cd5542bb merge-tree: rename merge_trees() to trivial_merge_trees()
2: 4780ff6784d = 2: 4780ff6784d merge-tree: move logic for existing merge into new function
3: 63f42df21ae = 3: 63f42df21ae merge-tree: add option parsing and initial shell for real merge function
4: 02c29f920d0 = 4: 02c29f920d0 merge-tree: implement real merges
-: ----------- > 5: 290b42846b5 Introduce a variant of the `warning()` function that takes a `FILE *`
5: 6fb4f4580a5 ! 6: 2083fbe9b2e diff: allow diff_warn_rename_limit to write somewhere besides stdout
@@ Metadata
Author: Johannes Schindelin <Johannes.Schindelin@gmx.de>
## Commit message ##
- diff: allow diff_warn_rename_limit to write somewhere besides stdout
+ diff: allow diff_warn_rename_limit to write somewhere besides stderr
- diff_warn_rename_limit() is hardcoded to write to stdout. Make it
- accept an output location parameter to make it more flexible.
+ diff_warn_rename_limit() is hardcoded to write to stderr. Make it
+ accept a file stream parameter to make it more flexible.
Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Elijah Newren <newren@gmail.com>
@@ diff.c: static const char rename_limit_advice[] =
+void diff_warn_rename_limit(const char *varname, int needed, int degraded_cc,
+ FILE *out)
{
-- fflush(stdout);
-+ const char *fmt = NULL;
-+
+ fflush(stdout);
if (degraded_cc)
- warning(_(degrade_cc_to_c_warning));
-+ fmt = _(degrade_cc_to_c_warning);
++ warning_fp(out, _(degrade_cc_to_c_warning));
else if (needed)
- warning(_(rename_limit_warning));
-+ fmt = _(rename_limit_warning);
++ warning_fp(out, _(rename_limit_warning));
else
return;
++
++
if (0 < needed)
- warning(_(rename_limit_advice), varname, needed);
-+ fmt = _(rename_limit_advice);
-+
-+ fflush(out);
-+ if (out == stdout)
-+ warning(fmt, varname, needed);
-+ else
-+ fprintf(out, fmt, varname, needed);
++ warning_fp(out, _(rename_limit_advice), varname, needed);
}
static void create_filepairs_for_header_only_notifications(struct diff_options *o)
@@ diff.c: int diff_result_code(struct diff_options *opt, int status)
diff_warn_rename_limit("diff.renameLimit",
opt->needed_rename_limit,
- opt->degraded_cc_to_c);
-+ opt->degraded_cc_to_c, stdout);
++ opt->degraded_cc_to_c, stderr);
if (!opt->flags.exit_with_status &&
!(opt->output_format & DIFF_FORMAT_CHECKDIFF))
return status;
@@ merge-ort.c: void merge_switch_to_result(struct merge_options *opt,
/* Also include needed rename limit adjustment now */
diff_warn_rename_limit("merge.renamelimit",
- opti->renames.needed_limit, 0);
-+ opti->renames.needed_limit, 0, stdout);
++ opti->renames.needed_limit, 0, stderr);
trace2_region_leave("merge", "display messages", opt->repo);
}
@@ merge-recursive.c: static void merge_finalize(struct merge_options *opt)
diff_warn_rename_limit("merge.renamelimit",
- opt->priv->needed_rename_limit, 0);
+ opt->priv->needed_rename_limit, 0,
-+ stdout);
++ stderr);
FREE_AND_NULL(opt->priv);
}
6: 28368c03898 ! 7: 1be858e6aa6 merge-ort: split out a separate display_update_messages() function
@@ merge-ort.c: static int record_conflicted_index_entries(struct merge_options *op
+
+ /* Also include needed rename limit adjustment now */
+ diff_warn_rename_limit("merge.renamelimit",
-+ opti->renames.needed_limit, 0, stdout);
++ opti->renames.needed_limit, 0, stderr);
+
+ trace2_region_leave("merge", "display messages", opt->repo);
+}
@@ merge-ort.c: void merge_switch_to_result(struct merge_options *opt,
-
- /* Also include needed rename limit adjustment now */
- diff_warn_rename_limit("merge.renamelimit",
-- opti->renames.needed_limit, 0, stdout);
+- opti->renames.needed_limit, 0, stderr);
-
- trace2_region_leave("merge", "display messages", opt->repo);
- }
7: 593d0c00b57 ! 8: 04c3bdc44d2 merge-ort: allow update messages to be written to different file stream
@@ Commit message
merge-ort: allow update messages to be written to different file stream
This modifies the new display_update_messages() function to allow
- printing to somewhere other than stdout.
+ printing to somewhere other than stdout. It also consolidates the
+ location of the diff_warn_rename_limit() message with the rest of the
+ CONFLICT and other update messages to all go to the same stream.
Signed-off-by: Elijah Newren <newren@gmail.com>
@@ merge-ort.c: void merge_display_update_messages(struct merge_options *opt,
/* Also include needed rename limit adjustment now */
diff_warn_rename_limit("merge.renamelimit",
-- opti->renames.needed_limit, 0, stdout);
+- opti->renames.needed_limit, 0, stderr);
+ opti->renames.needed_limit, 0, stream);
trace2_region_leave("merge", "display messages", opt->repo);
8: d0d30e92ecd = 9: c8ed002408d merge-tree: support including merge messages in output
9: 9c2334ae9f2 = 10: 1c2a3f5ef63 merge-ort: provide a merge_get_conflicted_files() helper function
10: 243134dc247 = 11: 9c2389eef0e merge-tree: provide a list of which files have conflicts
11: c322e4c6938 = 12: 2188a8ca1e7 merge-tree: provide easy access to `ls-files -u` style info
-: ----------- > 13: 52339b396fa merge-tree: allow `ls-files -u` style info to be NUL terminated
12: 25677d5038c ! 14: c854ecb5f4a merge-tree: add a --allow-unrelated-histories flag
@@ t/t4301-merge-tree-write-tree.sh: test_expect_success setup '
'
test_expect_success 'Content merge and a few conflicts' '
-@@ t/t4301-merge-tree-write-tree.sh: test_expect_success 'Check conflicted oids and modes without messages' '
- test_cmp conflicted-file-info actual
+@@ t/t4301-merge-tree-write-tree.sh: test_expect_success 'NUL terminated conflicted file "lines"' '
+ test_cmp expect actual
'
+test_expect_success 'error out by default for unrelated histories' '
13: e7c63425a0e = 15: bc8591bbb63 git-merge-tree.txt: add a section on potentional usage mistakes
--
gitgitgadget
next prev parent reply other threads:[~2022-02-02 7:34 UTC|newest]
Thread overview: 240+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-22 21:55 [PATCH 00/12] RFC: In-core git merge-tree ("Server side merges") Elijah Newren via GitGitGadget
2022-01-22 21:55 ` [PATCH 01/12] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-01-22 21:55 ` [PATCH 02/12] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-01-22 21:55 ` [PATCH 03/12] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-01-23 8:05 ` René Scharfe
2022-01-24 16:43 ` Elijah Newren
2022-01-24 9:46 ` Ævar Arnfjörð Bjarmason
2022-01-24 16:54 ` Elijah Newren
2022-01-22 21:55 ` [PATCH 04/12] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-01-24 9:51 ` Ævar Arnfjörð Bjarmason
2022-01-24 17:12 ` Elijah Newren
2022-01-25 17:07 ` Johannes Schindelin
2022-01-26 9:44 ` Christian Couder
2022-01-29 4:09 ` Elijah Newren
2022-01-22 21:55 ` [PATCH 05/12] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-01-24 9:56 ` Ævar Arnfjörð Bjarmason
2022-01-25 1:59 ` Elijah Newren
2022-01-28 16:09 ` Johannes Schindelin
2022-01-22 21:55 ` [PATCH 06/12] merge-ort: allow update messages to be written to different file stream Elijah Newren via GitGitGadget
2022-01-28 16:31 ` Johannes Schindelin
2022-01-29 4:33 ` Elijah Newren
2022-01-22 21:55 ` [PATCH 07/12] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-01-26 10:42 ` Christian Couder
2022-01-29 4:52 ` Elijah Newren
2022-01-28 16:37 ` Johannes Schindelin
2022-01-29 4:46 ` Elijah Newren
2022-01-22 21:55 ` [PATCH 08/12] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-01-26 10:55 ` Christian Couder
2022-01-29 4:55 ` Elijah Newren
2022-01-26 11:07 ` Christian Couder
2022-01-29 5:06 ` Elijah Newren
2022-01-28 16:55 ` Johannes Schindelin
2022-01-29 6:08 ` Elijah Newren
2022-01-29 8:23 ` Johannes Sixt
2022-01-29 16:47 ` Elijah Newren
2022-02-04 23:10 ` Johannes Schindelin
2022-02-05 0:54 ` Elijah Newren
2022-02-21 10:46 ` Johannes Schindelin
2022-02-21 14:27 ` Ævar Arnfjörð Bjarmason
2022-02-21 14:28 ` machine-parsable git-merge-tree messages (was: [PATCH 08/12] merge-ort: provide a merge_get_conflicted_files() helper function) Ævar Arnfjörð Bjarmason
2022-02-23 4:00 ` Elijah Newren
2022-02-28 8:50 ` Ævar Arnfjörð Bjarmason
2022-03-01 3:49 ` Elijah Newren
2022-02-22 16:54 ` [PATCH 08/12] merge-ort: provide a merge_get_conflicted_files() helper function Johannes Schindelin
2022-02-23 3:13 ` Elijah Newren
2022-02-25 16:26 ` Johannes Schindelin
2022-02-23 2:15 ` Elijah Newren
2022-02-25 16:31 ` Johannes Schindelin
2022-02-25 18:40 ` Junio C Hamano
2022-02-26 6:53 ` Elijah Newren
2022-03-07 16:27 ` Johannes Schindelin
2022-03-08 8:25 ` Elijah Newren
2022-03-10 15:10 ` Johannes Schindelin
2022-05-13 10:21 ` Johannes Schindelin
2022-05-17 8:23 ` Elijah Newren
2022-06-03 22:11 ` Johannes Schindelin
2022-06-05 15:40 ` Johannes Schindelin
2022-06-05 22:42 ` Johannes Schindelin
2022-06-06 21:37 ` Johannes Schindelin
2022-06-07 7:38 ` Elijah Newren
2022-06-17 23:44 ` Elijah Newren
2022-06-18 21:58 ` Johannes Schindelin
2022-01-22 21:55 ` [PATCH 09/12] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-01-24 10:01 ` Ævar Arnfjörð Bjarmason
2022-01-24 17:18 ` Elijah Newren
2022-01-28 16:57 ` Johannes Schindelin
2022-01-29 6:21 ` Elijah Newren
2022-02-04 23:12 ` Johannes Schindelin
[not found] ` <CABPp-BFyaakDSjHULpBRPQqq_jz2keyufHo1MjNS6dHQNR+JLQ@mail.gmail.com>
2022-02-21 9:31 ` Johannes Schindelin
2022-01-22 21:56 ` [PATCH 10/12] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-01-24 10:06 ` Ævar Arnfjörð Bjarmason
2022-01-24 17:30 ` Elijah Newren
2022-01-22 21:56 ` [PATCH 11/12] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-01-22 21:56 ` [PATCH 12/12] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-01-26 8:48 ` [PATCH 00/12] RFC: In-core git merge-tree ("Server side merges") Christian Couder
2022-01-26 12:02 ` Johannes Schindelin
2022-01-26 14:44 ` Christian Couder
2022-01-28 12:58 ` Johannes Schindelin
2022-01-28 13:37 ` Christian Couder
2022-01-28 16:05 ` Johannes Schindelin
2022-01-29 7:03 ` Elijah Newren
2022-01-29 8:17 ` Christian Couder
2022-01-29 17:43 ` Elijah Newren
2022-01-31 17:45 ` Elijah Newren
2022-01-28 17:00 ` Johannes Schindelin
2022-01-29 18:07 ` [PATCH v2 00/13] " Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 01/13] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 02/13] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 03/13] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-02-02 21:30 ` Junio C Hamano
2022-01-29 18:07 ` [PATCH v2 04/13] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-02-02 21:30 ` Junio C Hamano
2022-02-02 22:00 ` Elijah Newren
2022-02-21 8:40 ` Johannes Schindelin
2022-01-29 18:07 ` [PATCH v2 05/13] diff: allow diff_warn_rename_limit to write somewhere besides stdout Johannes Schindelin via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 06/13] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 07/13] merge-ort: allow update messages to be written to different file stream Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 08/13] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-02-02 21:30 ` Junio C Hamano
2022-02-02 23:09 ` Elijah Newren
2022-01-29 18:07 ` [PATCH v2 09/13] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-01-29 18:07 ` [PATCH v2 10/13] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-02-02 21:32 ` Junio C Hamano
2022-02-02 21:32 ` Junio C Hamano
2022-02-03 23:55 ` Junio C Hamano
2022-01-29 18:07 ` [PATCH v2 11/13] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-02-02 21:32 ` Junio C Hamano
2022-02-02 23:18 ` Elijah Newren
2022-02-03 1:08 ` Ævar Arnfjörð Bjarmason
2022-02-03 8:39 ` Elijah Newren
2022-01-29 18:07 ` [PATCH v2 12/13] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-02-02 21:32 ` Junio C Hamano
2022-01-29 18:07 ` [PATCH v2 13/13] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-02-02 7:34 ` Elijah Newren via GitGitGadget [this message]
2022-02-02 7:34 ` [PATCH v3 01/15] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 02/15] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 03/15] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-02-03 2:05 ` Ævar Arnfjörð Bjarmason
2022-02-03 9:04 ` Elijah Newren
2022-02-03 9:22 ` Elijah Newren
2022-02-03 9:45 ` Ævar Arnfjörð Bjarmason
2022-02-03 16:20 ` Elijah Newren
2022-02-03 17:15 ` Ævar Arnfjörð Bjarmason
2022-02-03 18:18 ` Elijah Newren
2022-02-03 10:26 ` Ævar Arnfjörð Bjarmason
2022-02-07 22:41 ` Emily Shaffer
2022-02-07 23:36 ` Junio C Hamano
2022-02-02 7:34 ` [PATCH v3 04/15] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-02-02 21:22 ` Junio C Hamano
2022-02-02 21:56 ` Elijah Newren
2022-02-02 22:01 ` Junio C Hamano
2022-02-03 0:18 ` Elijah Newren
2022-02-03 10:42 ` Johannes Altmanninger
2022-02-03 16:54 ` Elijah Newren
2022-02-21 9:06 ` Johannes Schindelin
2022-02-22 2:37 ` Elijah Newren
2022-02-03 20:05 ` Junio C Hamano
2022-02-21 18:55 ` Junio C Hamano
2022-02-22 16:26 ` Elijah Newren
2022-02-23 20:07 ` Junio C Hamano
2022-02-24 2:22 ` Elijah Newren
2022-02-24 20:04 ` Junio C Hamano
2022-02-24 23:36 ` Junio C Hamano
2022-02-27 17:35 ` Johannes Altmanninger
2022-02-27 17:35 ` Johannes Altmanninger
2022-02-22 16:45 ` Johannes Schindelin
2022-02-04 4:48 ` Josh Steadmon
2022-02-04 6:08 ` Elijah Newren
2022-02-02 7:34 ` [PATCH v3 05/15] Introduce a variant of the `warning()` function that takes a `FILE *` Johannes Schindelin via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 06/15] diff: allow diff_warn_rename_limit to write somewhere besides stderr Johannes Schindelin via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 07/15] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 08/15] merge-ort: allow update messages to be written to different file stream Elijah Newren via GitGitGadget
2022-02-03 1:48 ` Ævar Arnfjörð Bjarmason
2022-02-03 9:12 ` Elijah Newren
2022-02-03 10:01 ` Ævar Arnfjörð Bjarmason
2022-02-03 16:09 ` Elijah Newren
2022-02-03 16:19 ` Ævar Arnfjörð Bjarmason
2022-02-03 17:00 ` Elijah Newren
2022-02-21 9:13 ` Johannes Schindelin
2022-02-22 1:54 ` Elijah Newren
2022-02-22 16:48 ` Johannes Schindelin
2022-02-02 7:34 ` [PATCH v3 09/15] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 10/15] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 11/15] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 12/15] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-02-02 23:55 ` Ævar Arnfjörð Bjarmason
2022-02-03 5:19 ` Elijah Newren
2022-02-02 7:34 ` [PATCH v3 13/15] merge-tree: allow `ls-files -u` style info to be NUL terminated Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 14/15] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-02-02 7:34 ` [PATCH v3 15/15] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 00/12] In-core git merge-tree ("Server side merges") Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 01/12] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 02/12] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 03/12] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 04/12] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-02-14 17:51 ` Junio C Hamano
2022-02-15 6:03 ` Elijah Newren
2022-02-15 8:46 ` Ævar Arnfjörð Bjarmason
2022-02-12 20:34 ` [PATCH v4 05/12] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 06/12] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 07/12] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 08/12] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 09/12] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 10/12] merge-tree: allow `ls-files -u` style info to be NUL terminated Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 11/12] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-02-12 20:34 ` [PATCH v4 12/12] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 00/12] In-core git merge-tree ("Server side merges") Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 01/12] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 02/12] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 03/12] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 04/12] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-02-20 9:03 ` René Scharfe
2022-02-21 9:25 ` Johannes Schindelin
2022-02-22 2:28 ` Elijah Newren
2022-02-22 16:25 ` Johannes Schindelin
2022-02-20 6:54 ` [PATCH v5 05/12] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 06/12] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 07/12] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 08/12] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 09/12] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 10/12] merge-tree: allow `ls-files -u` style info to be NUL terminated Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 11/12] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-02-20 6:54 ` [PATCH v5 12/12] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-02-22 16:26 ` Johannes Schindelin
2022-02-20 10:23 ` [PATCH v5 00/12] In-core git merge-tree ("Server side merges") Ævar Arnfjörð Bjarmason
2022-02-21 9:16 ` Johannes Schindelin
2022-02-22 2:08 ` Elijah Newren
2022-02-22 10:07 ` Ævar Arnfjörð Bjarmason
2022-02-23 7:46 ` [PATCH v6 " Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 01/12] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 02/12] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 03/12] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 04/12] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 05/12] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 06/12] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 07/12] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 08/12] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 09/12] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 10/12] merge-tree: allow `ls-files -u` style info to be NUL terminated Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 11/12] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-02-23 7:46 ` [PATCH v6 12/12] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
2022-02-23 23:13 ` [PATCH v6 00/12] In-core git merge-tree ("Server side merges") Junio C Hamano
2022-06-18 0:20 ` [PATCH v7 00/17] " Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 01/17] merge-tree: rename merge_trees() to trivial_merge_trees() Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 02/17] merge-tree: move logic for existing merge into new function Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 03/17] merge-tree: add option parsing and initial shell for real merge function Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 04/17] merge-tree: implement real merges Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 05/17] merge-ort: split out a separate display_update_messages() function Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 06/17] merge-tree: support including merge messages in output Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 07/17] merge-ort: provide a merge_get_conflicted_files() helper function Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 08/17] merge-ort: remove command-line-centric submodule message from merge-ort Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 09/17] merge-tree: provide a list of which files have conflicts Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 10/17] merge-tree: provide easy access to `ls-files -u` style info Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 11/17] merge-ort: store messages in a list, not in a single strbuf Johannes Schindelin via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 12/17] merge-ort: make `path_messages` a strmap to a string_list Johannes Schindelin via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 13/17] merge-ort: store more specific conflict information Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 14/17] merge-ort: optionally produce machine-readable output Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 15/17] merge-tree: allow `ls-files -u` style info to be NUL terminated Elijah Newren via GitGitGadget
2022-06-18 0:20 ` [PATCH v7 16/17] merge-tree: add a --allow-unrelated-histories flag Elijah Newren via GitGitGadget
2022-06-18 0:21 ` [PATCH v7 17/17] git-merge-tree.txt: add a section on potentional usage mistakes Elijah Newren via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1122.v3.git.1643787281.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=aclopte@gmail.com \
--cc=avarab@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=l.s.r@web.de \
--cc=me@ttaylorr.com \
--cc=newren@gmail.com \
--cc=ramsay@ramsayjones.plus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).