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.
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.
This was previously public so that we could write tests for it, but since the test runner is linked with the object files, it can access symbols that has visibility set to hidden.
This is both convenience, since we setup the TM_SCM variables in several places, but will also allow to register for changed variables (and thus, fetch branch name in a thread).
The scm::status::versioned status has now been removed.
The upshot of this is that SCM drivers can leave out files that are “clean” from their status map, and TextMate will assume they have status “none” (clean). This cuts down on the amount of data that needs to be sent (and/or processed) by the SCM drivers.
This can still be fooled, as we do not read variables from TextMate’s user defaults, but I think this should solve majority of issues users are reporting.
* Rewrote the Subversion SCM driver to use the svn executable
* Badges work just like Mercurial
* TM_SCM_BRANCH is set to the full repository URL for the working copy
See issue #273.
The fs::snapsot_t class creates a finger print of a folder. We used the source tree for testing, but if the source tree hosts the build directory, then the fingerprint will (likely) change, since we run simultaneous build jobs.
It now uses the Frameworks folder in the source tree, as it’s unlikely that someone would place their build directory in this location.
git commit fails when user.name and user.email aren't set. Unfortunately
using git commit --author='Test Test <test@example.com>' doesn't work.
This could happen in environments where pristine users are used to build
software.
This patch is public domain.