[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Errors with mtime-retaining import script: pre-revprop-change issue?

From: Alexander Shenkin <subversion_at_shenkin.org>
Date: Wed, 25 Jan 2012 11:15:29 -0500

Thanks everyone for your replies. I ended up finding a solution for a
windows-executable pre-revprop-change.bat script here:

http://stackoverflow.com/questions/6155/common-types-of-subversion-hooks/68850#68850

now to lobby the dev team to add mtime-handling options in future
versions! Unfortunately, I don't see it in the plans for version 1.8,
even though it was "1.8-consider" in the tigris bug tracker...

alex

On 1/25/2012 11:00 AM, Giulio Troccoli wrote:
>
>
> On 25/01/12 15:09, Alexander Shenkin wrote:
>> Hello,
>>
>> I'm using the svn import script by Oliver Betz to retain file mtime
>> upon initial import
>> (http://svn.haxx.se/users/archive-2006-10/1345.shtml), but i'm
>> getting some errors. I'm hoping someone might be able to help me out.
>>
>> when i run the script, i get the following error:
>>
>> $ perl importWithMtime.pl
>> svn propset svn:date 2001-10-29T18:34:10.000000Z --revprop -r HEAD
>> svn: E175002: DAV request failed; it's possible that the
>> repository's pre-revprop-change hook either failed or is
>> non-existent
>> svn: E175008: At least one property change failed; repository is
>> unchanged
>> svn: E175002: Error setting property 'date':
>> Repository has not been enabled to accept revision propchanges;
>> ask the administrator to create a pre-revprop-change hook
>>
>> I do have a pre-revprop-change.tmpl hook in the repository. It
>> contains the code below. I'm using VisualSVN 2.5.2 on a Windows 7
>> x64 machine with Cygwin Perl and TortoiseSVN. Any help would be
>> greatly appreciated!
>>
>> Thanks,
>> Alex
>>
>>
>> -------------------
>>
>> $ cat pre-revprop-change.tmpl
>> #!/bin/sh
>>
>> # PRE-REVPROP-CHANGE HOOK
>> #
>> # The pre-revprop-change hook is invoked before a revision property
>> # is added, modified or deleted. Subversion runs this hook by invoking
>> # a program (script, executable, binary, etc.) named
>> 'pre-revprop-change'
>> # (for which this file is a template), with the following ordered
>> # arguments:
>> #
>> # [1] REPOS-PATH (the path to this repository)
>> # [2] REV (the revision being tweaked)
>> # [3] USER (the username of the person tweaking the property)
>> # [4] PROPNAME (the property being set on the revision)
>> # [5] ACTION (the property is being 'A'dded, 'M'odified, or
>> 'D'eleted)
>> #
>> # [STDIN] PROPVAL ** the new property value is passed via STDIN.
>> #
>> # If the hook program exits with success, the propchange happens; but
>> # if it exits with failure (non-zero), the propchange doesn't happen.
>> # The hook program can use the 'svnlook' utility to examine the
>> # existing value of the revision property.
>> #
>> # WARNING: unlike other hooks, this hook MUST exist for revision
>> # properties to be changed. If the hook does not exist, Subversion
>> # will behave as if the hook were present, but failed. The reason
>> # for this is that revision properties are UNVERSIONED, meaning that
>> # a successful propchange is destructive; the old value is gone
>> # forever. We recommend the hook back up the old value somewhere.
>> #
>> # On a Unix system, the normal procedure is to have 'pre-revprop-change'
>> # invoke other programs to do the real work, though it may do the
>> # work itself too.
>> #
>> # Note that 'pre-revprop-change' must be executable by the user(s)
>> who will
>> # invoke it (typically the user httpd runs as), and that user must
>> # have filesystem-level permission to access the repository.
>> #
>> # On a Windows system, you should name the hook program
>> # 'pre-revprop-change.bat' or 'pre-revprop-change.exe',
>> # but the basic idea is the same.
>> #
>> # The hook program typically does not inherit the environment of
>> # its parent process. For example, a common problem is for the
>> # PATH environment variable to not be set to its usual value, so
>> # that subprograms fail to launch unless invoked via absolute path.
>> # If you're having unexpected problems with a hook program, the
>> # culprit may be unusual (or missing) environment variables.
>> #
>> # Here is an example hook script, for a Unix /bin/sh interpreter.
>> # For more examples and pre-written hooks, see those in
>> # the Subversion repository at
>> #
>> http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
>> # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
>>
>>
>> REPOS="$1"
>> REV="$2"
>> USER="$3"
>> PROPNAME="$4"
>> ACTION="$5"
>>
>> if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
>>
>> echo "Changing revision properties other than svn:log is prohibited" >&2
>> exit 1
>
>
> The hook has to be called pre-revprop-change on *nix systems and be
> executable or pre-revprop-change.bat on Windows. So, no .tmpl extension.
Received on 2012-01-25 17:16:18 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.