[MERGE] optionally install tbzr binaries with bazaar binaries on Windows

Mark Hammond mhammond at skippinet.com.au
Thu Aug 14 03:21:38 BST 2008

I'm attaching a new bundle which is targetted specifically at 1.6, as there is a degree of urgency in having the patch land there.  However, I'd also like it to land in .dev.  Apologies if I should have done things differently.

> Probably my biggest problem with using ENV vars is that you may not
> really know :
> 1) That they exist at all
> 2) What you should set them too when you do know about them.

Fair enough - but I haven't made that change in the attached bundle - it's still using env vars.

> locally. The environment variable is rather cryptic, though. I'm
> guessing it isn't a standard name, why not:
> WIN32 is redundant with MSI. I would usually request a BZR_ at the
> beginning, but these aren't *bzr* tortoise overlays.

Actually, there are different MSI files for 32 and 64bits - I've gone with TORTOISE_OVERLAYS_MSI_WIN32 and tweaked the comments and error messages to better describe what is required.

> ^- PEP8 asks for 2 blank lines between top-level functions/classes
> ^- same here (just add another blank line)


> +// [[[cog
> +// if "TBZR" in os.environ:
> +//     import os
> +//     cog.outl("tovmsi := '%s';" %
> os.path.basename(os.environ["TOVMSI_WIN32"]))
> +// else:
> +//     cog.outl("tovmsi := '';")
> +// ]]]
> +// [[[end]]]
> ^- We generally don't keep commented out sections, unless you have a
> reason to include this. (Like you'll need it soon, etc.)

It is used - it just looks commented due to the way cog works.  As this cog code is in the [code] section '//' is used as comment markers rather than the ';' used in the other sections.  If the installer wasn't build with Tortoise, we will not hit this block, so we don't need to handle 'tovmsi' being empty.

> I honestly feel we should explore a
> chain-install that sets up a python install (optionally, as a user may
> have it), and then builds up into that, rather than using py2exe.
> Mostly
> because there will be a few people that upgrade continuously, and
> having
> them redownload all dependencies for every upgrade seems unfortunate.
> I know Python itself is a .msi installer. I wonder if we couldn't
> leverage that, and maybe work out a setuptools based installation that
> can download whatever dependencies we need, rather than have to bundle
> everything all-together.

Agreed, that would be the ideal situation.  However, my short term focus is Tortoise, so I'm really just tyring to do the least possible to support that (but then got sucked into bzr-svn etc :)  There are probably a few options for doing what you describe in the longer term though...

A new change in this version of the patch is that pretty much all files get installed with the inno 'restartreplace uninsrestartdelete' flag to ensure we can install and uninstall files in use (at the cost of needing a reboot for it to happen fully - but the user is free to decline to reboot at that moment)

Please let me know if any further tweaks are required.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: tbzr-binaries.patch
Type: application/octet-stream
Size: 34846 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080814/d760f191/attachment-0001.obj 

More information about the bazaar mailing list