Git 2 force commits but Git 1 doesn't

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We have some repositories we are hosting here using Apache's DAV module to handle remote connections.

The repositories are created using the following:

mkdir [reponame].git
cd [reponame].git
git --bare init
git update-server-info

Our Apache location directive is as follows:

<Location /[reponame].git>
        DAV on
        AuthType Basic
        AuthName "Git"
        AuthBasicProvider ldap
        AuthLDAPUrl [ldap server info]
        <RequireAny>
                require [ldap filter]
        </RequireAny>
</Location>

The repository config generates with the values in the core section below, and we add the receive and advice sections:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
[receive]
        denyNonFastForwards = true
        denyDeletes = true
[advice]
        pushFetchFirst = true

The odd behavior comes when we have git 1 vs git 2 clients attempting to push in changes on the same branch. Git 1 clients will prompt the user that they are out of date and need to pull. Git 2 clients don't and will force push and overwrite the head revision. This occurs with either Git 1 or Git 2 on the server.

We've tested this with the latest Git 2 client on Fedora 32 and Git 1 client on CentOS 7.8. The other oddity is that even when the Git 2 client does a pull to receive changes before making changes and pushing, when another user pulls the change, there is a message shown that a commit was forced.

What am I missing in the repository settings to prevent forced pushes from working and force users to pull before being able to push?

Thanks!

Michael Ward



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux