Thread (47 messages) flat view 47 messages, 3 authors, 2016-06-15

Re: [PATCH v5 12/27] refs: forbid cross-backend ref renames

From: Duy Nguyen <hidden>
Date: 2016-06-15 23:08:19

On Thu, Feb 18, 2016 at 12:17 PM, David Turner [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This would be pretty weird, but since it will break, we should prevent
it.

Signed-off-by: David Turner <redacted>
---
 refs.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/refs.c b/refs.c
index f5754f2..8eb04da 100644
--- a/refs.c
+++ b/refs.c
@@ -1306,5 +1306,11 @@ int delete_refs(struct string_list *refnames)

 int rename_ref(const char *oldref, const char *newref, const char *logmsg)
 {
+       if ((ref_type(oldref) == REF_TYPE_NORMAL) !=
+           (ref_type(newref) == REF_TYPE_NORMAL)) {
+               error(_("Both ref arguments to rename_ref must be normal "
+                       "(or both must be per-worktree/pseudorefs)"));
+               return -1;
You can do return error(...);
+       }
        return the_refs_backend->rename_ref(oldref, newref, logmsg);
LMDB backend can't deal with per-worktree rename. So either forbid
per-worktree rename here too, or fall back to files backend.
-- 
Duy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help