Context Menu Missing on WinXP

Asked by RobinP

I've installed Bazaar using the 2.1.0.2 windows installer, and included TortoiseBZR. I can see the icon in the tray, I can see processes called tbzrcachew.exe and tbzrcommandw.exe in the task manager, and files in my test repo created from the command line have shellicons, but I can't see any context menu for Bazaar.
I've tried running tbzrtrace.exe and then accessing the context menu but nothing comes out in the trace.

I'm running Windows XP Pro (32 bit). Not sure if this might have an impact, but my usual login does *not* have admin rights, I have to install Bazaar with a different account. I also have TortoiseSVN, TortoiseHg and TortoiseGit all installed (yes, DVCS evaluation phase is under way).

What I'm expecting is that in an empty folder I get a limited set of BZR commands in the Windows context menu, e.g. init, while in a folder inside a checkout I get more options.

Question information

Language:
English Edit question
Status:
Solved
For:
TortoiseBZR Edit question
Assignee:
No assignee Edit question
Solved by:
methane
Solved:
Last query:
Last reply:
Revision history for this message
methane (songofacandy) said :
#1

I have not heard such a problem.

Does your tbzrtrace report something while showing overlay icons?
Could you try following in command line? :
> cd "C:\Program Files\Bazaar"
> regsvr32 tbzrshellext_x86.dll

Revision history for this message
methane (songofacandy) said :
#2

Fix wrong status.

Revision history for this message
RobinP (pellatt) said :
#3

I exited the cache process from the tray, then refreshed in Windows Explorer in my BZR checkout, this gave me the following in the trace:

tbzrtrace output log opened at Mon Mar 22 18:15:19 2010
1404:Failed to TransactNamedPipe - 230
1404:Remote request has ERROR_BAD_PIPE - retrying...
1404:Starting cache process by executing: D:\Devel\Program Files\Bazaar\tbzrcachew.exe

I can register the DLL with my admin account, and indeed do see the context menu if I login with that account, but with my normal account I cannot register the DLL (error 0x80004005 which means "access denied"), and still cannot see the context menus even after registering the dll with the admin account and then rebooting.
So it looks like my suspicions were right in that it is probably a permissions problem, but I do not know enough about shell extensions to propose a solution. I did not have any problems with the other Tortoises, so maybe there is something they are doing that T-BZR installer is not, this should be easy to check I think.

Revision history for this message
methane (songofacandy) said :
#4

I've tested in normal user on Windows7 Home Premium and I can see context menu.
I'll try on Windows XP later.

Please tell me more information.
1. Is there "HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\TortoiseBazaar" ?

2. Are other Tortoises' context menus shown?

Revision history for this message
RobinP (pellatt) said :
#5

1. Yes the key exists - I can also see the other Tortoise handlers here.
2. Yes, the other Tortoise menus are shown, and I installed these also with my admin account, but can also access them with my normal account.

Note sure if it helps, but I also noticed that the following keys contain entries for the other Tortoises but not for Bazaar:
  HKEY_CLASSES_ROOT\Drive\shellex\ContextMenuHandlers
  HKEY_CLASSES_ROOT\InternetShortcut\shellex\ContextMenuHandlers
  HKEY_CURRENT_USER\Software
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shellex\ContextMenuHandlers
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\InternetShortcut\shellex\ContextMenuHandlers
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions
  HKEY_LOCAL_MACHINE\SOFTWARE
  HKEY_USERS\S-1-5-21-583907252-1454471165-725345543-24363\Software

Could it be that the shell extension is only installed for the admin user and not for all users? I don't think there was an option to select this like you see in some installers.

Revision history for this message
RobinP (pellatt) said :
#6

not answered yet ...

Revision history for this message
methane (songofacandy) said :
#7

Could you check that this registry key is exists or not and the value of key if exists?

HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Policies
                  Explorer
                     EnforceShellExtensionSecurity

If this key is set to 1, Windows uses only approved shell extensions.
TBZR doesn't set itself to approved list because I didn't know about this security policy.

Revision history for this message
methane (songofacandy) said :
#8
Revision history for this message
RobinP (pellatt) said :
#9

Well I didn't find that one, but could find it here:

HKEY_USERS\S-1-5-21-583907252-1454471165-725345543-24363\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

This might be because I have to run regedit using my admin account (with RunAs...).

You could be right though, as I can see entries for the other Tortoises in the key noted in that msdn article:
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved

I'll be happy to try out a new installer when it's ready.

Revision history for this message
Best methane (songofacandy) said :
#10

I've filed a bug.
Thank you for your report and survey.

Revision history for this message
RobinP (pellatt) said :
#11

OK, thx for the help, I look forward to the new version.

Revision history for this message
methane (songofacandy) said :
#12

I'll fix soon.
bzr-2.1.1 installer will be released this or next week if things go well.

Revision history for this message
RobinP (pellatt) said :
#13

Hey, just to confirm, I now have a shiny bazaar in my context menu, thanks for that. On with the evaluation ...