web-dev-qa-db-fra.com

Le signe modifié TortoiseGit (superposition d'icônes) ne se met pas à jour

J'ai fait un petit changement dans du code mais TortoiseGit le montre comme modifié (signe d'exclamation rouge) bien que j'aie commis, tiré, poussé, mais ça reste. Que dois-je faire ici? Je n'ai jamais vu ce problème auparavant.

66
Booksman

Je suppose que vous utilisez du tortue git? J'ai déjà eu le problème, parfois en appuyant sur F5 le corrige d'autres fois, il disparaît juste après que la tortue se resynchronise.

Voici un autre correctif possible lien .

La solution de contournement actuelle consiste à tuer TGitCache.exe avec le gestionnaire de tâches Windows.

108
Andy

Ce qui m'a aidé, c'est ce qui suit:

  1. Allez dans "Paramètres -> Superpositions d'icônes" Cochez sous "Cache d'état" l'option "aucun"
  2. Actualiser l'explorateur F5
  3. Revenez en arrière et modifiez l'option de cache sur "Par défaut"
24
neutcomp

Il y a une solution de contournement que j'ai essayée:

Renommez le répertoire du référentiel, puis changez-le et vous êtes prêt à partir!

Par exemple: MyComplexProject peut être changé en MyComplexProject1 puis revenir à MyComplexProject.

12
meJustAndrew

Kill TGitCache.exe fonctionne pour moi. .... Je mets cela comme une réponse parce que je n'ai pas assez de points de réputation pour l'ajouter en tant que commentaire. Mais je voulais aider à répéter qu'il s'agit d'une solution de travail.

11
Mike Gibson

Outre ce que @Andy a mentionné, vous pouvez accélérer le travail des superpositions en limitant les dossiers qu'il doit surveiller.

Clic droit -> TortoiseGit -> Paramètres -> Superpositions d'icônes

Entrez ici les chemins d'inclusion et d'exclusion. Je pointe généralement explicitement vers mes repos/copies de travail:

enter image description here

8
manojlds

Lorsque les icônes ne sont pas mises à jour, vous pouvez rapidement tuer le cache de superposition d'icônes à l'aide de la commande "Exécuter" suivante:

taskkill /f /im tgitcache.exe

Le processus de cache doit redémarrer automatiquement. Vous pouvez même en faire un raccourci sur le bureau si vous remarquez que cela se produit fréquemment.

4
Simon East

Veuillez vérifier votre chemin pour voir s'il correspond au cas où.

Some/Dir/SomeFile.ext

est la même pour les fenêtres que

some/DIR/someFILE.EXT

Mais pour Git, ils sont dans des endroits différents. Ceci est résolu en remontant par le haut avec le boîtier approprié.

4
Adam Dymitruk

J'ai eu le même problème sous Windows.

Tuer TGitCache a fonctionné pendant quelques secondes, mais l'icône rouge est à nouveau apparue.

Il s'est avéré que le fichier a été renommé (la première lettre a été changée de majuscule en minuscule) localement mais n'a pas été modifiée dans Git. Windows n'est pas sensible à la casse mais Git l'est! Ainsi, la superposition d'icônes ne correspondait plus. J'ai découvert cela en supprimant le fichier spécifique et en sélectionnant "revenir" dans le menu contextuel de Turtoise Git. Dans la liste, deux fichiers sont apparus, l'un avec la première lettre en majuscule, l'autre en minuscule.

Enfin, renommer le fichier à partir du menu contextuel Git a résolu le problème pour moi.

2
Matthijs de Ridder

