I've been working through the git provider within puppetlabs-vcsrepo and I think I have the problems narrowed down. However I don't understand the code well enough to fix it.

What works:
Fresh installs of a repo on the client regardless of branch, revision, master, latest, whatever specified.
        Pulling latest from the current checked out branch.
Pulling latest from any branch that exists in the version of the repo that is already on the client.

What doesn't work:
Any update to the repo that the current version of the repo on the clinet would be unaware. Basically any condition that would require a git fetch and/or git pull --tags first, fails. Tags without branches don't seem to work at all when updating a repo, but I'm going to skip over this for now because I think it's a very different problem.

I'm guessing that certain functions that exist within lib/puppet/provider/vcsrepo/git.rb aren't getting called when the repo exists or that the current functions aren't doing everything that needs to be done. Likely suspects look like update_references, revision=(desired) or revision, or get_revision(rev).

I've littered fetches liberally over the code to no effect, but I'm betting I'm not initializing something correctly.

    at_path do
      git_with_identity('fetch', @resource.value(:remote))
      git_with_identity('fetch', '--tags', @resource.value(:remote))
    end

I can easily test code changes if someone with more Ruby chops that I wants to take a crack at it.

Ramin

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to