Now, I know conceptually the Remotes segmented control was down there because it is
related to the repository and the current branch, but I really grew tired having to
travel all the way down the monitor real estate just to click a button.
And you can't just fast travel down, you need be quite specific with the click.
Edit install.sh to use gitx_askpasswd so that a password dialog is shown whenever
sudo is used in the install script.
Also split the install logic in install.sh based on BUILD_STYLE so that
installing GitX and gitx (CLI) is possible each on its own.
I was confusing KVO with Notifications earlier, as the GC Programming Guide
explicitly says one should not unregister notifications in a finalize method
when using GC.
To do this we use a modified gitx_askpasswd to ask for sudo permissions during build.
Modifications to gitx_askpasswd include:
- Ability to specify the dialog info text (or title) via STDIN or a GITX_ASKPASSWD_DIALOG_TITLE env variable.
Install.sh uses the env var in 'sudo -A -E' to kindly request the password.
The point of this is to provide a sensible title which lets the user/dev know why he has to enter his password in a dialog that is obviously not from Mac OS X.
Install.sh will now also create the folder hierarchy needed for the install paths set in Install.xcconfig using 'sudo -A -E' if neccessary (if the folders don't exist).
Since xcconfigs can include other configs you get the same functionality that Xcode's
build settings give you but with much more clarity. And it's much better for SCM,
especially decentralized ones like git.
Changes:
- Archs is set to ppc i386 x86_64
- libgit2 is now compiled including -arch x86_64.
- LTO is off (caused a Rel32 address space error when linking)
- Default compiler is now LLVM GCC4.2 since Clang is not quite ready for Objective C++.
(and we have some .mm files in there)
- Based on: settings on Xcode's build settings dialogs are set according to the name
of the xcconfig file. (project settings are based on Common.xcconfig)
- Deleted all the overwritten settings (bold font display) that are now defined through
the xcconfigs.
My guess is that this is caused by the rather large buffer size of 2000.
Since we know that a full SHA will never be longer than 40+1 bytes, we simply use
a default define from libgit2 for the buffer size.