Show 37 quoted lines
> On Thu, Feb 18, 2016 at 12:17 PM, David Turner <
> dturner@twopensource.com> wrote:
> > This would be pretty weird, but since it will break, we should
> > prevent
> > it.
> >
> > Signed-off-by: David Turner <dturner@twopensource.com>
> > ---
> > 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.