From: Michael Haggerty <mhagger@xxxxxxxxxxxx> Extra refs don't have much to do with real references, and in fact they have to be handled differently. For example, they do not support flags, they might not have unique names (indeed, the names are rather meaningless), and they are only ever iterated over, never looked up. So seemingly innocent things that one might want to do with real references, like check for conflicting duplicates, must not be done for extra refs. This patch series creates a new linked-list data structure for the extra refs, separates iteration over the extra refs into a new function, and changes a test to actually create multiple extra refs with the same name. This patch series applies on top of master. If this approach is selected, then the ref-api-D series will have to be rebased on top of it and touched up to avoid the problems that it has with duplicate extra refs. By the way, I have been carrying around the CC list of this email for quite a while. If you are tired of being spammed with my patch series, send me a private email and I will be happy to remove you from future mailings. Michael Haggerty (6): t5519: push two branches to alternate repo add_extra_ref(): remove flag argument Extract a function do_for_each_extra_ref() Store extra_refs in a separate data structure Omit extra_refs except when iterating using for_each_ref() do_for_each_extra_ref(): simplify signature builtin/clone.c | 4 ++-- builtin/receive-pack.c | 2 +- refs.c | 44 ++++++++++++++++++++++++++++++++++---------- refs.h | 2 +- t/t5519-push-alternates.sh | 10 +++++++++- 5 files changed, 47 insertions(+), 15 deletions(-) -- 1.7.8 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html