On Mon, Aug 20, 2012 at 6:22 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Sitaram Chamarty <sitaramc@xxxxxxxxx> writes: > >> On Mon, Aug 20, 2012 at 10:35 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: >>> John Arthorne <arthorne.eclipse@xxxxxxxxx> writes: >>> >>>> For all the details see this bugzilla, particularly comment #59 where we >>>> finally narrowed this down: >>>> >>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=343150 >>> >>> 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). > > Puzzled. 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. -Brandon -- 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