Personally I run the svnlook changed command on the txn. This allows us to
see exactly what is being done on the changed files. If there is a delete
you can exit out and kill the commit. Here is the example written in
look_cmd = "svnlook changed -t %s %s" % (txn, path)
for file in os.popen(look_cmd).readlines():
line = file.splitlines()).
changedFile = str(line))).
changed = changedFile[6:-2] #This will show you what file is being
action = changedFile[2:3] #This will show you what action is
being taken on the file. This includes: add, delete, and update.
I later on block changes and deletes made only to tag directories.
From: Jan Keirse <jan.keirse_at_tvh.be>
To: "users_at_subversion.apache.org" <users_at_subversion.apache.org>
Date: 02/21/2011 09:07 AM
Subject: Betr.: RE: Hook help.
"Neson Maxmelbin (RBEI/EMT5)" <Maxmelbin.Neson_at_in.bosch.com> schreef op
> > I am trying to write a hook to prevent deletion of elements through a
> pre-commit hook.
> >>If you're not using the bindings you'd want svnlook, probably svnlook
> >>But, do you really want such a hook? If a user has permission to add
> stuff they should be allowed to also unwind any mistakes, providing it's
> not a tag or something.
> Max : What do you mean by bindings?
> And also svnlook seems to give info about already commited stuff..
> Svnlook changed gives me info abt previous commit... (unless I got
> everything wrong .. :-) )
> Yes, I want to have deletion control on atleast one repo.
The pre-commit hook will get two input parameters. The first is the
repostiory path, the second is the transaciton ID.
You need to pass this to svnlook:
svnlook diff c:\somerepository --transaction sometransactionId
This will allow you to watch the commit that's begin executed.
Have a look at the manual:
http://svnbook.red-bean.com/nightly/en/index.html In this case you need
but if you have not yet read the entire manual, you really should, it
will save you a lot of time and headaches!**** DISCLAIMER ****
"This message is delivered to all addressees subject to the conditions
set forth in the attached disclaimer, which is an integral part of this
CONFIDENTIALITY NOTICE: This email message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient or a person responsible for delivering this message to an intended recipient, please contact the sender by reply email and destroy all copies of the original message.
Received on 2011-02-21 21:05:54 CET