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

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

From: David Turner <hidden>
Date: 2016-06-15 23:08:24

On Sat, 2016-02-20 at 11:30 +0700, Duy Nguyen wrote:
On Thu, Feb 18, 2016 at 12:17 PM, David Turner <
dturner@twopensource.com> wrote:
quoted
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(...);
quoted
+       }
        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.
Will do, thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help