On Mon, Jun 12, 2017 at 7:59 PM, John D. Ament <johndam...@apache.org> wrote: > On Mon, Jun 12, 2017 at 7:55 PM Sam Ruby <ru...@intertwingly.net> wrote: > >> On Mon, Jun 12, 2017 at 7:44 PM, <johndam...@apache.org> wrote: >> > --- >> > lib/whimsy/asf/svn.rb | 11 +++++++++++ >> > www/roster/public_podlings.rb | 7 ++++++- >> > 2 files changed, 17 insertions(+), 1 deletion(-) >> > >> > diff --git a/lib/whimsy/asf/svn.rb b/lib/whimsy/asf/svn.rb >> > index 134609c..64a596e 100644 >> > --- a/lib/whimsy/asf/svn.rb >> > +++ b/lib/whimsy/asf/svn.rb >> > @@ -141,6 +141,17 @@ module ASF >> > return revision, content >> > end >> > >> > + def self.updateSimple(path) >> > + cmd = ['svn', 'update', path, '--non-interactive'] >> >> This will undoubtedly fail as the $apache::user (www-data) does not >> have write access to those directories. >> > > Err so should we run cron as whimsysvn ?
That's indeed possible, but then it probably can't write to the web directory. Also from reading, bad things can happen if two processes are updating the same directory at the same time. This can be fixed via file locking. My gitpubsub logic solves this by running the puppet agent itself, and puppet ensures that there is only one agent running at one time. I learned all this the hard way on the original whimsy_vm where directories often got 'wedged' and needed manual intervention for cleanup. That's why I instituted a hard separation between what can be updated in each process. - Sam Ruby