BugTracker.Net设置问题

代码
# Copyright 2009 Corey Trager
#
 Distributed under the terms of the GNU General Public License

import sys
import subprocess
import re
import urllib
import os

#######################################################################
#
#
 See svn documentation for how to install a hook script.
#
#
######################################################################


#######################################################################
#
#
 !!!   Start of stuff you need to change
#
#
#######################################################################

# BugTracker.NET username and password.  The username needs to match
#
 a setting in Web.config.
btnet_username = "wxy"
btnet_password 
= "wxy"

# The path to the svn executable
#
 下面这一行,不能依照官方模板的格式来,,这一行花了我整整一个晚上
svn_path = "C:\\Program Files\\CollabNet\\Subversion Server\\svn.exe"
# The URL needs to be reachable from the machine where this script is
#
 running.  (I have a virtual directory named "btnet").  Don't
#
 use IIS windows security on svn_hook.aspx.
btnet_url = "http://10.129.250.99/BugTracker/svn_hook.aspx"

# The repository URL. BugTracker.NET web pages will use this URL to 
#
 interact with this repository.  If you need a username and password
#
 to access this repo, you configure that in Web.config.  See
#
 Web.config for more info.
this_repository_url = "http://10.129.250.99:81/svn/TeacherManager"

bDebug 
= True

#######################################################################
#
#
 !!!   End of stuff you need to change
#
#
######################################################################


#######################################################################
#
 for debugging, display info and keep a log
#
######################################################################
def debug_out(s):
    
if (bDebug):
        f 
= open((os.environ["TEMP"]) + '\\btnet_svn_hook_log.txt''a')
        f.write(s)
        f.write(
'\n')
        f.close    
        
print s

repo 
= sys.argv[1]
rev 
= sys.argv[2]
debug_out(repo)
debug_out(rev)

#######################################################################
#
#
 This is where this script keeps track of previously processed
#
 revisions. If you delete this file, this script will send log info
#
 for ALL revisions to BugTracker.NET.  You might want to do that to
#
 reload the svn_revisions and svn_affected_paths tables.
#
#
######################################################################

prev_revision_file 
= repo + "\\hooks\\btnet_prev_revision.txt"
debug_out(prev_revision_file)


#######################################################################
#
 Get the log info from svn
#
 If we've already fetched info in the past, just fetch the info
#
 since the last revision
#
######################################################################

# get the previous revision
try:
    most_recent_revision_file 
= open(prev_revision_file,"r")
    prev_revision 
= most_recent_revision_file.read(40)
    most_recent_revision_file.close() 
except:
    prev_revision 
= ""

debug_out(
"prev_revision")
debug_out(prev_revision)

# just since previously processed revision

file_url 
= " file:///" + repo.replace("\\","/")
subcommand 
= " log --verbose --xml "

if prev_revision != "":
    cmd 
= svn_path + subcommand + " -r " + prev_revision + ":" + rev + file_url
else:
    cmd 
= svn_path + subcommand + file_url

debug_out(cmd)

process 
= subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
debug_out(
"log stdout:")
log_string 
= process.stdout.read()
debug_out(log_string)
debug_out(
"stderr:")
debug_out(process.stderr.read())

# remember that we already processed this revision
most_recent_revision_file = open(prev_revision_file,"w")
most_recent_revision_file.write(rev)
most_recent_revision_file.close()


# get the first revision in the log string and save it to the file.

#######################################################################
#
 send an http request to BugTracker.NET, the svn_hook.aspx page.
#
######################################################################

params 
= urllib.urlencode({
    
'svn_log': log_string,
    
'repo': this_repository_url,
    
'username': btnet_username,
    
'password': btnet_password})

response 
= urllib.urlopen(btnet_url, params)
data 
= response.read()
debug_out(data)

 

posted @ 2009-12-02 00:17  shiningrise  阅读(374)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css