On Mar 19, 2010, at 18:52, robert mena wrote:
> On Fri, Mar 19, 2010 at 6:35 PM, Ryan Schmidt wrote:
>
>> On Mar 19, 2010, at 16:55, robert mena wrote:
>>
>> > I am using svn (webdav) and I need to allow the developers to request that updates are made in a staging server.
>> >
>> > Since the developers can't access the server from the console/ssh I'd like to create a system where the developer would list the files and request. My script would pull the requests and do a svn update xxxx and return to the user the output of the command.
>> >
>> > I do not want to reinvent the wheel so tips would be great.
>>
>> I suggest you use SVN::Notify::Mirror. Developers who wish to promote something to the staging server need only create a tag with a name of a certain format, and SVN::Notify::Mirror will deploy the contents of the tag to the right place.
>
> Just to make sure my 'requirements' are clear I have a repository (/repos) where I have several projects like clientA, clientB etc.
>
> They are all websites so the devel team (testers, layout etc) adds, removes, updates directories and files related. When they've reached a point where they need to show something for the client (or an outside tester) they need to 'publish' their modifications to a server (different than the devel one).
>
> For security and technical reasons (try teaching designers about ssh :) ) they are not allowed to access the remote server (staging). So now I have someone with a list of files that he does a svn update in the remote server. This is boring and takes one person for a mechanical job (automation! automation!).
>
> So my take would be:
> - create a simple app where the developer puts the name of the directory or files that he/she wants to be published in the staging server
> - another app will run from the crontab of the staging server and fetch the pending requests, do an exec svn xxxx (the args will be sanitized for security) and save the output
>
> Why webdav : essentially for the granularity of the access/auth control.
>
> I'd like to cut as many steps as possible so the request for feedback and/or code snippets for the app.
>
> I'll use php for both parts.
SVN::Notify::Mirror is what you want.
There is no restriction on the method you use to serve your repository; svn://, svn+ssh://, http://, https:// should all be fine.
If the machine where you want to deploy the working copy (the staging server) is different from the repository server, then the repository server must be able to reach the deployment server via ssh or I believe rsync.
Received on 2010-03-20 01:07:56 CET