Separate install package for TortoiseOverlays

45 views
Skip to first unread message

Francois Botha

unread,
Jan 6, 2021, 4:50:11 AM1/6/21
to TortoiseSVN
Hi,

I was wondering if a separate install or zip/7z package  for TortoiseOverlays is available somewhere.

Why? I'm using scoop package manager ( scoop.sh ), which already contains TortoiseSVN, which installs TortoiseOverlays in a subdirectory of the %SCOOP%/apps/tortoisesvn/current/ directory. 

I recently added a PR for TortoiseGit, which does the same. Ideally, there should be an independent scoop package for TortoiseOverlays (which installs to its own directory) and TortoiseSVN, TortoiseGit (and maybe TortoiseHg later) defines TortoiseOverlays as a dependent package. 

For me to do this, having a separate install package, or even just a zip/7z archive for TortoiseOverlays would ease things a lot.

Does this exist and if not, any chance that it can be created and maintained? I know I'm taking a long shot here.

thanks
Francois Botha

Stefan Kueng

unread,
Jan 6, 2021, 10:34:08 AM1/6/21
to Francois Botha via TortoiseSVN
The TortoiseOverlays has a separate package here:
https://osdn.net/projects/tortoisesvn/scm/svn/tree/head/TortoiseOverlays/version-1.0.15/bin/

But why do you need that?
All Tortoise* clients (TSVN, TGit, TCVS, THg, ...) use the same
TortoiseOverlays component, embedded either with the msi or msm. Which
means it is only installed once, no matter how many Tortoise* clients
you have installed. And the installation is reference counted, meaning
if you uninstall one Tortoise* client it stays there until all Tortoise*
clients are uninstalled.

Installing it separately is just bad (I'd say stupid, but that may be
considered rude...)

Stefan


On 06.01.2021 10:50, Francois Botha via TortoiseSVN wrote:
> Hi,
>
> I was wondering if a separate install or zip/7z package  for
> TortoiseOverlays is available somewhere.
>
> Why? I'm using scoop package manager ( scoop.sh ), which already
> contains TortoiseSVN, which installs TortoiseOverlays in a subdirectory
> of the %SCOOP%/apps/tortoisesvn/current/ directory.
>
> I recently added a PR
> <https://github.com/lukesampson/scoop-extras/pull/5443> for TortoiseGit,
> which does the same. Ideally, there should be an independent scoop
> package for TortoiseOverlays (which installs to its own directory) and
> TortoiseSVN, TortoiseGit (and maybe TortoiseHg later) defines
> TortoiseOverlays as a dependent package.
>
> For me to do this, having a separate install package, or even just a
> zip/7z archive for TortoiseOverlays would ease things a lot.
>
> Does this exist and if not, any chance that it can be created and
> maintained? I know I'm taking a long shot here.
>
> thanks
> Francois Botha
>
> --
> You received this message because you are subscribed to the Google
> Groups "TortoiseSVN" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to tortoisesvn...@googlegroups.com
> <mailto:tortoisesvn...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tortoisesvn/db47c84b-a0e0-4dec-bcff-744898d5364fn%40googlegroups.com
> <https://groups.google.com/d/msgid/tortoisesvn/db47c84b-a0e0-4dec-bcff-744898d5364fn%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest interface to (Sub)version control
/_/ \_\ https://tortoisesvn.net

Francois Botha

unread,
Jan 6, 2021, 10:52:23 AM1/6/21
to TortoiseSVN
On Wednesday, 6 January 2021 at 17:34:08 UTC+2 Stefan wrote:
The TortoiseOverlays has a separate package here:
https://osdn.net/projects/tortoisesvn/scm/svn/tree/head/TortoiseOverlays/version-1.0.15/bin/

Ah, thanks. I saw that, but I assumed it's not the latest version. For some reason I expected the TortoiseOverlays version number to be more or less aligned with the latest TortoiseSVN version number. 

I see the FileVersion of my currently installed TortoiseOverlays.dll is 1.1.4.26626 . Why does that differ to 1.0.15 ?

PS C:\> (Get-Command "D:\scoop\apps\tortoisesvn\current\Common\TortoiseOverlays\TortoiseOverlays.dll").FileVersionInfo.FileVersion
1, 1, 4, 26626
 

But why do you need that?
All Tortoise* clients (TSVN, TGit, TCVS, THg, ...) use the same
TortoiseOverlays component, embedded either with the msi or msm. Which
means it is only installed once, no matter how many Tortoise* clients
you have installed. And the installation is reference counted, meaning
if you uninstall one Tortoise* client it stays there until all Tortoise*
clients are uninstalled. 
 
Scoop package manger is great ( better than Chocolatey, imho ). I recommend you check it out. But it does things a bit differently and it breaks the convention a bit. 

With a normal Tortoise* install, the TortoiseOverlays will be installed to e.g. C:\Program Files\Common Files\TortoiseOverlays\ , so if both TortoiseSVN and TortoiseGit are installed, there's only one installation of TortoiseOverlays. And more importantly, the registry entries point to only a single location. Of course you already know this.

Using scoop, as mentioned in the original post, TortoiseOverlays is installed to %SCOOP%\apps\tortoisesvn\current\Common\TortoiseOverlays and %SCOOP%\apps\tortoisegit\current\Common\TortoiseOverlays . And the registry will point to whichever was installed last. scoop doesn't install anything to C:\Program Files\*. It's just the way it is. Obviously in this case the reference count isn't used. Uninstallation will be handled with scoop too. Think of it more as a set of portable apps with dependencies configured in manifest files. The benefits of scoop (easy upgrade on the command line) is why I prefer to use scoop than traditional installation methods.

