-
Notifications
You must be signed in to change notification settings - Fork 285
Adding svn provider support for versioning of individual files #274
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Of note, It's nice to have portable options between providers with similar functionality. I think the name |
I don't really understand what |
How will the provider know when it needs to update the output without talking to the network every time? I think you'll end up rewriting the targets on every puppet execution. |
I can definitely add in the Regarding In a more general sense, I see it as a (poorly-named) implementation of subversion's sparse directories functionality. |
@sodabrew if you're talking about the |
Updated first comment to make the |
end | ||
|
||
newparam :files, :required_features => [:files] do | ||
desc "The files to pull from the SVN server" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mentions SVN explicitly, but it may be usable from other providers.
After community review in the weekly PR triage, we are 👍 for functionality, 👍 for bandwidth concerns, and 👍 for the property names |
Hey @squarebracket , thank you for your contribution! We would be keen to get this merged, however there are a few things we need to do so. Would you be willing to add documentation to the README and some tests for your added functionality? |
Hi! Yes, I saw the comments from a few days ago. I've been a bit busy working on the puppet-graphite module so I haven't had a chance to get around to this. I'll push some tests/docs in the next couple weeks and bump the thread when I'm done. |
Ok, I reworked things quite a bit since the last update. Functionality changesI renamed the I've decided to drop support for TestsAdded unit tests for all the DocsUpdated documentation with a verbose explanation of how sparse stuff works. Outstanding issuesI purposely checked in an acceptance test that is failing. It is that switching Also, there's somewhat of a name clash between |
Woops, accidentally checked in my libvirt puppet vagrant box, just undid that. |
The only test that's failing is the one I noted before -- the acceptance test for switching sources. This is intentional because it's something that needs to be fixed. If you'd like me to file a bug in JIRA to have the discussion there, let me know. |
Did this come up at your meeting yesterday by any chance? |
The ability to change the source as a property should probably be submitted in a separate PR that this depends on. For the git provider, the |
d2f99b3
to
2d6c168
Compare
- Added `includes` parameter to type/provider Calls `svn update --depth empty` on root path, and then `svn update` on paths provided to `includes` Also added acceptance tests for SVN provider, cuz why not.
2d6c168
to
304da4c
Compare
I extended the SVN provider to include some particular functionality I needed, but I'm not sure if it fits with the "goal" of the module. If it does, I'll add tests and make it more robust; otherwise I'll fork it off into my own module.
Two features have been added to the provider.
Added
:export
parameter/feature to type/provider -- accepts:true
or:false
Provider runs
svn export
instead ofsvn checkout
if:export
istrue
, which creates an non-versioned copy of the working tree inpath
. Of course, since it is non-versioned, there is no way of tracking revision throughsvn
, so each subsequent puppet run requires:force
to betrue
.Added
:files
parameter/feature to type/provider -- accepts array (Should probably be renamed to:paths
)Implements functionality of subversion sparse directories. Only useful when using a non-full
depth
. It callssvn update
on the paths that are passed through to it.In other words, if you want to check out only certain parts of the repo to the local working tree, you could, for example, do: