]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ps/refs-without-the-repository-updates' into ps/ref-storage-migration
authorJunio C Hamano <gitster@pobox.com>
Thu, 23 May 2024 16:14:08 +0000 (09:14 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 23 May 2024 16:14:08 +0000 (09:14 -0700)
* ps/refs-without-the-repository-updates:
  refs/packed: remove references to `the_hash_algo`
  refs/files: remove references to `the_hash_algo`
  refs/files: use correct repository
  refs: remove `dwim_log()`
  refs: drop `git_default_branch_name()`
  refs: pass repo when peeling objects
  refs: move object peeling into "object.c"
  refs: pass ref store when detecting dangling symrefs
  refs: convert iteration over replace refs to accept ref store
  refs: retrieve worktree ref stores via associated repository
  refs: refactor `resolve_gitlink_ref()` to accept a repository
  refs: pass repo when retrieving submodule ref store
  refs: track ref stores via strmap
  refs: implement releasing ref storages
  refs: rename `init_db` callback to avoid confusion
  refs: adjust names for `init` and `init_db` callbacks

14 files changed:
1  2 
builtin/clone.c
builtin/fetch.c
builtin/remote.c
builtin/replace.c
builtin/worktree.c
refs.c
refs.h
refs/debug.c
refs/files-backend.c
refs/packed-backend.c
refs/refs-internal.h
refs/reftable-backend.c
setup.c
t/helper/test-ref-store.c

diff --cc builtin/clone.c
Simple merge
diff --cc builtin/fetch.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc refs.c
index 32e91ff74038503211b2cde43c7fab64cc8dfdbc,43c5fef734eefc00da2f83aca1fa8f173e9fc84d..b906f077205475966936fdf4a3a706bf5d2ddb7c
--- 1/refs.c
--- 2/refs.c
+++ b/refs.c
@@@ -2196,30 -2056,22 +2074,30 @@@ int peel_iterated_oid(struct repositor
             oideq(current_ref_iter->oid, base)))
                return ref_iterator_peel(current_ref_iter, peeled);
  
-       return peel_object(base, peeled) ? -1 : 0;
+       return peel_object(r, base, peeled) ? -1 : 0;
  }
  
 -int refs_create_symref(struct ref_store *refs,
 -                     const char *ref_target,
 -                     const char *refs_heads_master,
 -                     const char *logmsg)
 +int refs_update_symref(struct ref_store *refs, const char *ref,
 +                     const char *target, const char *logmsg)
  {
 -      char *msg;
 -      int retval;
 +      struct ref_transaction *transaction;
 +      struct strbuf err = STRBUF_INIT;
 +      int ret = 0;
  
 -      msg = normalize_reflog_message(logmsg);
 -      retval = refs->be->create_symref(refs, ref_target, refs_heads_master,
 -                                       msg);
 -      free(msg);
 -      return retval;
 +      transaction = ref_store_transaction_begin(refs, &err);
 +      if (!transaction ||
 +          ref_transaction_update(transaction, ref, NULL, NULL,
 +                                 target, NULL, REF_NO_DEREF,
 +                                 logmsg, &err) ||
 +          ref_transaction_commit(transaction, &err)) {
 +              ret = error("%s", err.buf);
 +      }
 +
 +      strbuf_release(&err);
 +      if (transaction)
 +              ref_transaction_free(transaction);
 +
 +      return ret;
  }
  
  int ref_update_reject_duplicates(struct string_list *refnames,
diff --cc refs.h
Simple merge
diff --cc refs/debug.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc setup.c
Simple merge
Simple merge