2010-01-13 5 views
2

J'ai réussi à obtenir mon index dans l'état où certains fichiers ne sont pas suivis comme prévu.git ne détecte pas les changements dans certains fichiers

À titre d'exemple, j'ai size.h et test.h non modifiée dans le répertoire de travail:

$ git-ls-files -st size.h test.h 
H 100644 de2c741b07d86f92bdd660626848072cb2bf510f 0  size.h 
H 100644 8bb24bc7483ffcfc0fc1a3761dc63e86a1b3e003 0  test.h 
$ git status 
# On branch master 
nothing to commit (working directory clean) 

Alors je fais des changements au hasard pour les deux fichiers:

$ fortune >> size.h 
$ fortune >> test.h 

Pour une taille de raison .h n'est pas modifié (bien que le fichier soit clairement). En même temps test.h est modifié comme prévu:

$ git status 
# On branch master 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: test.h 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

Après avoir retiré l'index et la réinitialisation de tout est de retour à la normale:

$ rm .git/index 
$ git reset 
Unstaged changes after reset: 
M  size.h 
M  test.h 
$ git status 
# On branch master 
# Changed but not updated: 
# (use "git add <file>..." to update what will be committed) 
# (use "git checkout -- <file>..." to discard changes in working directory) 
# 
#  modified: size.h 
#  modified: test.h 
# 
no changes added to commit (use "git add" and/or "git commit -a") 

Je travaille avec git sur CentOS et 1.6.6 msysgit 1.6.5.1 sur Windows sur Samba sur ce dépôt avant l'apparition de l'étrangeté. Je n'ai pas été capable de reproduire cela à partir d'un clone frais. Mon sentiment est que c'est un bug dans msysgit, peut-être en combinaison avec Samba. Des idées?

Répondre

3

Le seul bug que j'ai vu qui affiche également le mauvais statut pour un Git sur samba est le GitX ticket 147.
Il s'agit d'une situation opposée (l'état git montre la modification pour un fichier qui n'a pas été modifié), mais suggère que certains éléments du fichier (taille? Date? Droits?) Ne sont pas correctement transmis via le partage samba.

Cela m'a fait me demander si c'était un problème d'horloge sur l'ordinateur. Régler l'heure sur le serveur à -1h n'aide pas.
BTW, gitx et git-gui fonctionnent parfaitement via sshfs sur les deux mêmes machines (mais, même si pratique, sshfs n'est pas aussi rapide que samba sur un réseau local).

Locking issue est connu pour se produire lors du clonage d'un repo sur un partage samba.

2

Je ressentais ce problème avec la version 1.7.9.msysgit.0

Le problème était que j'avais déplacé le projet dans un nouveau répertoire, et atleast un de mes sous-modules avait un chemin absolu pour le worktree. Une fois que j'ai supprimé les sous-dossiers, supprimé leurs entrées dans .git/modules, et les réinitialisé et mis à jour, le problème est parti. C'était bizarre parce que git n'a donné absolument aucun message d'erreur ou d'avertissement (que j'ai pu voir) en vérifiant le statut du projet, seulement quand j'ai fait une mise à jour de sous-module git - init indiquerait-il l'erreur qu'il couldn ' t arriver au chemin qu'il voulait.

Questions connexes