On Wed, Sep 16, 2009 at 2:08 PM, Rock Hymas <r...@fogcreek.com> wrote: > # HG changeset patch > # User Rock Hymas <r...@fogcreek.com> > # Date 1253127376 14400 > # Branch stable > # Node ID d5815506564302945d2263232d5be61608e63683 > # Parent 69a4647178107528dad3cdb8e18c7dccfe7f8840 > installer: Register 32 bit shell extensions 64 bit machines for use in 32 bit > shell processes
Great stuff. Unfortunately the format of the iss and vcproj files does not lend well to patch emails. Could you put these three patches (mercurialuser.ini, vcproj, and this one) into a repo I can pull from, or mail them as a bundle? > diff --git a/contrib/win32/mercurial.iss b/contrib/win32/mercurial.iss > --- a/contrib/win32/mercurial.iss > +++ b/contrib/win32/mercurial.iss > @@ -82,6 +82,7 @@ > Source: icons\thg_logo.ico; DestDir: {app} > Source: ..\misc\hgbook.pdf; DestDir: {app}/docs; Components: hgbook > Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShell.dll; > Check: not Is64BitInstallMode; Flags: ignoreversion restartreplace > uninsrestartdelete; Components: shell > +Source: ..\misc\ThgShellx86.dll; DestDir: {app}; DestName: ThgShellx86.dll; > Check: Is64BitInstallMode; Flags: ignoreversion restartreplace > uninsrestartdelete; Components: shell > Source: ..\misc\ThgShellx64.dll; DestDir: {app}; DestName: ThgShell.dll; > Check: Is64BitInstallMode; Flags: ignoreversion restartreplace > uninsrestartdelete; Components: shell > > [INI] > @@ -103,7 +104,7 @@ > ;Filename: {tmp}\vcredist_x86.exe; Parameters: /q; Check: > ShouldInstallVCPPSP1 and not Is64BitInstallMode > ;Filename: {tmp}\vcredist_x64.exe; Parameters: /q; Check: > ShouldInstallVCPPSP1 and Is64BitInstallMode > Filename: {app}\add_path.exe; Parameters: {app}; StatusMsg: Adding the > installation path to the search path... > -Filename: msiexec.exe; Parameters: "/i > ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-win32.msi"" /qn > /norestart ALLUSERS=1"; Check: not Is64BitInstallMode; Components: shell; > StatusMsg: Installing TortoiseOverlays.dll ... > +Filename: msiexec.exe; Parameters: "/i > ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-win32.msi"" /qn > /norestart ALLUSERS=1"; Components: shell; StatusMsg: Installing > TortoiseOverlays.dll ... > Filename: msiexec.exe; Parameters: "/i > ""{app}\TortoiseOverlays\TortoiseOverlays-1.0.6.16523-x64.msi"" /qn > /norestart ALLUSERS=1"; Check: Is64BitInstallMode; Components: shell; > StatusMsg: Installing TortoiseOverlays.dll ... > > [UninstallRun] > diff --git a/contrib/win32/registry.iss b/contrib/win32/registry.iss > --- a/contrib/win32/registry.iss > +++ b/contrib/win32/registry.iss > @@ -5,8 +5,12 @@ > ; register TortoiseHg config info > Root: HKLM; Subkey: Software\TortoiseHgShell; Flags: uninsdeletekey; > Components: shell > Root: HKLM; Subkey: Software\TortoiseHgShell; ValueType: string; ValueName: > ; ValueData: {app}; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseHgShell; Check: Is64BitInstallMode; > Flags: uninsdeletekey; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseHgShell; Check: Is64BitInstallMode; > ValueType: string; ValueName: ; ValueData: {app}; Components: shell > Root: HKLM; Subkey: Software\TortoiseHg; Flags: uninsdeletekey > Root: HKLM; Subkey: Software\TortoiseHg; ValueType: string; ValueName: ; > ValueData: {app} > +Root: HKLM32; Subkey: Software\TortoiseHg; Check: Is64BitInstallMode; > Flags: uninsdeletekey > +Root: HKLM32; Subkey: Software\TortoiseHg; Check: Is64BitInstallMode; > ValueType: string; ValueName: ; ValueData: {app} > > ; overlay handler COM controls > ; Normal > @@ -14,53 +18,89 @@ > Root: HKCR; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; > ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; > Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {app}\THgShellx86.dll; Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA0-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: > Apartment; Components: shell > > ; Added > Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; > ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; > Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {app}\THgShellx86.dll; Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA1-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: > Apartment; Components: shell > > ; Modified > Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; > ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; > Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {app}\THgShellx86.dll; Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA2-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: > Apartment; Components: shell > > ; Unversioned > Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; > ValueType: string; ValueName: ; ValueData: TortoiseHg; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ; ValueData: {app}\THgShell.dll; Components: shell > Root: HKCR; Subkey: > CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; ValueType: > string; ValueName: ThreadingModel; ValueData: Apartment; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: TortoiseHg; > Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {app}\THgShellx86.dll; Components: shell > +Root: HKCR32; Subkey: > CLSID\{{B456DBA6-7BF4-478c-937A-05130C2C212E}\InProcServer32; Check: > Is64BitInstallMode; ValueType: string; ValueName: ThreadingModel; ValueData: > Apartment; Components: shell > > ; The actual icon overlay handlers for Explorer > Root: HKLM; Subkey: Software\TortoiseOverlays\Normal; ValueType: string; > ValueName: TortoiseHg; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; > Components: shell > Root: HKLM; Subkey: Software\TortoiseOverlays\Added; ValueType: string; > ValueName: TortoiseHg; ValueData: {{B456DBA1-7BF4-478c-937A-05130C2C212E}; > Components: shell > Root: HKLM; Subkey: Software\TortoiseOverlays\Modified; ValueType: string; > ValueName: TortoiseHg; ValueData: {{B456DBA2-7BF4-478c-937A-05130C2C212E}; > Components: shell > Root: HKLM; Subkey: Software\TortoiseOverlays\Unversioned; ValueType: > string; ValueName: TortoiseHg; ValueData: > {{B456DBA6-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseOverlays\Normal; Check: > Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseOverlays\Added; Check: > Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: > {{B456DBA1-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseOverlays\Modified; Check: > Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: > {{B456DBA2-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKLM32; Subkey: Software\TortoiseOverlays\Unversioned; Check: > Is64BitInstallMode; ValueType: string; ValueName: TortoiseHg; ValueData: > {{B456DBA6-7BF4-478c-937A-05130C2C212E}; Components: shell > > ; Make them approved by administrator > Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; ValueType: string; ValueName: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; ValueType: string; ValueName: > {{B456DBA1-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; ValueType: string; ValueName: > {{B456DBA2-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; ValueType: string; ValueName: > {{B456DBA6-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > +Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > +Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: > {{B456DBA1-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > +Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: > {{B456DBA2-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > +Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Shell > Extensions\Approved; Check: Is64BitInstallMode; ValueType: string; ValueName: > {{B456DBA6-7BF4-478c-937A-05130C2C212E}; ValueData: TortoiseHg; Flags: > uninsdeletevalue; Components: shell > > ; Context menu handlers > Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Flags: uninsdeletekey; Components: shell > Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; > ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKCR32; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: Directory\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > Root: HKCR; Subkey: > Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: > Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: > string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; > Components: shell > +Root: HKCR32; Subkey: > Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: > Directory\Background\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > Root: HKCR; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Flags: uninsdeletekey; Components: shell > Root: HKCR; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; > ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKCR32; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: Drive\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > Root: HKCR; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Flags: uninsdeletekey; Components: shell > Root: HKCR; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; > ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKCR32; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: Folder\shellex\ContextMenuHandlers\TortoiseHgCMenu; > Check: Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; > ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > +Root: HKCR32; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: *\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > Root: HKCR; Subkey: > InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Flags: > uninsdeletekey; Components: shell > Root: HKCR; Subkey: > InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; ValueType: > string; ValueName: ; ValueData: {{B456DBA0-7BF4-478c-937A-05130C2C212E}; > Components: shell > +Root: HKCR32; Subkey: > InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; Flags: uninsdeletekey; Components: shell > +Root: HKCR32; Subkey: > InternetShortcut\shellex\ContextMenuHandlers\TortoiseHgCMenu; Check: > Is64BitInstallMode; ValueType: string; ValueName: ; ValueData: > {{B456DBA0-7BF4-478c-937A-05130C2C212E}; Components: shell > > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry® Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9-12, 2009. Register now! > http://p.sf.net/sfu/devconf > _______________________________________________ > Tortoisehg-develop mailing list > Tortoisehg-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop > ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop