« windowsでtrac 0.12を試す(その4) | トップページ | excelreportexportプラグインのtrac0.12対応 »

2010年9月 2日 (木)

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 = rev

for 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がリポジトリのパス)

|

« windowsでtrac 0.12を試す(その4) | トップページ | excelreportexportプラグインのtrac0.12対応 »

trac」カテゴリの記事

TracLightning」カテゴリの記事

Subversion」カテゴリの記事

python」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: subversionのコミットログを検索して置換:

« windowsでtrac 0.12を試す(その4) | トップページ | excelreportexportプラグインのtrac0.12対応 »