Post svn hook

2014-05-16 Thread Havlovick, Ron
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\directoryfile:///\\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.)

Thank you

Ron

___
This e-mail and any files transmitted with it are proprietary and intended 
solely for the use of the individual or entity to whom they are addressed. If 
you have reason to believe that you have received this e-mail in error, please 
notify the sender and destroy this email and any attached files. Please note 
that any views or opinions presented in this e-mail are solely those of the 
author and do not necessarily represent those of the Curtiss-Wright Corporation 
or any of its subsidiaries.  Documents attached hereto may contain technology 
subject to government export regulations. Recipient is solely responsible for 
ensuring that any re-export, transfer or disclosure of this information is in 
accordance with applicable government export regulations.  The recipient should 
check this e-mail and any attachments for the presence of viruses. 
Curtiss-Wright Corporation and its subsidiaries accept no liability for any 
damage caused by any virus transmitted by this e-mail.

Re: Post svn hook

2014-05-16 Thread Ryan Schmidt

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.