Fix (#10787) - Various fixes/tweaks for the CVS provider
 Fix owner/group as well (#10787)
Add support for local-only branches

Before this commit, def latest assumed a repository's current branch
was available at the origin. This broke for two reasons: 1) If the
user generated the branch locally, there would be no corresponding
branch at origin; and, 2) If the user set the local branch to track a
remote branch at something other than origin, this was not properly
querying that other remote. This patch takes code provided by Aaron
Wells at:

http://stackoverflow.com/questions/171550/find-out-which-remote-branch-a-local-branch-is-tracking

and cretes new defs tracking_branch and tracking_remote to determine
these values, and modifies def latest to use them. It also renamed
on_branch? to on_branch, is it's not a boolean.
Merge pull request #15 from webfactory/fix_10787

Fix (#10787) - Various fixes/tweaks for the CVS provider
(#11798) Fix git checkout of revisions

The git provider had some problems checking out SHA1s - it couldn't.
And what's worse, it lied about what it was doing saying that it did
checkout the SHA1.

There was also a bug where if you specified a different branch than you
were on, it was doing a `reset --hard` to the specified branch.  For
example, if master was checked out, and you set "revision => stable", it
would `git reset --hard stable` on the master branch instead of just
checking out stable.  Maybe the original author did this to get around
being unable to checkout when you had local changes, but the --force
flag to checkout will fix that.

With this change, you should now be able to specify a branch, tag, or
SHA1 in the revision attribute and have it work.
Merge pull request #17 from mmrobins/ticket/master/11798_fix_sha1_revision

(#11798) Fix git checkout of revisions
don't recreate bare repo if it exists already (fixes #12303)
Make Puppet DSL compliant with the style guides and puppet lint.
Merge pull request #19 from adamgibbins/master

Improved Puppet DSL style as per the guidelines.
Merge remote-tracking branch 'upstream/master'
add begin/except for hg pull (mercurial 2.1 returns 1 for hg pull when no changes are found; this change gets reverted in mercurial 2.1.1)
(#13062) Added clarification that 'revision' can also be used for branches.
Merge branch 'patch-1'

* patch-1:
  (#13062) Added clarification that 'revision' can also be used for branches.
Fix failing hg provider spec caused by refactoring in commit f1120f2d9b121097b7e77709328144af330d0b34
Merge pull request #23 from jmchilton/d69a27f3bb5111822e1065f385a53b6ee99cb16a

Fix failing hg provider spec
Merge pull request #18 from andihit/master

don't recreate bare repo if it exists already - fixes http://projects.puppetlabs.com/issues/12303
Add the ability to specify a git remote

Rather than fill the git provider with hard-coded references to
origin, it would be better to abstract out which remote the resource
is fetching from.  But since this is only relevant to decentralized
version-control systems, a multiple_remotes feature was added for
the parameter to depend on.  So far this is only implemented for git
remotes, but it could be implemented for other VCSs as well.
Merge pull request #24 from jesusaurus/feature/git

Add the ability to specify a git remote
Run git operations as a specific user (puppetlabs ticket 4773), added ssh options to ensure no prompting (also fixed in pull request #1 by riseuplabs), added ability to keep repository up to date with latest (puppetlabs ticket 11278)
Merge pull request #25 from ejhayes/master

Checkout git repository as user, fixed ensure latest, ssh options