Why is GitDependencies throwing an error message during git merge?

I am using git via cygwin64 on Windows 7, and when I try to pull/merge changes, I get a curious error message saying that an invalid parameter was passed to GitDependencies:

$ git merge epic/master
Updating 33cf0ed..b6575f9
Fast-forward
 Engine/Build/Commit.gitdeps.xml    
...
 create mode 100644 Engine/Source/Runtime/CoreUObject/Private/UObject/LinkerPlaceholderFunction.h
Invalid command line parameter:

Usage:
   GitDependencies [options]

Options:
   --all                         Sync all folders
   --include=<X>                 Include binaries in folders called <X>
   --exclude=<X>                 Exclude binaries in folders called <X>
   --prompt                      Prompt before overwriting modified files
   --force                       Always overwrite modified files
   --root=<PATH>                 Set the repository directory to be sync
   --threads=<N>                 Use N threads when downloading new files
   --dry-run                     Print a list of outdated files and exit
   --max-retries                 Set the maximum number of retries for each file
   --proxy=<user:password@url>   Sets the HTTP proxy address and credentials
   --cache=<PATH>                Specifies a custom path for the download cache
   --no-cache                    Disable caching of downloaded files

Detected settings:
   Excluded folders: Mac, HTML5, Android
   Proxy server: none
   Current cache path: C:\Unreal\unrealengine\.git\ue4-gitdeps

$

I would like to know how serious this error is, and whether it will affect the integrity of the build. I am puzzled as to what’s actually going on here - is git calling GitDependencies? I thought that was a visual studio .net binary, so how does git within a cygwin shell even know about it? Is there a script or hook somewhere in the directory structure that tells git to run an external application as a post merge process? Also puzzling is the fact that an empty string follows the “invalid parameter” message, so it’s apparently not being passed anything. However, running GitDependencies.exe with no parameters does not produce the same message, and in fact begins downloading things. This message did not appear when I first cloned the repo, only when I try to update it. The engine does compile, so it may not be a high priority issue. Just trying to understand. Any insight into this step of the update process would be appreciated.

It does set up a hook, yes. When you run Setup.bat, it creates a script in .git/hooks/post-merge which runs GitDependencies.

At a guess, perhaps you ran Setup.sh instead of Setup.bat, which we’ve only tested on Mac/Linux. What does the hook script contain?

post-merge:

#!/bin/sh 
Engine/Binaries/DotNET/GitDependencies.exe 

That’s interesting. I’m certain I ran Setup.bat from a windows command prompt, but I’m using cygwin for git. Maybe I need to find a windows native solution instead.

Ok, msysgit handles it fine. It just didn’t like cygwin. I’ve tested it both through the windows command prompt and through the git bash shell.