Undef lseek first
_InterlockedExchange expects a volatile LONG
git_pool_mallocsz takes an unsigned long
message: don't assume the comment char

The comment char is configurable and we need to provide a way for the
user to specify which comment char they chose for their message.
Merge pull request #2303 from jacquesg/mingw-lseek

WIP: Windows fixes
Merge pull request #2364 from libgit2/cmn/comment-char

message: don't assume the comment char
clone: add failing test for a mirror-clone with clone_into

Show a failure to perform a mirror-clone from a repository, both local
and remote.
clone: duplicate the remote

Instead of changing the user-provided remote, duplicate it so we can add
the extra refspec without having to worry about unsetting it before
returning.
clone: don't error out if the branch already exists

We set up the current branch after we fetch from the remote. This means
that the user's refspec may have already created this reference. It is
therefore not an error if we cannot create the branch because it already
exists.

This allows for the user to replicate git-clone's --mirror option.
Merge pull request #2354 from libgit2/cmn/clone-into-mirror

Allow mirror-clone via `git_clone_into()`
Restore attributions for fnmatch
Merge pull request #2371 from martinwoodward/attrib_fnmatch

Restore attributions for fnmatch
Make core.safecrlf work on LF-ending platforms

If you enabled core.safecrlf on an LF-ending platform, we would
error even for files with all LFs.  We should only be warning on
irreversible mappings, I think.
Just don't CRLF filter if there are no CRs
smart: send a flush when we disconnect

The git server wants to hear a flush from us when we disconnect,
particularly when we want to perform a fetch but are up to date.
Fix a leak in the tests
Minor fix for cmn/clone-into-mirror.

A recently added check might skip initialization of old_fetchhead and go
directly to cleanup. So, destruct in the opposite order of construction.
Merge pull request #2373 from kitbellew/fix-clone-into-mirror

Minor fix for cmn/clone-into-mirror.
smart: store reported symrefs

The protocol has a capability which allows the server to tell us which
refs are symrefs, so we can e.g. know which is the default branch.

This capability is different from the ones we already support, as it's
not setting a flag to true, but requires us to store a list of
refspec-formatted mappings.

This commit does not yet expose the information in the reference
listing.
remote: expose the remote's symref mappings

Add a symref_target field to git_remote_head to expose the symref
mappings to the user.