Commit Graph

63 Commits (2942b383c4dde13cd4ad2911b6b0e474caa28f14)

Author SHA1 Message Date
Timmo Verlaan 2942b383c4 [git] Determine branch name more reliable (#907)
* Made some changes to determine branch name more reliable (it may contain slashes now).

* Determination of branch name more reliable, as per comment on PR #907
8 years ago
jctanner a0f4c9ee45 git: Use a local copy of unfrackpath to avoid using ansible.lib (#4426)
Fixes #4425
8 years ago
jctanner 0445697a8b git: If force=yes, apply --force to submodule updates to overwrite local changes (#4415)
Fixes #238
8 years ago
Rob Cutmore 0acbbdf0c4 Git: Determine if remote URL is being changed (#4243)
* Git: Determine if remote URL is being changed

Ansible reported there were no changes when only the remote URL for a
repo was changed. This properly tracks and reports when the remote URL
for a repo changes.

Fixes #4006

* Fix handling of local repo paths

* Git: Use newer method for fetching remote URL

* Git: use ls-remote to fetch remote URL

Using ls-remote to fetch remote URL is supported in earlier versions
of Git compared to using remote command.

* Maintain previous behavior for older Git versions

Previously whether or not the remote URL changed was not factored
into command's changed status. Git versions prior to 1.7.5 lack the
functionality used for fetching a repo's remote URL so these versions
will update the remote URL without affecting the changed status.
8 years ago
jctanner 37ea0b0b1f git: save changed submodules in check and non-check mode (#4392) 8 years ago
Dag Wieers f5f1ec65e4 Add diff mode support to git module (#3364)
* Add diffmode support to git module

This patch adds missing diffmode support to the git module.

* Remodel get_diff() and calls to it

As proposed by @abadger

* Ensure we fetch the required object before performing a diff

Also we handle the return code ourselves, so don't leave this up to run_command().
8 years ago
Robin Roth f6fae82ec2 Fix git shallow update (#3912)
* remove unused variables

* fetch branch name instead of HEAD

fix #3782, which was introduced by f1bacc1d3f

* disable git depth option for old git versions

fixes #3782
git support for `--depth` did not fully work in old git versions (before 1.8.2)
fall back to full clones/fetches on those versions

* raise required git version to 1.9.1 for depth option

* use correct depth argument in switch_version
8 years ago
Toshio Kuratomi 2ecf9987bf Add comment 9 years ago
Marius Gedminas 0cd9497748 git: fix change testing when version is HEAD (#3025)
When `version` is not specified, it defaults to "HEAD".  "HEAD" is not a
remote tag, and it's not listed in the output of get_branches(), so we'd
keep repo_updated at the default value (None) and then return early with
changed=True in --check mode, even when before == after.

Fixes #3024.
9 years ago
Toshio Kuratomi 138430f116 Revert "Fix git shallow update (#3794)" -- Broke integration tests:
https://app.shippable.com/runs/57599a7897ae890c00c2898d

This reverts commit c26eb1217f.
9 years ago
Robin Roth c26eb1217f Fix git shallow update (#3794)
* remove unused variables

* fetch branch name instead of HEAD

fix #3782, which was introduced by f1bacc1d3f

* disable git depth option for old git versions

fixes #3782
git support for `--depth` did not fully work in old git versions (before 1.8.2)
fall back to full clones/fetches on those versions
9 years ago
Michael Scherer a64d72d7bc Improve error reporting when git binary fail (#3266)
Showing stderr or stdout is a great help to understand
when something go south.
9 years ago
Michael Scherer 94ec38cda8 Add a better solution for the ssh_known_hosts issue
Fix https://github.com/ansible/ansible/issues/10172 too
9 years ago
Toshio Kuratomi 3cbca32e73 Merge pull request #3507 from resmo/fix/git-porcelain-status
git: fix status to use porcelain, ignore user configuration
9 years ago
Robin Roth 2256ae0793 fix git switch branches in combination with depth on old git versions (#3492)
* fix git switch branches in combination with depth

* the old implementation is correct, but relies on git working correctly
  (as only newer versions do)
* with some older git version (e.g. 1.8.3), git fetch remote branch does
  not work, if the branch does not yet exist locally
* this patch works around that without explicitly checking the git version
* future refactoring is needed to reduce the number of fetches to a
  minimum; but this patch makes the code "correct"

* add git version requirements to doc

* replace set-branches with git 1.7.1 compatible version
9 years ago
Rene Moser 1f92e77650 git: fix status to use porcelain, ignore user configuration
From the git status doc:

    --porcelain

        Give the output in an easy-to-parse format for scripts. This is similar to the short output, but will remain stable across Git versions and regardless of user configuration. See below for details.

User configuration can break the git module from working as expected.
9 years ago
Toshio Kuratomi 98322a777f Merge pull request #3466 from robinro/git-full-clone-with-hash
git: fall back to full clone if version is hash
9 years ago
Robin Roth b67d15f385 fall back to full clone if version is hash
if version is not a branch or tag (i.e. a hash), we need a full checkout to be able to switch to it
9 years ago
Robin Roth c398eb5399 with depth only fetch actual version
* don't use refs/heads/branchname for branches
* for tags it's needed thou
* fixes #3456
9 years ago
Kyle Dyroff 2b003a2773 Log git error stdout/stderr to fail_json (#3022) 9 years ago
Robin Roth f1bacc1d3f make git updates respect depth (#3254)
* make git updates respect depth

until now `fetch` gets all tags and heads at full depth, this change
* uses `depth` argument for `fetch`
* only get the specified `version` in `fetch`

* fixes #14954

* treat combination of refspec and depth correctly

* be more conservative for non-depth fetch
9 years ago
Toshio Kuratomi ee90762388 git still needs to have abspath applied to dest 9 years ago
Michael Scherer 870311748f Use type='path' for path arguments for git module 9 years ago
Brian Coca 7461feb737 Merge pull request #934 from jbgo/git-depth-switch-version
git: set remote branch before switching versions when using depth arg
9 years ago
Toshio Kuratomi 2e46c086ae Since we screenscrape output from git to tell us information we need to use the C locale when running commands.
Using another locale would mean that we get information that may have
the strings that we are looking for.

Fixes #2449
Fixes #2462
9 years ago
Jan Duzinkiewicz b77bf7a9aa forcing git fetch if sha1 are equal between repos but branch exists only at remote
Add an explanatory comment to the code
9 years ago
Dmitry Labutin 0f21a9316d Github uses both HTTP and HTTPS protocols 9 years ago
Chris Streeter 13343a8888 Fix name of ssh_opts arg 9 years ago
Andrew Widdersheim e36e1339e8 Fix detached head detection in is_not_a_branch()
Detached head detection seems to have broken somewhere a long the way
because git decided to change how that situation looks when doing a 'git
branch -a' which is performed by get_branches().

This is how git 1.7.1 displays this situation (which works):

shell> git branch -a
* (no branch)
  master

This is the output from git 1.8.3.1 (which does not work):

shell> git branch -a
* (detached from e132711)
  master

It looks like this same wording is used in the most recent version of
git (2.6.1 as of writing this).
9 years ago
Brian Coca 57c0b86db4 Merge pull request #721 from jinowolski/devel
update git remote url before ls-remote
9 years ago
Brian Coca 2d3e93e558 added doc to note that git the command line tool is required for this moduel to function
fixes http://github.com/ansible/ansible/issues/11358
10 years ago
Greg DeKoenigsberg 2a5f0bde87 Proper author info for all remaining modules 10 years ago
Brian Coca 74e40b5fe1 fixed doc issue with git 10 years ago
Dionysis Grigoropoulos a9e68692b7
git: Add option to verify GPG signature of commit 10 years ago
Jordan Bach e4193da47e git: set remote branch before switching versions when using depth argument 10 years ago
Jan Inowolski d7efb2635c update git remote url before ls-remote
related to #8177
10 years ago
Toshio Kuratomi 256ce9dd4d Change the git force parameter to default to no as a safety change.
Fixes #306
10 years ago
Toshio Kuratomi 8f6ae92cf8 git fetch --tags overwrites normal fetching with git < 1.8.x so do a normal fetch followed by using the refspec format for fetching tags 10 years ago
Toshio Kuratomi 8a03af6608 Fix typo in git refspec code. Change lists to tuples 10 years ago
Toshio Kuratomi 2cbe13a21d Merge pull request #371 from rohanpm/git_refspec
git: add 'refspec' argument
10 years ago
Toshio Kuratomi ee324fc3ad Make documentation clear about update=no vs clone=no 10 years ago
Rohan McGovern cf85047284 git: add 'refspec' argument
This argument may be used to fetch additional refs beyond the default
refs/heads/* and refs/tags/*.  Checking out GitHub pull requests or Gerrit
patch sets are two examples where this is useful.

Without this, specifying version=<sha1> with a SHA1 unreachable from any
tag or branch can't work.
10 years ago
Rohan McGovern c242de1a39 git: clean up "fetch" method
De-duplicate repetitive code checking the exit code.

Include the stdout/stderr of the failed process in all cases.

Remove the returned values because no caller uses them.

Combine git commands where possible.  There is no need to fetch branches
and tags as two separate operations.
10 years ago
Toshio Kuratomi dfe7f6c6d6 Probably would make clone a 1.9 feature rather than 1.8.3 10 years ago
Toshio Kuratomi b650ad1671 Make git's update parameter revert to its old behaviour and add new clone parameter to take its place.
Fixes #426
Fixes https://github.com/ansible/ansible/issues/8630
10 years ago
Toshio Kuratomi f87afc090c Merge pull request #158 from ajsalminen/git_dereference_annotated_tag
[git] Find the actual commit annotated tags refer to instead of the tag object.
10 years ago
Toshio Kuratomi 7af2d3f5f7 Merge pull request #92 from astorije/expand_user_git_key_file
Expand the user home folder in the key_file argument of the git module
10 years ago
Toshio Kuratomi 7350d2cc7f Add error message from git to message returned from ansible
Fixes #81
10 years ago
Toshio Kuratomi 375025d2e3 Change git update param documentation to match reality 10 years ago
Toshio Kuratomi 2493dda4e5 Before pulling submodules from repos add ssh hostkeys for those submodules
Fixes #9655
10 years ago