ももらぼっ!にっき


2007年03月19日 [長年日記]

_ とりあえず。

にっきが見られなくなってる問題を対処しておきました。

_ んで。

相変わらず仕事が忙しいようで、またもやココを放置しちゃってます。 仕事が落ち着いたら作りかけのアレやら、コレやらの開発を再開したいので、気長〜〜にお待ちくださいませ。

…結局時間作れなくて、caltをソフコンに応募できなかったしな…。

あれ?もう結果も出てるんだっけ?

_ VSSで、指定したラベルのファイル一式を取得するバッチ

VSSってコマンドラインで使うためのツール(ss.exe)があるんですね。 早速、今まで手動でやってて面倒だった、指定したラベルのファイル一式を取得するバッチを書いてみました。

ホントはあるラベルからあるラベルまでの間に修正されたファイルのみを取得するバッチにしたかったんですが、時間が無くてここまで。 このバッチを2回流した結果をDiDiで見れば差分が作れるのでまずはよいかなーと。

@ECHO OFF
SETLOCAL

REM 引数の解析
SET PROJECT=%1
SHIFT
IF "%PROJECT%" == "" GOTO :ERROR
SET LABEL=%1
IF NOT "%LABEL%" == "" (
  SET LABELOPT=-Vl%LABEL%
) ELSE (
  FOR /F "usebackq" %%I IN (`TIME /T`) DO SET NOWTIME=%%I
)
IF "%NOWTIME%" == "" (
  SET DIR=%LABEL%
) ELSE (
  SET DIR=%DATE:/=%_%NOWTIME::=%
)

REM VSSから指定した時点のソースを取得する。
REM いったんディレクトリを削除しちゃうので注意。
REM ss.exe Getのオプション説明
REM   -I-N 問合せに「N」で回答する。
REM        規定のフォルダとして設定するか聞かれるのがウザいので。
REM   -GTM ファイルの日付を、ファイルが最後に変更された日にする。
REM        前回との差分を調べるのに都合が良いから。
REM   -O-  エラー出力のみ表示する。
REM        取得したファイル名はDIRすれば分かるので。
REM   -W   ファイルを読み書き可能にする。
REM        VSSでその後も管理したいわけではないので。
IF EXIST %DIR%\CON RMDIR /S /Q %DIR%
MKDIR %DIR%
ss.exe Get %PROJECT% -I-N -GTM -O- -W %LABELOPT% -GL%DIR%
IF ERRORLEVEL 1 RMDIR /S /Q %DIR%

REM VSSが生成する隠しファイルは必要ないので消す。
DEL /S /A:H /F vssver2.scc > NUL

GOTO :EXIT

:ERROR
  ECHO エラー:引数が足りないですよ。
  ECHO usage: GetVss.bat Project [Label]
  ECHO  Project: プロジェクト名
  ECHO  Label: 取得するラベル(省略時は最新を取得)

:EXIT
ENDLOCAL

2007年03月20日 [長年日記]

_ あ。今気付いたけど。

昨日(…って言っても書いたのはついさっきだけど)は、一発目の更新でしたね。

…明けましておめでとーございまするm(_ _)m


2007年03月21日 [長年日記]

_ DirDiff Ver.0.23 リリース。

仕事でまた使うようになって、気になる点を修正しちゃってみました。

主な修正箇所は以下の2点です。

「サーバ側」「ローカル側」のフォルダを開けるようにしました。

現在比較しているフォルダが見たくなることが多かったので、 「サーバ側」「ローカル側」のラベルをクリックするとそのフォルダを開くようにしました。 地味だけど結構便利な感じです。

「指定したフォルダにコピー」機能を追加しました。

前回提出したものから今回までの間で、修正・追加されたものだけを提供する、なんてことをよくやらされます。 ファイルが一フォルダにまとまっていればまだ楽なんですが、複雑なディレクトリ構造になっていると一つ一つ見るのは結構苦労します。 かといって、Diff系のツール(旧版のDiDi含む)を使っても、差分は分かってもその差分だけをひとまとめにすることができません。(同期はとれても、「変更のあったファイルのみ」を集めることができるツールってあまり見たことがないですね)

ということで、DiDiで選択したファイルだけをそのままのディレクトリ構造で好きなフォルダにコピーできるようにしました。 これで、差分だけを提出する、なんてことも楽勝です。

…ということで。

いつものごとくReadMeの転記です。

  • 「ローカル側」「サーバ側」のラベルをクリックするとそのフォルダが開くようにした。
  • 「指定したフォルダにコピー」機能を追加。
  • 「コピー」メニューを「リスト内容をコピー」に文言修正。
  • ローカル側/サーバー側欄でCtrl+Cしてもテキストの内容がコピーされない問題を修正。
  • 隠し機能が使えなかった問題を修正。
  • 隠し機能によって起動しようとしたソフトが無かった場合に落ちる問題を修正。

_ 合わせ技。

この間のバッチファイルと、DiDi Ver.0.23を組み合わせると、ある時点からある時点までの間に修正されたファイルのみの一式が簡単に手に入るようになりました。

これで、離れた拠点への差分ソースの提供が簡単になりました。

ホントは、拠点間をまたがってソース管理ツールが使えればいいんですけどねぇ。通常の業務開発だとそれもなかなか難しいようです。