subversionのコミットログを検索して置換
subversionのコミットログにメーラのメッセージを
ちょっと加工してのせていたのですが、送信日時が
「xx年xx月xx日xx曜日 xx:xx…」となってました。
これの「xx曜日 」が前から気になっていて、
ついに削ることにしました。
それで以前作ったpythonのプログラムをモディファイし、
コミットログを取り出して文字列を見つけたら置換して書き込むのを
繰り返すものを作りました。
以下がそれです。無理やりなところや無意味な宣言もありますが。
# -*- coding: utf-8 -*-
import os
import time
import sys, string
from svn import core, fs, delta, repos
import codecs#argvs[1]:repository path
argvs = sys.argv #コマンドライン引数リスト
argc = len(argvs) #引数の個数
if (argc != 2): #2でなければ出る
exit(1)path = argvs[1]
path = core.svn_path_canonicalize(path)
repos_ptr = repos.open(path)
fs_ptr = repos.fs(repos_ptr)rev = fs.youngest_rev(fs_ptr)
start_rev = 1
end_rev = revfor current_rev in range(start_rev,end_rev+1):
#get comment log
log = fs.revision_prop(fs_ptr, current_rev, core.SVN_PROP_REVISION_LOG) or ''
if log.count('曜日 '):
print "rev:%d log change" % current_rev
log = log.replace('月曜日 ', '')
log = log.replace('火曜日 ', '')
log = log.replace('水曜日 ', '')
log = log.replace('木曜日 ', '')
log = log.replace('金曜日 ', '')
log = log.replace('土曜日 ', '')
log = log.replace('日曜日 ', '')
#set comment log
fs.change_rev_prop(fs_ptr, current_rev, core.SVN_PROP_REVISION_LOG ,log)
UTF-8で保存して、editlog.pyのように名前をつけたとすると
python editlog.py C:\TracLight\projects\svn\aaa
でaaaというリポジトリのコメント置換を行います。
(C:\TracLight\projects\svn\aaaがリポジトリのパス)
| 固定リンク
| コメント (0)
| トラックバック (0)