Git tirón no actualizar, inconsistentes repo?
Pregunta
Tengo un extraño problema con git configurado usando DAV en apache2.
Me va a proporcionar más detalles, si es necesario, pero aquí es una visión general de alto nivel del problema.
Tengo 3 clones de un repositorio:
- el pelado de empujar y tirar de
- uno en la máquina A
- uno en la máquina B
1 hago último cambio en la máquina A, y empujé todos mis cambios, e hice un tirón en ambos. El problema es que, por alguna razón, no veo mis últimos cambios después de tirar de la máquina B.
No hay ningún mensaje sobre estar por delante de distancia en cualquiera de las máquinas tampoco.
La parte extraña es:
- Si hago un "git log" en el repositorio desnudo, los últimos cambios de la máquina A estarán allí
- Si lo hago, otro clon del repositorio desnudo, los cambios no estará allí. Sólo será hasta los últimos cambios que la máquina B ve.
Es este un problema de configuración del servidor o un problema de git? He tenido este problema durante muchos meses.
impresiones git branch -a
:
Una máquina:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
máquina B:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
.git/config
para ambos:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = http://<url>/p/home.git
fetch = +refs/heads/*:refs/remotes/origin/*
Solución
Since you've confirmed my guess was right in the comments, I'll add this as an answer :) It sounds like the problem is the one described in this git FAQ:
There's a sample hook called post-update.sample in .git/hooks/ that you can rename to post-update in order to automatically run git update-server-info
after a push. This generates information needed by the dumb HTTP transport.