import osimport reimport urllib2import jsonfrom scriptCommon import catchPathfrom scriptCommon import runAndCaptureissueNumberRe = re.compile( r'(.*?)#([0-9]*)([^0-9]?.*)' )rootPath = os.path.join( catchPath, 'include/' )versionPath = os.path.join( rootPath, "internal/catch_version.hpp" )hashes = runAndCapture( ['git', 'log', '-2', '--format="%H"', versionPath] )lines = runAndCapture( ['git', 'log', hashes[1] + ".." + hashes[0], catchPath] )prevLine = ""messages = []dates = []issues = {}def getIssueTitle( issueNumber ):try:s = urllib2.urlopen("https://api.github.com/repos/philsquared/catch/issues/" + issueNumber ).read()except e:return "#HTTP Error#"try:j = json.loads( s )return j["title"]except e:return "#JSON Error#"for line in lines:if line.startswith( "commit"):passelif line.startswith( "Author:"):passelif line.startswith( "Date:"):dates.append( line[5:].lstrip() )passelif line == "" and prevLine == "":passelse:prevLine = linematch = issueNumberRe.match( line )line2 = ""while match:issueNumber = match.group(2)issue = '#{0} ("{1}")'.format( issueNumber, getIssueTitle( issueNumber ) )line2 = line2 + match.group(1) + issuematch = issueNumberRe.match( match.group(3) )if line2 == "":messages.append( line )else:messages.append( line2 )print "All changes between {0} and {1}:\n".format( dates[-1], dates[0] )for line in messages:print line
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。