[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: Adrian Buehlmann <adrian_at_cadifra.com>
Date: Fri, 12 Mar 2010 16:11:41 +0100

On 12.03.2010 15:20, Stefan Küng wrote:
> 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.

I looked at the change in the code you did and I do think it is an
improvement.

>> 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.
>

Very very strange. That much lucky unrelated coincidence on my side?

I just tried the renaming trick on Vista Ultimate x64 SP2 as well.

After doing the renaming, the unversioned overlay starts appearing.

If I rename the entries back, the unversioned overlay is gone again.

The trick works repeatably.

Plus I've never seen a problem with the unversioned handler on x86
(which uses the different naming scheme as I explained it).

Everything pure luck?

>> (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.

Thanks a lot.

But if *your* claim is correct, then the name of the entries don't
matter (which I have very strong doubts about).

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2458736

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-03-12 16:27:16 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.