Since we have multiple application targets, it doesn’t make sense with a global APP_NAME variable.
Though if building the frameworks as standalone bundles and embedding them in different applications, we may need some sort of unique component in the bundle identifier, but we currently do not do this (they are all statically linked, so the Info.plist is currently unused).
On recent OS versions the /usr/bin/svn executable will prompt the user to install svn (if Xcode is not already installed) which can cause some user confusion, so we now avoid using /usr/bin/svn unless Xcode is installed.
This echoes commit 02a5747f89.
On recent OS versions the /usr/bin/git executable will prompt the user to install git (if Xcode is not already installed) which can cause some user confusion, so we now avoid using /usr/bin/git unless Xcode is installed.
Previously, scmStatus would not be enabled on remote volumes even if,
say, a .tm_properties setting explicitly matched a remote volume and
set scmStatus = true. This patch allows setting scmStatus = everyDisk
to skip the local-volume check.
Also defined are scmStatus = localDisk and systemDisk. localDisk is
the same as true (and is the default as before), systemDisk only
enables files on the "/" volume.
I mainly dislike the trailing zeroes because CGFloat used to be a float but 1.0 is a double (1.0f would be a float). So better to under-specify and let the compiler figure out the proper type.
The motivation for this change is that we may enable MallocDebug when running tests, which is done via environment variables that we do not want to be passed on to the shell tools we execute.
Previously we would only pass the repository’s root to scm::info, and thus the check on the path passed in was enough, but today we are passing in paths for which we do not yet know the repository root, so the check should (also) be done for the path that ends up containing version control meta data.
We still do the initial check since it also rejects non-local paths, thus avoiding stat’ing paths on network file systems.
Building with clang 3.2 (binary distribution) results in “illegal instruction” when adding 3 seconds to the steady clock, so I just replaced the code.
The reason the code was using std::chrono was to be able to provide better debug output, as dispatch_time_t is an abstracted time representation (according to the documentation).
Starting with subversion 1.8 we get back relative paths from ‘svn status’ so we need to prepend the working directory path.
I also made a few minor stylistic changes while touching the relevant function.
These are now all prefixed with what they are obtaining variables for (scope, document, bundle, …) which makes it easier to analyze/refactor the code.
Also change document_t’s settings function to document_settings.
These variables are mainly for use in the window title. Not all variables make sense across SCM drivers, hence why it is now completely up to the driver, what variables it provides.
Ideally we would be able to remove arbitrary callbacks rather than the last one added, but for this we would need to introduce some sort of handle (the callback itself is a block so not suitable as handle). The push/pop API for callbacks is sufficient for our use-case though.