If the repo_path contained multiple '.git' strings, the _git_repo_info()
call resulted in a traceback. This change removes the trailing '.git'
and resolves the traceback.
Output a useful message if `git submodule update --init --recursive` not
yet performed
```
$ ansible --version
ansible 1.8 (submodule_ansible_version 59ae596484) last updated 2014/09/28 13:20:51 (GMT +1000)
lib/ansible/modules/core: (detached HEAD 617a52b20d) last updated 2014/09/28 13:15:25 (GMT +1000)
lib/ansible/modules/extras: not found - use git submodule update --init lib/ansible/modules/extras
```
`ansible --version` etc. now include information about submodules
```
ansible 1.8 (submodule_ansible_version ffee9a8fe0) last updated 2014/09/28 11:03:14 (GMT +1000)
lib/ansible/modules/core: (ec2_snapshot_remove 3a77c31ecb) last updated 2014/09/27 18:23:31 (GMT +1000)
lib/ansible/modules/extras: (detached HEAD 110250d344) last updated 2014/09/27 14:33:42 (GMT +1000)
```
Also improved handling of detached HEAD when printing out version
information.
Also moves the calculation of the destination file name until after
the slurp of the file contents, since the source as returned by slurp
may now be different, so we want to use that expanded path locally.
Fixes#8942
Previously, the delegate_to value was stored in the module_vars of runner,
which could lead to bleeding that value across runs and incorrect hosts
being delegated to. This patch moves the value to a local variable in
the Runner class with some related refactoring of _compute_delegate() in
Runner (since the value is no longer required to be a parameter).
Fixes#8705
Also modifies the template action plugin to use this new param
when executing the file/copy modules for templating so that links
are preserved correctly.
Fixes#8998
Effectively reproduces @sivel's work from #8900 but for
the paramiko connection. Fixes#8418 when using paramiko
This allows `_remote_md5` to work if a sudo password is
passed in when no sudo password is required.
When supplying a sudo password to a server that uses passwordless sudo,
we should not throw away useful stdout and stderr. This is particularly
important for modules that perform md5 checks as part of the pre module
execution.