From: Jeff King Date: Wed, 04 Feb 2009 16:16:54 GMT Subject: Re: [PATCH 2/2] builtin-remote: make rm operation safer in mirrored repository Message-ID: <20090204161654.GA9218@sigill.intra.peff.net> In-Reply-To: <76718490902040756m1f5c6f37o45865c51ad1a2e6d@mail.gmail.com> On Wed, Feb 04, 2009 at 10:56:06AM -0500, Jay Soffian wrote: > On Wed, Feb 4, 2009 at 10:42 AM, Jeff King wrote: > >> + /* don't delete non-remote branches */ > >> + if (prefixcmp(refname, "refs/remotes")) { > >> + if (!prefixcmp(refname, "refs/heads/")) > >> + string_list_append(abbrev_branch(refname), > >> + branches->skipped); > >> + return 0; > >> + } > > > > Why does this version introduce the "only skip refs/heads/" check? > > Shouldn't we also protect other random refs (or if not, shouldn't the > > commit message explain why not)? > > Note that we do protect refs, but we only emit messages about those > refs which are obviously branches. Frankly, I wasn't sure what other > kinds of refs there might be, so wasn't sure what an appropriate > message is for anything other than those under refs/heads. Oh, right. I was just reading it wrong. Your new version with the two comments makes it even more clear. > Note: A non-remote branch was not removed; to delete it use: > git branch -d ... > > Note: Tags were not removed, to delete them use: > git tag -d ... > > Note: Some refs were ignored: > refs/whoknows/whatthisis > refs/whoknows/whatthiscouldbe Nah, I think deleting branches was the main intention. So we are properly protecting everything now, but only warning about what you _might_ have meant. > But that's getting a little insane me thinks. Agreed. -Peff