Boost logo

Boost :

Subject: Re: [boost] big problem with dependency changes
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2014-06-16 21:04:43


On 17/06/2014 08:12, Bjørn Roald wrote:
> Regrettably more tools than I expected do the later type of delete then
> write sequence rather than in-place overwrite when editing files. Git
> being one offender :-(

It's likely to be defensive programming. Writing to a temporary file
with an alternate name and then executing a delete-rename or
rename-rename-delete sequence is generally as close as you can get to an
atomic update that doesn't leave behind partial files in case of failure
(thereby possibly destroying content), at least without "real"
transaction support (which does exist but is rarely used in Windows).
(This is because writes are slow, but deletes and renames are nearly
instant and are less likely to fail.)

Thus you'll find version-control systems and other software designed for
reliability will do that more often than not, although it's more
hit-n-miss with general-purpose applications (eg. editors).

And most Windows software is not written to be symlink-aware because
they're very rare.

> If you are in the Administrators group, you also need to disable User
> Access Control(UAC). I have no idea if that is a good idea. As this
> only apply to members of the Administrator group, I guess using a
> separate user account could be an alternative work around if you or your
> sysadmin are concerned about turning UAC off.

In general, it is not a good idea. While Linux users (and more
importantly, applications) are used to the idea of logging in to a
completely separate account for day-to-day vs. admin operations, Windows
users (and applications) generally expect to use the same account for
both. UAC allows the distinction between elevated or not, which lets
the non-admin tasks be run more safely (like Linux). While it's
possible for a sufficiently disciplined user to run dual accounts like
on Linux, this often confuses applications in unexpected ways.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk