[PATCH v3 0/2] Object ID support for git merge-file
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Nov 1, 2023, 19:24 UTC
- Message-ID
- <20231101192419.794162-1-sandals@crustytoothpaste.net>
- In-Reply-To
- <20231024195655.2413191-1-sandals@crustytoothpaste.net>
This series introduces an --object-id option to git merge-file such that, instead of reading and writing from files on the system, it reads from and writes to the object store using blobs.
Changes from v2: * Include a patch from Martin to pre-improve the documentation * Remove incorrect portion of commit message
Changes from v1: * Improve error handling * Re-add `-p` argument for documentation
Martin Ågren (1): git-merge-file doc: drop "-file" from argument placeholders
brian m. carlson (1): merge-file: add an option to process object IDs
Documentation/git-merge-file.txt | 38 ++++++++++++++------ builtin/merge-file.c | 62 +++++++++++++++++++++++--------- t/t6403-merge-file.sh | 58 ++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 26 deletions(-)
Range-diff against v2:
-: ---------- > 1: 21a96acf42 git-merge-file doc: drop "-file" from argument placeholders
1: 9cd4220a3b ! 2: b1978a7b5c merge-file: add an option to process object IDs
@@ Commit message
Teach it an `--object-id` option which means that its arguments are
object IDs and not files to allow it to do so.
- Since we obviously won't be writing the data to the first argument,
- imply the -p option so we write to standard output.
-
We handle the empty blob specially since read_mmblob doesn't read it
directly and otherwise users cannot specify an empty ancestor.
@@ Commit message
## Documentation/git-merge-file.txt ##
@@ Documentation/git-merge-file.txt: SYNOPSIS
+ [verse]
'git merge-file' [-L <current-name> [-L <base-name> [-L <other-name>]]]
[--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
- [--[no-]diff3] <current-file> <base-file> <other-file>
-+'git merge-file' --object-id [-L <current-name> [-L <base-name> [-L <other-name>]]]
-+ [--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
-+ [--[no-]diff3] <current-oid> <base-oid> <other-oid>
+- [--[no-]diff3] <current> <base> <other>
++ [--[no-]diff3] [--object-id] <current> <base> <other>
DESCRIPTION
-@@ Documentation/git-merge-file.txt: however, these conflicts are resolved favouring lines from `<current-file>`,
- lines from `<other-file>`, or lines from both respectively. The length of the
+@@ Documentation/git-merge-file.txt: however, these conflicts are resolved favouring lines from `<current>`,
+ lines from `<other>`, or lines from both respectively. The length of the
conflict markers can be given with the `--marker-size` option.
+If `--object-id` is specified, exactly the same behavior occurs, except that