How should I debug the git module hanging when specifying a hash for the version?

Tell ansible to keep the remote script and then use use python -m trace to walk through it ...

ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook -vvvv

# grab the remote filename ansible creates

# ssh to the remote host

python -m trace --trace <module-file-path>

Example:

$ python -m trace --trace /home/jtanner/.ansible/tmp/ansible-1387469069.32-4132751518012/command 2>&1 | head
  --- modulename: command, funcname: <module>
command(21): import sys
command(22): import datetime
command(23): import traceback
command(24): import re
command(25): import shlex
  --- modulename: shlex, funcname: <module>
shlex.py(2): """A lexical analyzer class for simple shell-like syntaxes."""
shlex.py(10): import os.path
shlex.py(11): import sys

The git module often requires adding the host to known_hosts or forwarding SSH creds.

We have an open ticket to add some additional options for auto-handling these kinds of things, which I hope to see resolved in 1.5.