Subversion svnsync
http://sourceforge.net/projects/win32svn/
リポジトリをまるまるバックアップしたいなーと思い。
svnsyncという便利なコマンドがあった。
全リビジョンをまるまるコピーしてくれる。
コピー(ミラー)先作成
C:\>svnadmin create PROJ
初期設定
C:\>echo exit 0 > PROJ\hooks\pre-revprop-change.bat
コピー元とコピー先の設定
C:\>svnsync init file:///PROJ http://対象サーバー/リポジトリ
認証領域:
'USER' のパスワード: ******
認証領域:
ユーザ名: リポジトリユーザー
'リポジトリユーザー' のパスワード: ******
リビジョン 0 の属性をコピーしました。
ミラー処理
C:\>svnsync sync file:///PROJ
リビジョン 1 をコミットしました。
リビジョン 1 の属性をコピーしました。
リビジョン 2 をコミットしました。
リビジョン 2 の属性をコピーしました。
リビジョン 3 をコミットしました。
リビジョン 3 の属性をコピーしました。
リビジョン 4 をコミットしました。
リビジョン 4 の属性をコピーしました。
リビジョン 5 をコミットしました。
。。。。。。。。。。。。。
参考:
http://hnakamur.blogspot.jp/2010/10/windowssvnsyncsubversion.html
http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_svnsync.html
そういえば、
このblogがありました。
Power Tab Editor 音がずれる?
音符にタブ譜な並びをmidiで鳴らしてくれるPower Tab Editor
作ったり拾ったりなタブファイルを演奏させると、
演奏しつつ譜面のタブが流れテクノで、ギター練習にはいいアイテム。
しかしーうちのXP環境だと
チックタクタクタクチック
な感じなメトロノームで、音が鳴った。
テンポがずれずれずれ
タスクマネージャ開いて、プロセスの優先度上げると多少よくなった。
こいつ自体 for Win9x/NT/2000とあるので、あれがあれであれなのだろう。(知らない
仮想マシンの日付、時間を同期させない
仮想マシンの時刻同期機能を無効にする(Virtual PC編)
.VMCファイルをテキストエディタで開いて、
ファイル中央くらいにある
の次に
false
を挿入、保存。
こんな設定ができたとは !
期限付きアプリ使い放題じゃないか
デバッグで使いたかったわけだけども。
ファイル名 setdate.bat な空ファイルを作って
date 2008-1-1
だけを記載して適当な場所に保存。
そのファイルへのショートカットをスタートアップにでも入れておけば、
仮想マシンログオン時に、その日付になる。
いいかも。
-
- -
イメージ終了時の時間がそのまま保持されるから、どっちでもだった(・・
アタッチでデバッグ
VC2005。
起動しているプロセスであれば、
メニューの[デバッグ]→[プロセスにアタッチ]から選択できるけど
起動していない実行ファイルを、起動時にアタッチ
な方法もあった。
レジストリ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
ここに、
アタッチしたいモジュール名のキーを作り、
新規文字列値:debugger
値:vsjitdebugger.exe
として作っておくと
実行されたときに、Just-In-Timeなダイアログが出てデバッガを選択できる。
1. 実行モジュール:AAAからDLL:BBBが呼ばれてて、BBBをデバッグしたい場合
2. AAAをレジストリに追加。
3. デバッグビルドのBBBを置いといて、
4. BBBのプロジェクトを開いておく。
5. AAAを起動後のダイアログで、BBBのプロジェクトを選択する。
な感じ。
AAAを起動元としてデバッグ時、
AAAからBBBが呼ばれるのは追えるんだけど、
AAAから別EXE:CCCが呼ばれ、CCCからBBBが呼ばれた場合にデバッガで追えない場合が。
そんなときに使えた。
利用可能ポートを増やす
http://support.microsoft.com/kb/319502/ja
XPでなんとなく動作確認できた。
デフォルトでは1024-5000を利用可能。
利用可能なポートを増やすには
レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
MaxUserPort (REG_DWORD)を変更。
有効な範囲: 5000-65534 (10 進)
ポートのTIME_WAITの時間を変更するには
レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
TcpTimedWaitDelay (REG_DWORD)を追加。
有効な範囲 :30 〜 300 秒(10 進)
TIME_WAITデフォルトは240秒
可変な個数な引数
void myfunc(int i, char *pc, ...);
ドットを3つ。
可変引数を取得するには〜!
va_arg、va_end、va_startのマクロを利用する。
MSDN:va_arg、va_end、va_start
試しにこんな関数で、
void myfunc(int i, char *pc, ...){ int ikkome,nikome,sankome; va_list list; //値取り出し開始 va_start(list,pc); ikkome = va_arg(list,int); nikome = va_arg(list,int); sankome = va_arg(list,int); //値取り出終了 va_end(list); }
値取り出しを見てみると
va_argは、
ポインタ移動させて、そこにある値を取って来てるだけだ。
全部intで最後の0までみたいな使い方
myfunc(999,"aaa",1,2,3,4,5,6,7,8,9,0);
while(1){ atai = va_arg(list,int); if(atai == 0){ break; } goukei += atai; }
可変個の引数であっても、
引数の個数はマクロではわからないので、指定する必要があるのと
取り出す際の型指定がいるので、何を受け渡されるかを知らないといけない。
printfみたいな書式指定を利用すれば、次のように使えるけども
char cBuf[1024]; va_list list; //値取り出し開始 va_start(list,pc); vsprintf(cBuf,pc,list); //値取り出終了 va_end(list);
myfunc(999,"char:%s int:%d","文字列",1234);
vsprintfよりは
_vsnprintf_s(cBuf, sizeof(cBuf), _TRUNCATE, pc, list);
等を、使うべき。
MSDN:vsnprintf_s、_vsnprintf_s、_vsnprintf_s_l、_vsnwprintf_s、_vsnwprintf_s_l
整形後にバッファサイズを超えてしまった場合、_s関数なのでエラーは返ってくる。
(上記のだと、_TRUNCATE指定でバッファサイズ-1まで格納はされる)
が、
sprintf同様
"char:%s int:%d","文字列",1234
を、
"char:%s int:%s","文字列",1234
とすると落ちる。
><