pre-commit hook for subversion

2,194 views
Skip to first unread message

tito -

unread,
Nov 12, 2008, 5:27:15 AM11/12/08
to revie...@googlegroups.com
Hi everyone,

At my company (netasq.com), we've work to use reviewboard with
pre-commit hook in subversion.
A developper can now post a review instead of real commiting his
changes. Example:

-------------------------------------------------------------------------------
10:40:38 tito@quark reviewboard $ svn commit -m 'test review
(draftreview)' README
Envoi README
Transmission des données .svn: Échec de la propagation (commit), détails :
svn: Commit blocked by pre-commit hook (exit code 1) with output:
Review request #34 posted.

https://************/reviewboard/r/34
-------------------------------------------------------------------------------

Installation:

1/ To make it work, you need to copy
* postreview.py (a modified version of contrib/tools/post-review.py,
to make it work with custom diff)
* pre-commit-hook-reviewboard.py
in your hooks subversion directory, and make them executable.

2/ Open and edit configuration in pre-commit-hook-reviewboard.py

3/ Copy/paste content in your pre-commit subversion hook :
# Reviewbord pre-commit
REVIEWBOARD_HOOK=`dirname $0`/pre-commit-hook-reviewboard.py
$REVIEWBOARD_HOOK "$REPOS" "$TXN">> /tmp/reviewboard_commit.log
RET=$?
# 0 => no review
# <0 => error
# 1 => review posted
if [ $RET -lt 0 ]; then
echo >&2
echo "Review asked, but we got an error." >&2
echo "Please report this error to administrator, thanks !" >&2
echo >&2
exit 1
fi

if [ $RET -eq 1 ]; then
exit 1
fi

I known it's not a perfect solution, but maybe the actual code can
help somebody :)

Regards,

Mathieu

postreview.py
pre-commit-hook-reviewboard.py

cristian607

unread,
Nov 18, 2008, 10:32:14 AM11/18/08
to reviewboard
Hello,

Thank you for sharing this information. We are starting to use review
board, and I find the mechanism you described very interesting. I will
try to make it work on our windows installation of review board.

I have a question though. Why do you say "I known it's not a perfect
solution, but maybe the actual code can help somebody :) ". What are
the drawbacks that you see in this method? I dont see any.

Best regards,
CS.
> postreview.py
> 31KViewDownload
>
> pre-commit-hook-reviewboard.py
> 8KViewDownload

Mathieu Virbel

unread,
Nov 19, 2008, 4:09:25 AM11/19/08
to reviewboard
Just in this solution :
- configuration are inside python files,
- custom hack are made to display a different url for user instead of
url used by reviewboard
- python script are not in the same repo as reviewboard, this is
another dependice..

Regards,

Mathieu

Secita Jose

unread,
Jun 11, 2013, 11:24:58 AM6/11/13
to revie...@googlegroups.com, txp...@gmail.com
Mathieu HI,
 
Do you have a lter version of these hooks that works with the latest Review Board.
 
Thanks,
Secita

MUKUL GARG

unread,
Aug 5, 2013, 7:28:08 AM8/5/13
to revie...@googlegroups.com, txp...@gmail.com
hi,

after following these steps below error occured. please suggest what to do.

[root@reviewboard branches]# svn ci -m ""
Sending        AWF_2.0.1b14_readme.txt
Transmitting file data .svn: Commit failed (details follow):
svn: Commit blocked by pre-commit hook (exit code 1) with output:
Traceback (most recent call last):
  File "/home/cmteam/csvn/data/repositories/product_java/hooks/pre-commit-hook-reviewboard.py", line 60, in <module>
    import postreview
  File "/home/cmteam/csvn/data/repositories/product_java/hooks/postreview.py", line 8, in <module>
    import simplejson
ImportError: No module named simplejson

[root@reviewboard branches]#

Regards,
Mukul Garg

David Trowbridge

unread,
Aug 5, 2013, 12:39:16 PM8/5/13
to revie...@googlegroups.com, revie...@googlegroups.com, txp...@gmail.com
Mukul,

Looks like you need to install the simplejson module. You can do that using easy_install.
-David


--
Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/
Happy user? Let us know at http://www.reviewboard.org/users/
-~----------~----~----~----~------~----~------~--~---
To unsubscribe from this group, send email to reviewboard...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
---
You received this message because you are subscribed to the Google Groups "reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

MUKUL GARG

unread,
Aug 6, 2013, 4:57:45 AM8/6/13
to revie...@googlegroups.com, txp...@gmail.com
Hi David,

after installing simplejson below error occured.

[root@reviewboard Custom]# easy_install simplejson
Searching for simplejson
Best match: simplejson 3.3.0
Processing simplejson-3.3.0-py2.6-linux-i686.egg
simplejson 3.3.0 is already the active version in easy-install.pth
Using /usr/lib/python2.6/site-packages/simplejson-3.3.0-py2.6-linux-i686.egg
Processing dependencies for simplejson
Finished processing dependencies for simplejson


[root@reviewboard Custom]# svn ci -m "initial commit review"
Authentication realm: <https://192.168.4.211:443> CollabNet Subversion Repository
Password for 'mgarg':
Sending        build/build.properties
Transmitting file data .svn: Commit failed (details follow):
svn: Commit blocked by pre-commit hook (exit code 1) with output:
Traceback (most recent call last):
  File "/opt/csvn/data/repositories/product_java/hooks/pre-commit-hook-reviewboard.py", line 60, in ?
    import postreview
  File "/opt/csvn/data/repositories/product_java/hooks/postreview.py", line 8, in ?
    import simplejson
  File "/usr/lib/python2.4/site-packages/simplejson-2.6.2-py2.4-linux-i686.egg/simplejson/__init__.py", line 112, in ?
    from encoder import JSONEncoder, JSONEncoderForHTML
  File "/usr/lib/python2.4/site-packages/simplejson-2.6.2-py2.4-linux-i686.egg/simplejson/encoder.py", line 400
    if (not _bigint_as_string or
     ^
SyntaxError: invalid syntax

David Trowbridge

unread,
Aug 6, 2013, 7:05:03 PM8/6/13
to reviewboard, txp...@gmail.com
Mukul,

I didn't realize that you were on python 2.4. Many packages, including simplejson, require at least python 2.5.

-David
Reply all
Reply to author
Forward
0 new messages