[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Not all overlays appear on Windows 7 with TSVN 1.6.7+

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Fri, 12 Mar 2010 15:20:05 +0100

On Fri, Mar 12, 2010 at 14:16, Adrian Buehlmann <adrian_at_cadifra.com> wrote:
> On 11.03.2010 20:02, Stefan Küng wrote:
>> On 11.03.2010 01:06, Adrian Buehlmann wrote:
>>> On 10.03.2010 20:08, Valik wrote:
>>>> On Mar 9, 3:00 pm, Stefan Küng<tortoise..._at_gmail.com>  wrote:
>>>>> I've increased the limit.
>>>>> Try the next nightly build.
>>>>>
>>>>> Stefan
>>>>
>>>> The ignored icon now works, of course.  I still don't understand why
>>>> you didn't increase the limit to 12.  You're basically saying Windows
>>>> 7 can never show the unversioned overlay.  That still doesn't add up:
>>>>   * 9 TSVN (registered)
>>>>   * 3 Windows (registered)
>>>>   * 2 hidden (Shortcut, UAC shield)
>>>>   * 1 reserved due to compatibility (According to your previous
>>>> comment)
>>>>
>>>> That's still just 15 which the TSVN documentation claims is the
>>>> maximum.
>>>
>>> I can confirm that the unversioned overlay still doesn't work with
>>> TortoiseOverlays 1.0.14 on Windows 7 (I tested on Ultimate x64). I
>>> shamelessly took the merge modules of TortoiseOverlays 1.0.14 for the
>>> stable branch of TortoiseHg [1] (this will be released with TortoiseHg
>>> 1.0.1, which is due on April 1st). Current TortoiseHg 1.0 [2] ships with
>>> TortoiseOverlays 1.0.13 (thanks again to Stefan for the nice GUID fix in
>>> the TortoiseOverlays 1.0.13 merge modules!).
>>
>> Try the 1.0.15 version.
>> The next nightly build of TSVN will use that version and it should then
>> show all overlays.
>
> Thanks.
>
> I tried that (I built our TortoiseHg installer using 1.0.15 and tested
> that). But, no, it doesn't. Unfortunately.
>
> When using TortoiseOverlays (TO) 1.0.15 on a clean install of Win 7
> Ultimate x64 or Vista x64 Ultimate SP2, the unversioned handler as
> installed by TO is not initialized for 64-bit processes. 32-bit
> processes on both of these platforms show the unversioned icon (Question
> mark) fine.

Autsch. Now I remember. That's why 1.6.5 had problems with the overlays!
Forget version 1.0.15 - I'll remove that once I get home.
Go back to version 1.0.14.

> Regedit lists these entries in that order, so I asked myself if it could
> be a problem that the TortoiseUnversioned handler is the last one in the
> list. Most interestingly, the MS Windows preinstalled entries
> (EnhancedStorageShell, Offline Files and SharingPrivate) happen to
> appear *before* the Tortoise entries, due to the alphabetic sorting.
>
> So I tested editing the registry be renaming the Tortoise entries to
> insert a "0" (zero char) before the "Tortoise", which lead to the
> following entries in regedit (in that order):
>
> 0TortoiseAdded        {C5994566-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseConflict     {C5994562-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseDeleted      {C5994565-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseIgnored      {C5994567-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseLocked       {C5994563-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseModified     {C5994561-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseNormal       {C5994560-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseReadOnly     {C5994564-53D9-4125-87C9-F193FC689CB2}
> 0TortoiseUnversioned  {C5994568-53D9-4125-87C9-F193FC689CB2}
> EnhancedStorageShell  {D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}
> Offline Files         {4E77131D-3629-431c-9818-C5679DC83E81}
> SharingPrivate        {08244EE6-92F0-47f2-9FC9-929BAA2E7235}
>
> Guess what: after logoff/login, the unversioned icon worked in 64-bit
> processes!
>
> So, I bet (unproven claims):
>
> (1) The ordering of the entries in
> HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
> is relevant

Nope. At least not on XP and Vista.
There, the order in which the RegEnumKeys() returns the keys is
relevant, and that API returns there the keys in the order in which
they were created. Renaming them won't do anything.

> (2) The entries are loaded in alphabetic order

No again.

> (3) Entries that exceed a limit of entries (whatever that is) are ignored

Now that's true.

> On Windows 7 x86 the unversioned overlay -- as installed by
> TortoiseOverlays x86 version 1.0.15 -- works fine, since it installs its
> keys under
> HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
> using the following
> names (complete listing of the entries found below that registry key):
>
> 1TortoiseNormal
> 2TortoiseModified
> 3TortoiseConflict
> 4TortoiseLocked
> 5TortoiseReadOnly
> 6TortoiseDeleted
> 7TortoiseAdded
> 8TortoiseIgnored
> 9TortoiseUnversioned
> EnhancedStorageShell
> Offline Files
> SharingPrivate
>
> So there, it seems we have an ordering that happens to be favorable for us.
>
> Is there any specific reason for using different names in
> TortoiseOverlays x64 (compared to the ones used in TortoiseOverlays x86) ?

I'll check.

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2458715
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-03-12 15:20:27 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.