Thread (24 messages) 24 messages, 6 authors, 2023-11-02

Re: [PATCH 1/1] merge-file: add an option to process object IDs

From: brian m. carlson <hidden>
Date: 2023-10-24 21:23:08

On 2023-10-24 at 20:12:52, Eric Sunshine wrote:
On Tue, Oct 24, 2023 at 3:58 PM brian m. carlson
[off-list ref] wrote:
quoted
git merge-file knows how to merge files on the file system already.  It
would be helpful, however, to allow it to also merge single blobs.
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,
either write to the object store and print the object ID, or honor the
-p argument and print it to standard out.

We handle the empty blob specially since read_mmblob doesn't read it
directly, instead throwing an error, and otherwise users cannot specify
an empty ancestor.

Signed-off-by: brian m. carlson <redacted>
---
diff --git a/builtin/merge-file.c b/builtin/merge-file.c
@@ -99,20 +116,29 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
        if (ret >= 0) {
-               const char *filename = argv[0];
-               char *fpath = prefix_filename(prefix, argv[0]);
-               FILE *f = to_stdout ? stdout : fopen(fpath, "wb");
+               if (object_id && !to_stdout) {
+                       struct object_id oid;
+                       if (result.size)
+                               write_object_file(result.ptr, result.size, OBJ_BLOB, &oid);
Should this be caring about errors by checking the return value of
write_object_file()?
Probably so.  I think I saw write_object_file_prepare returned void and
misinterpreted that as write_object_file returning void.
-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help