C'est un problème connu dans TortoiseGit. Il existe depuis des années et ne sera apparemment jamais réparé. Je ne sais pas si c'est parce que le développeur TortoiseGit ne veut pas ou ne peut pas le faire. (Je l'ai également signalé auparavant, mais je ne trouve plus le problème maintenant.)

Quoi qu'il en soit, voici ce que je fais pour le résoudre:

git gc --Prune=all --quiet

Il élague le référentiel Git, reconditionnant tous ces fichiers d'objet unique, réduisant le nombre de fichiers dans .git allant de plusieurs dizaines de milliers à moins de 20 ans, et améliorant probablement les performances globales des opérations Git.

Parfois, Git fait une version légère de cela seul après un commit, mais j'ai rarement vu cela se produire pendant des années d'utilisation quotidienne. Je le fais donc moi-même. C'est également une excellente action à considérer avant de faire une sauvegarde du système (voir ci-dessous).

Pour vous faciliter la tâche, j'ai créé un fichier batch git-gcall.cmd dans un chemin accessible qui appelle la commande ci-dessus. Je dois l'exécuter après pratiquement chaque commit et après 2 à 3 secondes, les icônes se mettent à jour. Aucun meurtre impliqué. Il suffit de réveiller TortoiseGit un peu plus difficile pour réellement observer le référentiel et mettre à jour son statut.


Voici un script PowerShell qui exécute cette commande dans un ensemble de répertoires configurés de manière récursive, si nécessaire, à utiliser avant de faire une sauvegarde. Il peut également être exécuté régulièrement, par exemple pendant la nuit, pour résoudre ce problème d'icônes obsolètes en arrière-plan.

gc-all-git.ps1:

Write-Host "Packing Git repositories where necessary..."

function Git-Gc($path)
{
    cd $path
    Get-ChildItem . -Recurse -Hidden .git | Foreach-Object {
        cd $_.FullName
        if ((Get-ChildItem objects -File -Recurse).Count -gt 50)
        {
            cd ../
            Write-Host $(Get-Location).Path
            git gc --Prune=all --quiet
        }
    }
}

Git-Gc C:\Source
Git-Gc C:\xampp\htdocs

Appelez-le avec le fichier batch d'accompagnement requis:

gc-all-git.cmd:

@echo off
cd /d "%~dp0"
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy unrestricted -File gc-all-git.ps1
exit /b %errorlevel%
1
ygoe

Je pense que ce problème s'est produit pour moi en raison d'applications en concurrence pour les superpositions d'icônes de limite Windows (je crois qu'il autorise un maximum de 15).

Voici ce que je devais faire pour résoudre ce problème:

  1. Ouvrez regedit et accédez au Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers clé.
  2. Réorganisez les sous-clés pour que les touches Tortoise * soient en haut en préfixant les espaces.
  3. Redémarrez l'Explorateur Windows à l'aide du Gestionnaire des tâches.

Voir aussi: TortoiseGit ne montrant pas les superpositions d'icônes

1
Dan Stevens

La chose qui a résolu ce problème pour nous était que nous avions déplacé nos dépôts Git vers un lecteur réseau mappé, changeant ainsi la lettre du lecteur.

Il semble que TortoiseGit doive être configuré pour surveiller les lecteurs réseau - ce n'est pas le comportement par défaut.

Donc, pour résoudre ce problème, vous devez:

  • Faites un clic droit sur un dossier repo
  • Choisissez "TortoiseGit"
  • Choisissez "Paramètres"
  • Choisissez "Superpositions d'icônes"
  • Cochez "Lecteurs réseau"

Travail accompli.

0
UKcentric

Aucune des autres options ici ne pourrait faire disparaître le problème. (Je n'ai pu identifier aucun fichier ayant changé de boîtier) J'étais assez confiant que tout a été archivé comme il se doit, donc j'ai juste supprimé mon dépôt et vérifié à nouvea. Poof, ça marche encore.

Si vous n'êtes pas aussi confiant (ou si vous ne voulez tout simplement pas le risquer, comme c'est le mieux), renommez votre dossier repo lcoally et vérifiez à nouveau votre repo, alors vous pouvez tirer un diff pour voir s'il manque quelque chose d'étrange/changé entre les deux dossiers de dépôt.

0
Thomas Mulder

Cela pourrait aider ... Ma lettre de lecteur était B: et les icônes de superposition ne se mettaient pas à jour. Je l'ai changé au-delà de C :, (j'ai utilisé M :) et il a commencé à fonctionner. On dirait que TGIT ne conduit pas en dessous de C:

0
Wireless