On Sat, Aug 27, 2016 at 8:53 AM, Gregory Szorc <gsz...@mozilla.com> wrote:
> > > > On Aug 27, 2016, at 07:09, Kan-Ru Chen <kc...@mozilla.com> wrote: > > > >> On Sat, Aug 27, 2016, at 11:35 AM, Gregory Szorc wrote: > >>> On Fri, Aug 26, 2016 at 8:27 PM, Steve Fink <sf...@mozilla.com> wrote: > >>> > >>>> On 08/26/2016 08:16 PM, Gregory Szorc wrote: > >>>> > >>>> > >>>>> On Aug 26, 2016, at 19:54, Kan-Ru Chen <kc...@mozilla.com> wrote: > >>>>> > >>>>> Hello, > >>>>> > >>>>> In Bug 1297276 I landed a patch to rename mozilla/unused.h to > >>>>> mozilla/Unused.h to make it more consistent with our other MFBT > headers. > >>>>> Normally rename a header shouldn't cause too much trouble, however > this > >>>>> rename is only changing the case so you might experience some > problems > >>>>> on case insensitive filesystem. > >>>>> > >>>>> As pointed out by Tim in > >>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1297276#c19 if you use > >>>>> |git pull -f| to update local copy of gecko and git refuse to, you > can > >>>>> rm mfbt/unused.* first to make git happy. > >>>> Case only renames cause a lot of havoc. Somewhere there is an open > bug to > >>>> implement a server side hook to reject them. > >>>> > >>>> What I'm trying to say is thank you for reminding me to implement the > >>>> hook. And congratulations on likely being the last person to perform > a case > >>>> only rename on the repo. > >>> > >>> For the record, is there a better way to accomplish this? In this > >>> particular case, it seems like we really do want the rename. Would it > work > >>> better to do two commits, one from mozilla/unused.h -> > >>> mozilla/LucyTheDancingFerret.h, then another doing > >>> mozilla/LucyTheDancingFerret.h -> mozilla/Unused.h? > >> > >> > >> No. Because if you perform an update/checkout across the rename, you may > >> encounter problems. This can happen when bisecting, for example. > >> > >> Now, this isn't as bad as a case folding collision where you have both > >> unused.h and Unused.h: some filesystems just flat out refuse that. > >> > >> At least with a rename your VCS has the opportunity to delete the old > >> file > >> before creating the different cased one. But even then, build systems > and > >> other tools can be confused because some filesystems are case > insensitive > >> but case preserving and tools may make inappropriate decisions about > >> whether "unused.h" and "Unused.h" are the same file. There's a lot that > >> can > >> go wrong. So the whole scenario is best avoided. > > > > So given the fact people can make mistakes, what would you suggest if > > one really wants to fix the filename? I hope the hook will display such > > suggestions instead of just say "don't do this." > > The hook will likely link to a web page explaining in more detail what to > do. > > While there is always an option to override hooks, sadly in this case I > don't think we'll allow it too often. This also means - rather > unfortunately - that if someone makes a casing mistake it will forever be > enshrined in the repo. I suppose we can deal with these issues as they come up, but I don't think it's at all obvious that build/version control issues required to make the transition work outweigh the engineering ergonomics issues of having consistency in the code, so consider this a note that there's not really consensus that leaving these mistakes enshrined forever is good policy. -Ekr > The best way to avoid this is linting tests and code review. With the > autoland repo, we'll soon drop bad commits instead of backing them out. So > if something in automation finds case problems, the commit effectively > never existed and there won't be a problem (beyond automation). > > One could whip up a filename auditing TaskCluster task pretty easily. > Essentially copy https://hg.mozilla.org/mozilla-central/rev/f5e13a9a2e36. > I'll happily review it. > > Also, I'm sorry you had to fall into this mostly unmarked trap. Others > have likely done similar things unknowingly. You did the right thing and > sent an email to notify people. That also happened to remind me that we > need to fix things :) Please don't feel bad about what you did: it wasn't > your fault. Blame the lack of tools that didn't catch this. And blame me > for having a bug (assigned to me even!) to implement one of those tools. > > > > >> The bug tracking the server hook is 797962 btw. > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform