TortoiseGit не показывает наложения значков

133

Пользуюсь уже TortoiseGitпочти год. У меня он работал очень хорошо до вчерашнего дня, когда я столкнулся с проблемой. Я удалял папку, когда проводник Windows как бы зависал у меня (он зависал на «обнаружении элементов») более часа, затем я перезапустил систему.

С тех пор (и я не уверен, имеет ли описанный инцидент какое-либо отношение к этому) TortoiseGit перестал показывать наложения значков в проводнике. Однако поведение не похоже на поведение других, задававших здесь вопросы, потому что:

В open fileдиалоге всех программ значки еще есть (!).

Вот список вещей, которые я пробовал:

  1. Я изменил настройки TortoiseGit, чтобы отображать разные значки.
  2. Переустановите TortoiseGit (удалите, перезапустите, установите, перезапустите).
  3. Я удалил все наложения значков, начиная с "Tortoise" в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \ShellIconOverlayIdentifiers, затем удалил TortoiseGit, перезагрузил компьютер и переустановил TortoiseGit.

Редактировать:

Я попытался создать нового пользователя на своем компьютере, и у нового пользователя наложения значков работают нормально. Я сейчас еще больше запутался.

Пока ничего не помогло. Любые идеи?

5xum
источник
У вас установлен TortoiseSVN?
mozgow 08
@mozgow Нет, только TortoiseGit
5xum 08
5
Со мной случилось то же самое. Моя произошла из-за того, что я установил "Dropbox" на свой компьютер. Dropbox также использует IconOverlays, и они занимают в списке более высокие позиции, чем TortoiseGit. А так как у вас может быть только 15, вы можете не видеть их по этой причине. Мои начинаются в списке с 19 по 28, поэтому я их не видел. Воспользуйтесь предложением Джуанга ниже, чтобы узнать, какое место в списке занимают ваши оверлеи.
Чад
@MrTux Мне было бы любопытно узнать, как вы относитесь к вопросу, заданному 6 августа 2014 г., как дубликату вопроса, заданного 11 января 2017 г. (то есть более 2 лет спустя ).
5xum

Ответы:

130

У меня была та же проблема, и я заставил ее работать, следуя инструкциям на форуме. Я сделал следующее (скопировал):

Нахожу решение :) Обертывание ""всеми черепаховыми ключами под HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

на 1TortoiseNormalи т.д ... Я понял проблему, видя, как Dropbox, и он работал regedit, был знак ( "") для Dropbox, но не черепаха. Итак, я добавил знаки, закрыл explorer.exe и надеюсь, что все прошло хорошо :)

Итак, я переименовал ключ 1TortoiseNormalв "1TortoiseNormal"и т. Д. Я понятия не имею, почему, заключив его в двойные кавычки, он снова работает.

Оригинального форума больше нет, но хорошее резюме содержится в комментариях.

Чи Чан
источник
33
Наверное, дело в сортировке. Символ двойных кавычек является одним из первых печатаемых символов, поэтому «DropboxExt1» следует перед 1TortoiseNormal, а «1TortoiseNormal» - перед «DropboxExt1». Я также попытался удалить двойные кавычки с клавиш Dropbox, и это сработало.
user34814
5
Узнал кое-что из записей в скайпе. Вместо того, чтобы заключать его в "" (двойные кавычки), просто добавьте пробел в начале записей. Таким образом, записи будут иметь вид <space-char> 1TortoiseNormal и т.д ... Это, наконец, вопрос сортировки :) кажется.
Pratham
5
У меня тоже была такая же проблема после установки Dropbox. Я нашел причину / обходной путь в этом блоге ясным, однако после переименования ключей черепахи они, похоже, не прибегали к верхней части списка .. Мне потребовалось некоторое время, чтобы понять, что у ключей Dropbox есть место спереди .. поэтому я переименовал черепахи в <space> 1TortoiseNormal и т. д. БЛОГ: blog.garethjmsaunders.co.uk/2015/03/22/…
user1420372 07
10
@CodyStott Оказывается, сейчас MS делает то же самое ... Значки OneDrive тоже начинаются с пробела ... Через 10 лет, когда все компании поймут этот трюк, все имена ключей будут начинаться с десятков пробелов ...: p
Stijn de Witt
30
ОБНОВЛЕНИЕ: Dropbox теперь также добавляет 3 пробела впереди ... MS, пожалуйста, обратите внимание (ну, вы уже это сделали, поскольку OneDrive использует этот трюк) и примите меры . Это полный отстой. А что там с иконкой максимум 15/11? Это 2017 год?!? Мне не нужен еще один капитальный ремонт пользовательского интерфейса ... Мне нужно что-то вроде этого, чтобы исправить менее чем за два десятилетия!
Stijn de Witt
102

Windows разрешает до 11 идентификаторов наложения значков, расположенных в алфавитно-цифровом порядке - если их больше 11, эти значки отображаться не будут.

Вы можете запустить следующую команду в командной строке DOS:

regedit /e c:\icons.txt HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

Затем откройте файл C:\icons.txt. Пропустите первые две строки, и если 1TortoiseNormalи другие *Tortoise*значения не входят в число 11 верхних значений, их значки не будут отображаться. Решение, предоставляемое @Chi Chan, - это просто простой способ повысить 1TortoiseNormalрейтинг при упорядочивании среди всех оверлеев, вы также можете переименовать значения, добавив пробелы перед 1TortoiseNormal, т. Е.

" 1TortoiseNormal"

чтобы повысить их рейтинг.

обновление: для Windows 8 ограничение на количество наложенных значков составляет 15.

Dzhuang
источник
35
РЖУНИМАГУ. Итак, я только что обновился до Windows 10, и мои значки TortoiseGit отсутствовали, поэтому я поискал и нашел эту ветку ... Оказывается, Microsoft, вероятно, также читала эту ветку, потому что значки OneDrive по умолчанию начинаются с пробела !! Как глупо со стороны Microsoft, что они прибегли к этому ... вместо того, чтобы просто создать экран, который позволяет нам настраивать порядок / приоритет аннотаций значков из настроек Windows.
Stijn de Witt,
20
@StijndeWitt GoogleDrive и TortoiseSVN / Git теперь, похоже, повысили ставку и добавили 2 пробела. Мы официально
участвуем
15
@ icc97 LOL @ 'космическая гонка'. Но DropBox на шаг впереди этих любителей ... они добавляют 3 пробела: [....\ DropboxExt01](редактировать: SO, кажется, сворачивает их в 1 ...)
Stijn de Witt
8
НОТА!! Перезапустите проводник Windows, чтобы появились значки. Нажмите Ctrl + Shift + Esc и перезапустите «Проводник Windows» (при необходимости перезагрузите компьютер)
PhillipPDX
7
Я только что прокомментировал выше, но хотел добавить здесь, что все крупные облачные провайдеры (onedrive, dropbox, google drive) теперь ДИНАМИЧЕСКИ читают список и АВТОМАТИЧЕСКИ АДАПТИРУЮТ и вводят пробелы, чтобы «выиграть» войну .... до следующего. обновляет и делает то же самое. У меня теперь буквально все по крайней мере ПЯТЬ ведущих пробелов !! Кроме того, это 15 от Vista и новее.
Коллин
40

Шаги решения Windows 10;

  1. Открыть regedit

Дорожка :

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIconOverlayIdentifiers

  1. Удалите / удалите все ключи SkyDrive / OneDrive. Вам может потребоваться стать владельцем ключей один за другим и предоставить пользователю полный контроль, если вы получаете сообщение об ошибке при попытке удалить ключи.

  2. Нажмите Ctrl + Shift + Esc и перезапустите «Проводник Windows» (при необходимости перезагрузите компьютер).

  3. Все значки наложения git / svn теперь видны!

replicantspy
источник
Это работает для меня. Кажется, есть ограничение на количество наложений значков, разрешенных в проводнике Windows.
Yodacheese
6
По какой-то причине я не мог удалить ключи OneDrive. Я просто добавил три пробела в начало клавиш Tortoise, перезагрузился, и он снова заработал.
NickH
1
OneDrive возвращает ключи при следующем повторном входе в систему.
Майк Лоури
2
Вместо удаления существующих ключей вы можете просто добавить два (или более) пробела перед всеми ключами Tortoise . Будет такой же эффект - и вы сможете присоединиться к космической гонке!
Corpus Gigantus
28

Прежде чем сходить с ума, просто попробуйте перезагрузиться! У меня это сработало;)

Ян Хеттих
источник
8
Честно говоря, вы действительно думаете, что я этого не пробовал? Фактически, я написал, что перезапустил свой компьютер на шаге 2.
5xum
14
Голосование "против" необоснованно. Мой ответ был для тех, кто зашел на эту страницу, как и я, когда я столкнулся с проблемой. Я, должно быть, потратил полчаса, пытаясь понять, в чем проблема, прежде чем просто перезагрузить свой компьютер. Я понимаю, что это не сработало для вас, но это может сработать для других.
Ян Хеттих
3
Сработало для меня ... Определенно стоит войти в контрольный список в качестве первого шага, прежде чем пытаться более сложные решения.
Тони О'Хаган
4
Мне это тоже помогло. Я знал, что наложения значков были привязаны к explorerпроцессу, и с TortoiseSVN можно было просто убить и перезапустить explorerпроцесс (не активное окно, а главное), чтобы избежать перезапуска. Я сделал то же самое для TortoiseGit, но этого было недостаточно. Помогла перезагрузка.
Slav
1
Я прочитал все ответы, включая этот, а затем решил просто перезапустить проводник Windows (я использовал подход Ctrl + Shift + Asc-then-restart-process, упомянутый в ответе @ replicantspy ). Это сработало для меня! Итак, +1 для этого ответа вполне справедлив. :) Спасибо!
Луис Виейра
16

Просто добавьте один пробел (или несколько, если необходимо) к параметрам Имя черепахи в этом дополнении regedit:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

например:

"1TortoiseNormal"

Должно измениться на:

" 1TortoiseNormal"

после системных rebootиконок отображается правильно.

Амир Хоссейн Гасеми
источник
4

Сначала я установил TortoiseSVN (1.9.5) и msysgit (2.11.0) на свой 64-разрядный компьютер с Windows 10. Значки TortoiseSVN отображаются нормально.

Когда я установил TortoiseGit (2.3.0.0) после этих двух, значки не отображались.

Я проверил, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiersи все выглядело нормально. Иконки черепах попали в топ-10.

То, что я исправлял, было поднято в проблеме TortoiseGit № 692 на GitLab :

  • открыто regedit.exe
    • Перейти к HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
    • Добавьте новое строковое значение «Максимальное количество кешированных значков» со значением «2000».

закрытый / перезапущенный проводник и отображение значков!

icc97
источник
1
Я считаю, что это самое простое, быстрое и лучшее решение для меня (Windows 10).
timbo
3

У меня была такая же проблема сегодня после удаления TortoiseSVN. Я перезагрузился, и все равно не повезло, поэтому я просто зашел в панель управления, удалил программу и в элементе TortoiseGit выбрал «Восстановить», и все вернулось к норме. Я подозреваю, что все приложения Tortoise имеют общие ключи реестра или что-то в этом роде.

Ричард Эдвардс
источник
3

У меня также были значки оболочки TortoiseGIT, которые внезапно перестали отображаться, я точно не помню, что к этому привело, но я нашел это и попытался изменить реестр, изменив 1TortioiseNormal на «1TortioiseNormal» и так далее. Вероятно, это было бы хорошо, несмотря ни на что, но наложения значков все еще не работали.

Я слишком занят, чтобы дать общий ответ «перезагрузить компьютер», и это говорит мне, что «необходимо перезапустить некоторый процесс обслуживания, но вы никогда не сможете его найти, поэтому просто перезапустите». Неа.

Я также использую TortoiseSVN, и эти наложения значков все еще у меня работали. Я заглянул на вкладку «Процессы» диспетчера задач и увидел, что у меня запущено что-то под названием TSVNCache.exe. Никаких признаков чего-либо подобного для git, поэтому по прихоти я перешел на вкладку приложений и нажал «Новая задача», ввел TGITCache.exe и, конечно же, этот процесс запустился. Оттуда вернитесь к процессам, убейте explorer.exe, затем вернитесь к приложениям -> New Task снова и запустите explorer.exe.

Это сработало для меня дважды, когда мои наложения значков TortoiseGIT прекратили работу, так что, возможно, это сработает для кого-то другого.

arudlang
источник
2

Для меня сработало удаление Google Диска со своего компьютера. Пока не знаю почему.

Дариен Пардинас
источник
См. Мои комментарии выше. Существует жестко запрограммированное ограничение в 15 оверлеев, и Google Диск использует несколько, как Onedrive, Dropbox и другие. Torroise - один из худших, кто использует как 10 сам по себе, не оставляя почти ничего ни для чего другого. Удалив Google Диск, вы просто удалили его оверлейные ключи reg, оставив достаточно «свободных» из 15, чтобы наконец увидеть значки черепахи.
Коллин
2

Я согласен с Чи Чаном и хочу добавить это в качестве дополнительного ответа.

Это значки Dropbox Explorer. Вот сценарий реестра для их удаления. Сохраните его где-нибудь, потому что они вернутся!

Обратите внимание, что значения тоже время от времени меняются. В настоящее время у них есть 3 пробела перед "DropboxExtXX", раньше у них был только один.

Удалить Dropbox Explorer Icons.reg

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt01]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt02]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt03]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt04]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt05]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt06]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt07]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt08]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt09]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt10]
bytecode77
источник
1

Проблема с ведущими пробелами в том, что каждый раз, когда вы перезагружаетесь, Dropbox добавляет еще одно пространство в свои реестры и всегда будет на шаг впереди вас.

Поэтому я запланировал выполнение сценария Python, найденного в этом посте (автор Christoph Zwerschke), при каждой загрузке компьютера. После этого вам также необходимо перезапустить проводник.

.Bat будет выглядеть так:

python iconOverlayFixer.py
taskkill /f /im explorer.exe 
start explorer.exe  

И скрипт на Python:

#/usr/bin/python3

import os
import winreg as reg

# names of all overlay icons that shall be boosted:

boost = """
    Tortoise1Normal
    Tortoise2Modified
    Tortoise3Conflict
    Tortoise4Locked
    Tortoise5ReadOnly
    Tortoise6Deleted
    Tortoise7Added
    Tortoise8Ignored
    Tortoise9Unversioned
"""

boost = set(boost.split())

with reg.OpenKey(reg.HKEY_LOCAL_MACHINE,
        r'SOFTWARE\Microsoft\Windows\CurrentVersion'
        r'\Explorer\ShellIconOverlayIdentifiers') as base:

    names = set()
    renames = []
    i = 0
    while True:
        try:
            name = reg.EnumKey(base, i)
        except OSError:
            break
        core = name.strip()
        if core in names:
            print('Delete', repr(core))
            reg.DeleteKey(base, name)
        else:
            names.add(core)
            if core in boost:
                core = ' ' + core
            if core != name:
                renames.append((name, core))
        i += 1

    if renames:
        for old_name, new_name in renames:
            print('Rename', repr(old_name), 'to', repr(new_name))
            value = reg.QueryValue(base, old_name)
            reg.CreateKey(base, new_name)
            reg.SetValue(base, new_name, reg.REG_SZ, value)
            reg.DeleteKey(base, old_name)
    else:
        print('Nothing to rename')
mathiasfk
источник
1

В Windows 10 у меня работает

  1. удаление TortoiseGit
  2. чистка папок и регистрация
  3. установка его еще раз
  4. перезагрузка компьютера
  5. делать случайную фиксацию, даже не видя красного значка
Римский
источник