thanks
Francois

Stefan Kueng

unread,
Jan 6, 2021, 11:04:22 AM1/6/21
to Francois Botha via TortoiseSVN


On 06.01.2021 16:52, Francois Botha via TortoiseSVN wrote:
>
>
> On Wednesday, 6 January 2021 at 17:34:08 UTC+2 Stefan wrote:
>
> The TortoiseOverlays has a separate package here:
> https://osdn.net/projects/tortoisesvn/scm/svn/tree/head/TortoiseOverlays/version-1.0.15/bin/
> <https://osdn.net/projects/tortoisesvn/scm/svn/tree/head/TortoiseOverlays/version-1.0.15/bin/>
>
>
>
> Ah, thanks. I saw that, but I assumed it's not the latest version. For
> some reason I expected the TortoiseOverlays version number to be more or
> less aligned with the latest TortoiseSVN version number.
>
> I see the FileVersion of my currently installed TortoiseOverlays.dll is
> 1.1.4.26626 . Why does that differ to 1.0.15 ?

ups, 1.1.4 is the latest version. Not 1.0.15 where I pointed you to, sorry.

As for the version number: since the TortoiseOverlays component is used
by all other Tortoise clients as well, the version number doesn't relate
to the latest TSVN package at all, and is now very rarely updated: it
does not contain any feature beside providing the overlays - how they're
used/shown is up to the Tortoise client itself.

>
> *PS C:\> (Get-Command
> "D:\scoop\apps\tortoisesvn\current\Common\TortoiseOverlays\TortoiseOverlays.dll").FileVersionInfo.FileVersion*
> *1, 1, 4, 26626*
>
>
> But why do you need that?
> All Tortoise* clients (TSVN, TGit, TCVS, THg, ...) use the same
> TortoiseOverlays component, embedded either with the msi or msm. Which
> means it is only installed once, no matter how many Tortoise* clients
> you have installed. And the installation is reference counted, meaning
> if you uninstall one Tortoise* client it stays there until all
> Tortoise*
> clients are uninstalled.
>
> Scoop package manger <https://scoop.sh/> is great ( better than
> Chocolatey, imho ). I recommend you check it out. But it does things a
> bit differently and it breaks the convention a bit.

That's why I stay with chocolatey :)

>
> With a normal Tortoise* install, the TortoiseOverlays will be installed
> to e.g. C:\Program Files\Common Files\TortoiseOverlays\ , so if both
> TortoiseSVN and TortoiseGit are installed, there's only one installation
> of TortoiseOverlays. And more importantly, the registry entries point to
> only a single location. Of course you already know this.

that's how it's supposed to work.

>
> Using scoop, as mentioned in the original post, TortoiseOverlays is
> installed to %SCOOP%\apps\*tortoisesvn*\current\Common\TortoiseOverlays
> and %SCOOP%\apps\*tortoisegit*\current\Common\TortoiseOverlays . And the
> registry will point to whichever was installed last. scoop doesn't
> install anything to C:\Program Files\*. It's just the way it is.

So if the last Tortoise client is removed, the registry entries will
point to non-existing files, breaking all other installed Tortoise
clients???

Also that means using much more disk space than necessary.

Stefan

Francois Botha

unread,
Jan 6, 2021, 11:20:38 AM1/6/21
to TortoiseSVN

ups, 1.1.4 is the latest version. Not 1.0.15 where I pointed you to, sorry. 

Where can I find the .msi files for TortoiseOverlays 1.1.4?
 
So if the last Tortoise client is removed, the registry entries will
point to non-existing files, breaking all other installed Tortoise
clients???

Obviously mixing Tortoise clients by installing some using scoop and some using the traditional method will break things. The assumption is that all Tortoise clients are installed via scoop, which is exactly why I'm working to add TortoiseGit too. Currently only TortoiseSVN is in the scoop repository. I'm using this as a proof of concept. 

I'm not a scoop dev by any means, but I assume that once all Tortoise clients are uninstalled via scoop, that unused dependencies can be auto-removed. Will check up on that.

Stefan Kueng

unread,
Jan 6, 2021, 11:30:42 AM1/6/21
to Francois Botha via TortoiseSVN


On 06.01.2021 17:20, Francois Botha via TortoiseSVN wrote:
>
> ups, 1.1.4 is the latest version. Not 1.0.15 where I pointed you to,
> sorry.
>
>
> Where can I find the .msi files for TortoiseOverlays 1.1.4?

https://svn.osdn.net/svnroot/tortoisesvn/TortoiseOverlays/version-1.1.4/bin


> Obviously mixing Tortoise clients by installing some using scoop and
> some using the traditional method will break things. The assumption is

And this is bad. Scoop can't prevent that, which I consider a high risk.
Especially since many apps have either auto-update or an update
notification which always points to the real installer.

> that all Tortoise clients are installed via scoop, which is exactly why
> I'm working to add TortoiseGit too. Currently only TortoiseSVN is in the
> scoop repository. I'm using this as a proof of concept.
>
> I'm not a scoop dev by any means, but I assume that once all Tortoise
> clients are uninstalled via scoop, that unused dependencies can be
> auto-removed. Will check up on that.

You "assume" that it works this way - you're very brave :)

Francois Botha

unread,
Jan 6, 2021, 11:33:38 AM1/6/21
to TortoiseSVN
Reply all
Reply to author
Forward
0 new messages