On May 15, 2014, at 17:51, Havlovick, Ron wrote:

> I am a newbie and I am more than a bit confused.
> Perhaps ya'll could tell me something. (Other than to …..)
>  
> I am on Windows using tortoise svn.
>  
> Here's what I want to do, and I am trying to figure out exactly how to do it.
> Please bear with me:
>  
> When I commit a file into the repository, I want the entire repository 
> directory(folder) to be checked out to a "golden directory(folder)".
>         I do not care if it over writes any existing file in that golden 
> directory(folder).
> Create an empty text file in the golden directory(folder).
> In the empty text file write to it the revision number of the repository 
> directory(folder) and the date of the last commit (basically the date stamp 
> of the repository directory(folder).
>  
> I can write a perl script to basically copy files from one directory to 
> another (golden).
> read the data stamp of the directory(folder).  
> ctime(stat($directory….)->my_time)
>  
> What has got me baffled is:
> How to get the revision number of the repository directory(folder). (Is this 
> just a regular folder on the server and I just have the path 
> \\server\directory  wrong)
> How to get the date stamp of that repository directory(folder).  (This could 
> be if I have the path wrong then I am trying to read statistics on nothing.)
>  
> Assuming I have the perl script correct, where do I put the perl script in 
> what post_hook or post_commit?
> Do I call the perl script within the post_commit {  function or what…
> And where do I put the combined perl script post_hook script? (In the svn 
> directory on my PC or on the server)
>  
> When I run the perl script on a local directory via the command prompt, 
> everything works. (But I am not pointing to the repository, just a local 
> c:\folder.)

Look in the repository directory on the server. You should see among other 
things a "hooks" directory, containing sample scripts for each of the events 
for which Subversion can call hook scripts. These sample scripts have names 
ending in ".tmpl". They're written in Bash, which is for UNIX systems and won't 
usually work on Windows; for Windows, you'd need to write a batch script or a 
compiled executable. You'd place this script in the hooks directory, named the 
same as the relevant sample script, except without the ".tmpl" extension and 
with an extension appropriate for the type of file (e.g. "post-commit.bat" for 
a batch script, "post-commit.exe" for a compiled executable). Some other 
extensions are recognized by Subversion server on Windows as well, although I 
don't believe .pl is one of them, so you should probably write a small batch 
script or exe that runs your perl script.

The comments in the sample scripts tell you what arguments Subversion server 
supplies to the hook script when it runs it. For example, the post-commit 
script is given the repository path on disk as the first argument and the 
just-committed revision number as the second argument. So in Bash on UNIX, the 
repository path would be available as "$1" and the revision as "$2"; I don't 
know how that works in Windows batch files but there's probably a similar way 
to do that. So in Bash on UNIX, I could use that information to get the date of 
the commit by running "svnlook date $1 -r $2".

Reply via email to