0

I'm trying to create a hook script for subversion on windows, I have a bat file that calls my python script but getting the log/comments seems to be beyond me.

I have pysvn installed and can get the transaction like this:

 repos_path = sys.argv[1]
 transaction_name = sys.argv[2]
 transaction = pysvn.Transaction( repos_path, transaction_name)

I can also list what has changed:

transaction.changed(0)

What I cannot figure out is how to get the log/comment for the transaction. I realize that in pysvn there is a command similar to:

transaction.propget(propname,path)

But cannot for the life of me get it to return anything. I assume propname should be "svn:log", for path I have tried the fiel name, the repo path, null but all get are errors.

AT the end of the day I need to validate the comment, there will be matching against external data that will evolve, hence why I want to do it in python rather than the bat file, plus it may move to a linux server later.

AM I missing something obvious? How do I get the log/comment as a string?

Thanks, Chris.

1 Answer 1

1

After a great deal of trial and error and better searching after a day of frustration I found that I need to use the revision property, not a straight property, for a given transaction this will return the user submitted comment:

transaction.revpropget("svn:log")

There are other useful properties, this will return a list of all revision properties:

transaction.revproplist()

for example:

{'svn:log': 'qqqqqqq', 'svn:txn-client-compat-version': '1.9.7', 'svn:txn-user-agent': 'SVN/1.9.7 (x64-microsoft-windows) TortoiseSVN-1.9.7.27907', 'svn:author': 'harry', 'svn:date': '2017-12-14T16:13:52.361605Z'}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.