cmd: Add a .bat file that attempts to authorize SSH keys with ssh-agent

If double clicked on from explorer it will start a new command prompt but
invoking the script from a current command prompt just adds the ssh keys
to the prompt.
Merge pull request #135 from mattyclarkson/master

BATCH file that starts the ssh-agent
Use the /d option to change into the %HOME% directory
In case the %HOME% directory is not located on the same drive
as msysgit, git-cmd.bat will not open at the correct location
without that option.
Merge pull request #146 from ferstl/change-homedrive

Change to the home drive before changing to the home directory
Installer: Equalize code formatting for multi-line function calls

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Use SuppressibleMsgBox to support silent installations (fixes #140)

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Do not create "Git Bash.lnk" in the app directory anymore

As of eec84b0 the shortcut from which the console window icon and title
are set is created dynamically by "Git Bash.vbs" in the temp directory.

Leave the code to delete "Git Bash.lnk" on uninstall in there to properly
clean-up a previous installation.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Fix "an" -> "and" typo in code comments

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Move DeleteFromVirtualStore to helpers.inc.iss

As it is more or less a generic helper function.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Improve code comments

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Reduce code duplication by refactoring into functions

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Installer: Minor equalization of formatting

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
copy-files: Do not overwrite dos2unix with hd2u

Although hd2u is more powerful (as it e.g. can detect line endings without
changing them and reports mixed line endings) it has different semantics
and toggles line endings by default instead of forcing them to Unix. As
this can be misleading to the user, ship both tools.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Fix zlib 1.2.7 not available from server anymore

Only the current version, 1.2.8, is available,
curl http://zlib.net/zlib-1.2.7.tar.gz
returns a 404 Not Found.
Merge pull request #150 from rburgstaler/rb/fix-zlib-not-available-from-server-anymore

Fix zlib 1.2.7 not available from server anymore
Initial version of shears.sh

The purpose of the garden shears is to provide a much more advanced way
to work with a thicket of development branches than an interactive,
merge-preserving rebase. It supports not only rebasing topic branches
while keeping their merge structure intact but also allows for
reordering commits, as well as integrating msysGit's 'merging rebase'
strategy.

To support all that, this introduces a couple of new "rebase commands"
that are translated after editing the edit script, making use of a
temporary alias called ".r" that simply calls shears.sh itself.

The new commands are: "merge", "start_merging_rebase" and "cleanup".

To make appropriate  use of those new commands, we refuse blatantly to
let "git rebase -p" write the edit script, but generate it ourselves
instead. As a consequence, the edit scripts look very different from
current 'rebase -p' scripts.

Example:

	start_merging_rebase "2fb434d"
	exec git update-ref refs/rewritten/onto HEAD

	exec git reset --hard refs/rewritten/onto
	pick 780e6c6 Add a ZipInputStream
	exec git update-ref refs/rewritten/780e6c6 HEAD

	exec git reset --hard refs/rewritten/onto
	merge refs/rewritten/780e6c6 -C 2fb434d # Merge branch 'zip-input-stream' into HEAD

	cleanup  780e6c6

Subsequent commits will improve this script further.

Since this developer designed git-rebase's --preserve-merges support in
a very unfortunate, awfully short-sighted manner, it was sadly not
possible to provide this functionality as a patch series improving
git-rebase--interactive itself, but it is rather an add-on script that
circumvents parts of git-rebase--interactive altogether.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
shears.sh: support fixup! and squash!

One of the most powerful feature added to the already powerful
interactive rebase was to allow workflows where you *add* commits with
the intention to amend ("fix up") other commits in the topic branch at
a later stage, through "git rebase -i --autosquash". Such commits are
added by crafting special-format commit messages, or by using the
convenient --fixup or --squash options of "git commit".

However, with the garden shears, we side-step the original interactive
rebase, therefore we have to re-implement that very convenient
fixup/squash handling.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
shears.sh: simplify marking rewritten commits

It is nicer to read

	mark deadbeef

than

	exec git update-ref refs/rewritten/deadbeef HEAD

not to mention easier to write when modifying the edit script.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
shears.sh: provide hints as to branch names

It is quite convenient to know what branch is started by a

	exec git reset --hard refs/rewritten/onto

so let's try hard to find a branch name for each of them.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
shears.sh: introduce the 'rewind' shortcut

It is much nicer to read

	rewind onto

than

	exec git reset --hard refs/rewritten/onto

in the rebase script... ;-)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>