Since we are talking about logging, another thing you must do is to be transparent with the user in your user interface.
A lot of things change during development. One day you need a field, another day that field may be completely different. For those cases, use one version to add the new field and another to remove.
If Gerrit is such a mistake, what can you use instead? Git Flow!
When I said "Scala is garbage" or "Gerrit is a mistake", it wasn't "l33th4x0r" who said that; it was Julio Biason. 'Cause I do believe that putting your face to be slapped is the way we grow.
I hate calling software "a mistake", but I can't find any other way to describe Gerrit. You may see people using Gerrit 'cause Google uses it. The thing is: Google misunderstood what Git actually is.
Depending on where you look, "Nothing more permanent than a temporary solution" is either an old Russian proverb or a quote by Milton Friedman. Thing is, temporary solutions, unless you think about the future to fix them, will become permanent.
You may think "Alright, I have a list of things I don't know, but I have no time to learn those things!" You do have time.
You may feel "I'm not start enough to talk about this" or "This must be so stupid I shouldn't talk about it". Don't.
An "hero project" is a project/spec change that you personally think will solve a group of problems in your project. It could be a different architecture, a new framework or even a new language.
Someone that suffers from Hero Syndrome will claim that things won't work unless they are carefully watching over everything.