On Thu, Jul 14, 2011 at 1:38 PM, Carlos Martín Nieto <cmn@xxxxxxxx> wrote: > On Thu, 2011-07-14 at 16:45 +0530, J. Bakshi wrote: >> On Thu, 14 Jul 2011 13:00:02 +0200 >> Carlos Martín Nieto <cmn@xxxxxxxx> wrote: >> >> > On Thu, 2011-07-14 at 16:18 +0530, J. Bakshi wrote: >> > > On Thu, 14 Jul 2011 12:38:59 +0200 >> > > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: >> > > >> > > > On Thu, Jul 14, 2011 at 12:36, J. Bakshi <joydeep@xxxxxxxxxxxxxxx> >> > > wrote: >> > > > >> > > > > How can I force git to use the username as define >> > > at /home/git/PASSWD as the author name for git commit ? >> > > > >> > > > Edit the global bashrc to have: >> > > > >> > > > export GIT_AUTHOR_NAME=$(cat ~/PASSWD) >> > > > >> > > > ? >> > > >> > > Thanks. >> > > >> > > [1] will it work with file generated by htpasswd ? as that file is >> > > actually created by same (/home/git/PASSWD) >> > >> > Not directly, if it only has one line, then $(cat ~/PASSWD | cut -d ':' >> > -f 1) should work, but I haven't tested it. >> > >> > > >> > > [2] And the commit is over http, So is it effective to set the value >> > > by .bashrc ? >> > >> > You are misunderstanding either how git works or the nomenclature. The >> > commits all happen locally and need no authentication whatsoever (and >> > usually you're expected to use a real name and email address). When you >> > need to authenticate is when yuou push your changes somewhere (a central >> > repo, for example). This is where the ~/.netrc file comes into play, as >> > I mentioned in the reply to your other mail. >> > >> Exactly, when we need to push we are asked about authentication. I >> like to configure the central git server in a way so that the >> user-name as in authentication, be set as author name by the git >> server itself. actually it is how I configured svn server over http. >> So comparing to that I am trying to achieve the same. Say your >> user-name is there at htpasswd file as Carlos, so when you >> authenticate by Carlos to push , the author-name will automatically >> become as Carlos. No way to customize that with specific username. >> That's the idea. > > That's not how it works. It may even be possible to rewrite the commits > in the post-receive hook in a way that most stuff doesn't break > horribly, this would be rewriting history behind the users' backs, and > that only brings problems. This will (as you point out) only lead to problems, because rewriting the history at commit-time will have the effect that a push leaves you in the situation where you end up with a different history on the workstation and the server. All branches off the pushed branch will become a hell, and a clusterfck of darkness and terror will take over. > The way to set the author name and mail in a standard way, be it > user-wide or per-repo. You can write up some simple instructions on how > to do it. > > git config user.name "Max Smith" > git config user.mail max.smith@xxxxxxxxxxx > > and if the config should be valid for every repo, use --global flag. > There is more information in the manual page. > > You could then add a check in the post-receive hook to reject pushes > with invalid author names, if you feel it's worth it. > Denying a push is much more elegant than rewriting, but (as I pointed out in my other mail) also has a lot of problems with distributed work-flows. And let's face it when changing from SVN to Git, the distributed nature is about the last feature that you'd want to give up ;) > Taking a step back, why is this even an issue, though? If you don't > trust your developers to set their name and email correctly, why do you > trust them to write code? If it's company policy for people to be > referred to by their usernames rather than their given names, why not > tell them to set it to that[0]? It seems like you are trying to solve a > social issue with a technological measure that works at a different > level. Very well said, I completely agree! -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html