Hi JJ.
I'm trying to understand and reproduce what you are seeing, and I can't.
There seem to be several things going on, some of which are probably to
do with TortoiseSVN and some to do with the Subversion libraries.
What I think you're saying at the end of this mail is, with svn 1.5.0:
* your "pre-revprop-change" hook script returns failure;
* "svn propdel testprop REPO_URL --revprop -r HEAD" says it succeeded,
but actually didn't delete the property.
When I tried this with a little recipe script that I am attaching now,
it works as expected.
One difference between my script and your situation is that you appear
to be using HTTP whereas my script uses local "file://" access to the
repository. Maybe that makes the difference.
I'm assuming that the "propdel" and "pl" commands that you showed really
were run one after the other as shown, and that your hook scripts are
simple. (Can you show us your pre-revprop-change script? It doesn't take
notice of the "action" parameter, does it? You don't have more than one
"pre-revprop-change.*" script, or a "post-revprop-change.*" script that
changes anything, do you?)
Can you simplify your lowes-level bug report into a self-contained
script that creates a repository, creates a hook script, and runs the
commands?
Thanks.
- Julian
On Fri, 2008-06-27 at 14:03 -0500, J J wrote:
> I'm forwarding this to subversion dev as well. See the end of this
> email for what *appears* to be a bug in Subversion 1.5.
>
> On Fri, Jun 27, 2008 at 1:48 PM, J J <eggsgloriouseggs_at_gmail.com> wrote:
> >>>>>>>>>
> >>>>>>>>> My repository has a pre-revprop-change hook in place that prevents
> >>>>>>>>> all
> >>>>>>>>> modifications to revision properties. It works fine (i.e. prevents
> >>>>>>>>> the action and displays the error message) when I try to edit or add
> >>>>>>>>> revision properties via TortoiseSVN. However when I try to remove a
> >>>>>>>>> property it asks me for a commit message (which should be required)
> >>>>>>>>> and then just refreshes the Properties window without any change.
> >>>>>>>>> No
> >>>>>>>>> error message is displayed.
> >>>>>>>>>
> >>>>>>>>> Is this a known issue?
> >>>>>>>>
> >>>>>>>> I can't reproduce this here. If I set the pre-revprop-change hook
> >>>>>>>> script
> >>>>>>>> to
> >>>>>>>> return -1 (indicating an error), I get a nice messagebox showing me
> >>>>>>>> that
> >>>>>>>> the
> >>>>>>>> removal of the revision property failed and the error message piped
> >>>>>>>> to
> >>>>>>>> stderr by the script.
> >>>>>>>>
> >>>>>>>> Do you have more information about your setup/script/versions? And I
> >>>>>>>> assume
> >>>>>>>> you used the log dialog, right-click, "Show revision properties" for
> >>>>>>>> this?
> >>>>>>>
> >>>>>>> I get two different behaviors depending on how I do it.
> >>>>>>>
> >>>>>>> 1) Right click > Show Log. Right click on revision > Show revision
> >>>>>>> properties. Highlight property and click Remove. "Enter Log Message"
> >>>>>>> dialog appears. Click OK. Then a dialog titled "Microsoft Visual C++
> >>>>>>> Runtime Library" appears with the following text.
> >>>>>>>
> >>>>>>> Runtime Error!
> >>>>>>>
> >>>>>>> Program C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
> >>>>>>>
> >>>>>>> This application has requested the Runtime to terminate it in an
> >>>>>>> unusual
> >>>>>>> way.
> >>>>>>> Please contact the application's support team for more information.
> >>>>>>>
> >>>>>>> Everything is unresponsive after this, and eventually a
> >>>>>>> "TortoiseProc.exe" dialog appears saying "TortoiseProc.exe has
> >>>>>>> encountered a problem and needs to close. We are sorry for the
> >>>>>>> inconvenience." I can click Debug or Close.
> >>>>>>>
> >>>>>>> 2) Within Repository Browser right click on a folder and select Show
> >>>>>>> revision properties. Highlight property. Click Remove. "Enter Log
> >>>>>>> Message" appears. Click OK. "Setting properties" progress dialog
> >>>>>>> appears briefly. Then Properties window refreshes with all properties
> >>>>>>> still present and no error.
> >>>>>>
> >>>>>> Ahem: there is no menu "Show revision properties" in the repository
> >>>>>> browser,
> >>>>>> only "Show properties". And those are the normal properties, not
> >>>>>> revision
> >>>>>> properties. So your hook script can't interfere with changes there.
> >>>>>
> >>>>> Well I don't know what is going on then, because I definitely have a
> >>>>> Show revision properties window there. See the attached image.
> >>>>
> >>>> Ups, sorry. I completely forgot that the menu is shown for the repository
> >>>> root.
> >>>>
> >>>> But I still get the error message dialog here. I've also treid your
> >>>> script,
> >>>> but used 'exit -1', still I get the error dialog.
> >>>>
> >>>> Even if I return 1 instead of -1 I get the error dialog.
> >>>>
> >>>> Are you sure your hook script is even run on the server?
> >>>
> >>> Yes I'm sure it's running because it works for both edit and add, just
> >>> not for delete. Since we're seeing different behavior, I'm going to
> >>> uninstall and reinstall TortoiseSVN one more time and see if that
> >>> changes anything.
> >>
> >> That won't help you much.
> >> But you could try the svn command line client (either from open.collab.net,
> >> or from http://nightlybuilds.tortoisesvn.net/latest/win32/). If you use the
> >> one from our nightly build server, you have to copy it into the TSVN
> >> installation path for it to work.
> >>
> >> Then use
> >> svn propdel propertyname url --revprop -r XXX
> >>
> >
> > Uninstall and reinstall didn't help, as you said.
> >
> > Running propdel from the commandline appeared to succeed, but actually didn't.
> >
> > C:\temp>svn --version
> > svn, version 1.5.0 (r31699)
> > compiled Jun 23 2008, 12:59:48
> >
> > Copyright (C) 2000-2008 CollabNet.
> > Subversion is open source software, see http://subversion.tigris.org/
> > This product includes software developed by CollabNet (http://www.Collab.Net/).
> >
> > The following repository access (RA) modules are available:
> >
> > * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
> > - handles 'http' scheme
> > - handles 'https' scheme
> > * ra_svn : Module for accessing a repository using the svn network protocol.
> > - with Cyrus SASL authentication
> > - handles 'svn' scheme
> > * ra_local : Module for accessing a repository on local disk.
> > - handles 'file' scheme
> >
> > C:\temp>svn propdel svn:log REPO_URL --revprop -r HEAD
> > property 'svn:log' deleted from repository revision 2796
> >
> > C:\temp>svn pl -v --revprop -r HEAD REPO_URL
> > Unversioned properties on revision 2796:
> > svn:log :
> > svn:author : USER
> > svn:date : 2008-06-27T16:27:56.154502Z
> >
> > ## Propset below just to prove the hook is working.
> >
> > C:\temp>svn propset testprop testval REPO_URL --revprop -r HEAD
> > svn: DAV request failed; it's possible that the repository's pre-revprop-change
> > hook either failed or is non-existent
> > svn: At least one property change failed; repository is unchanged
> > svn: Error setting property 'testprop':
> > Revprop change blocked by pre-revprop-change hook (exit code 1) with output:
> > Changing revision properties is prohibited by company policy
> >
> > I also tried temporarily disabling the hook so I could set property
> > called testprop. Then I reanbled the hook to see if I could remove
> > it, to make sure there wasn't some special behavor for svn:*
> > properties. I got the same results.
> >
> > C:\temp>svn propdel testprop REPO_URL --revprop -r HEAD
> > property 'testprop' deleted from repository revision 2796
> >
> > C:\temp>svn pl -v --revprop -r HEAD REPO_URL
> > Unversioned properties on revision 2796:
> > testprop : testval
> > svn:log :
> > svn:author : USER
> > svn:date : 2008-06-27T16:27:56.154502Z
> >
> > Is this a bug with Subversion itself? I'm cross-posting to the
> > Subversion users list now.
> >
> > Justin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-07-02 19:26:14 CEST