On Dec 14, 2009, at 18:33, Brendan Farr-Gaynor wrote: > SVN newbie here. I'm wondering if there is anyone out there running running > Subversion on OS X Server (10.6)?
Most assuredly. > I'm trying to use Subversion as a team web development solution and need to > have committed files moved to our central apache web root for web browsing. I > see this is a popular thing that people are looking for, but I'm having > trouble getting my hook scripts to run and I'm sure it's got to be a > permissions issue or something. > > Based on some tutorials I've found in different places I've done the > following: > > I created a C program in XCode similar to this (update_svn): > > #include <stddef.h> > #include <stdlib.h> > #include <unistd.h> > int main(void) > { > execl("/usr/bin/svn", "svn", "update", "--username", > "YOURSVNUSER", "--password", "YOURSVNPASSWD", > "/Library/WebServer/", (const char *) NULL); > return(EXIT_FAILURE); > } I have no reason to believe it won't work, but why a C program, out of curiosity? Wouldn't a 1-line shell script have done the trick? That's what I've used in the past. > Created a post-commit script in my /hooks directory that has this: > > #/bin/sh > /Library/WebServer/update_svn > > Then modified the permissions as such: > > $ chown www /Library/WebServer/update_svn > $ chmod +s /Library/WebServer/update_svn > > $ chmod +s /myrepo/project/hooks/post-commit Why +s? I wouldn't expect you to need that. What you do need is +x. Have you added that already? > However, it doesn't seem to run (files aren't moved) and I'm perplexed as to > how to debug this, is there a log file somewhere? I'm not seeing anything in > /var/log/ for svn? There is no log. Write one yourself if you want one, e.g. $ cat post-commit #/bin/sh /Library/WebServer/update_svn 2>>/var/log/update_svn.log > Does the above look right? Am I missing something? Has anyone out there had > to do this on an OS X server that could provide some guidance? There should be nothing particularly unique about Mac OS X in this regard; it should function just like any other UNIX-like OS. > I tried running the file from the shell as root (update_svn binary) and it > reports that it 'Skipped: /Library/WebServer/' what does that mean? It means it doesn't think /Library/WebServer is a working copy. Is it?