On Mon, Aug 20, 2012 at 6:22 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Sitaram Chamarty <sitar...@gmail.com> writes:
>> On Mon, Aug 20, 2012 at 10:35 PM, Junio C Hamano <gits...@pobox.com> wrote:
>>> John Arthorne <arthorne.ecli...@gmail.com> writes:
>>>> For all the details see this bugzilla, particularly comment #59 where we
>>>> finally narrowed this down:
>>> What does "at the system level" in your "does *not* work at the
>>> system level." exactly mean?
>> "git config --system receive.denynonfastforwards true" is not honored.
>> At all. (And I checked there was nothing overriding it).
>> "--global" does work (is honored).
>> Tested on 1.7.11
> Thanks, and interesting.
> Does anybody recall if this is something we did on purpose? After
> eyeballing the callchain starting from cmd_receive_pack() down to
> receive_pack_config(), nothing obvious jumps at me.
> Could this be caused by a chrooted environment not having
> /etc/gitconfig (now I am just speculating)?
> A quick "strace -f -o /tmp/tr git push ../neigh" seems to indicate
> that at least access() is called on "/etc/gitconfig" as I expect,
> which makes me think that near the beginning of git_config_early(),
> we would read from /etc/gitconfig if the file existed (I do not
> install any distro "git", so there is no /etc/gitconfig on my box).
Seems to work for me. Force push was denied when
receive.denyNonFastForwards was set to true in system-level gitconfig.
Tested with git installed in my home directory, so my system-level
gitconfig was at $HOME/etc/gitconfig.
Sitaram and John, are you sure you modified the correct file? Also be
sure you're using the git-receive-pack that expects the system
gitconfig at the place that you think it is.
The system-level gitconfig is hard-coded in the git binary and may not
always be at /etc/gitconfig. It is usually set to be relative to the
installation directory "$prefix" in the Makefile. I don't think we
expose the path to the system-level gitconfig file anywhere in the ui.
One way to figure out where it should be is to use 'git config' to
edit it like this:
git config --system -e
Hopefully your editor exposes the path that it is editing even if you
don't have permission to modify it.
I'm thinking that the git-receive-pack binary that you guys used
expects the system gitconfig to be in a different location than the
one you modified.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html