Web lists-archives.com

Re: [PATCH v2 0/3] branch: add a --copy to go with --move




Ævar Arnfjörð Bjarmason  <avarab@xxxxxxxxx> writes:

> Even though this modifies some of the same files as
> mh/packed-ref-store it looks to me like this doesn't conflict with
> that topic in any meaningful way, but I may be missing something. I
> can't get a merge between this & gitster/mh/packed-ref-store
> compiling,...

That is because each ref backend is required to implement a new
method by that topic.  The following patch needs to be squashed in
while merging the two topics, making the resulting commit an evil
merge.

FWIW, the result of applying these three patches on 'master' and
merging the result to a commit on 'pu' that is just before the merge
of previous round of the same topic, with the attached fix-up, exactly
matches the commit on 'pu' that merges the previous round, iow, I see
there is no meaningful change (perhaps other than log message?  I
didn't check) in this new round.

Note that I am not complaining that this new round does not bring
any improvements---I am not commending that you didn't screw up
while rebasing to a new commit, either ;-).

diff --git b/refs/packed-backend.c a/refs/packed-backend.c
index dc09012300..96f9141656 100644
--- b/refs/packed-backend.c
+++ a/refs/packed-backend.c
@@ -794,6 +794,13 @@ static int packed_rename_ref(struct ref_store *ref_store,
 	die("BUG: packed reference store does not support renaming references");
 }
 
+static int packed_copy_ref(struct ref_store *ref_store,
+			   const char *oldrefname, const char *newrefname,
+			   const char *logmsg)
+{
+	die("BUG: packed reference store does not support copying references");
+}
+
 static struct ref_iterator *packed_reflog_iterator_begin(struct ref_store *ref_store)
 {
 	return empty_ref_iterator_begin();
@@ -859,6 +866,7 @@ struct ref_storage_be refs_be_packed = {
 	packed_create_symref,
 	packed_delete_refs,
 	packed_rename_ref,
+	packed_copy_ref,
 
 	packed_ref_iterator_begin,
 	packed_read_raw_ref,