連絡先 トップに戻る 最初に戻る
$Date: 2017-05-06 22:21:48 +0900 (2017/05/06 (土)) $
$Revision: 1117 $

svnmucc (Subversion Multiple URL Command Client)

概要

svnmucc は作業コピーなしでコミットできるコマンドラインクライアントです。
URL に対してコピー、フォルダ作成、削除、ファイルの更新(追加、変更) ができます。
このページではこのツールの使い方を説明します。

リンク

svnmucc Reference-Subversion Multiple URL Command Client

テスト用のリポジトリ作成

D:\workdir>svnadmin create test
D:\workdir>svn ls file:///D:/workdir/test

svnmucc のヘルプ

D:\workdir>svnmucc help
Subversion multiple URL command client
usage: svnmucc ACTION...

  Perform one or more Subversion repository URL-based ACTIONs, committing
  the result as a (single) new revision.

Actions:
  cp REV SRC-URL DST-URL : copy SRC-URL@REV to DST-URL
  mkdir URL              : create new directory URL
  mv SRC-URL DST-URL     : move SRC-URL to DST-URL
  rm URL                 : delete URL
  put SRC-FILE URL       : add or modify file URL with contents copied from
                           SRC-FILE (use "-" to read from standard input)
  propset NAME VALUE URL : set property NAME on URL to VALUE
  propsetf NAME FILE URL : set property NAME on URL to value read from FILE
  propdel NAME URL       : delete property NAME from URL

Valid options:
  -h, -? [--help]        : display this text
  -m [--message] ARG     : use ARG as a log message
  -F [--file] ARG        : read log message from file ARG
  -u [--username] ARG    : commit the changes as username ARG
  -p [--password] ARG    : use ARG as the password
  -U [--root-url] ARG    : interpret all action URLs relative to ARG
  -r [--revision] ARG    : use revision ARG as baseline for changes
  --with-revprop ARG     : set revision property in the following format:
                               NAME[=VALUE]
  --non-interactive      : do no interactive prompting (default is to
                           prompt only if standard input is a terminal)
  --force-interactive    : do interactive prompting even if standard
                           input is not a terminal
  --trust-server-cert    : accept SSL server certificates from unknown
                           certificate authorities without prompting (but
                           only with '--non-interactive')
  -X [--extra-args] ARG  : append arguments from file ARG (one per line;
                           use "-" to read from standard input)
  --config-dir ARG       : use ARG to override the config directory
  --config-option ARG    : use ARG to override a configuration option
  --no-auth-cache        : do not cache authentication tokens
  --version              : print version information

svnmucc mkdir によるディレクトリ作成

mkdir.bat
D:\workdir>type mkdir.bat
svnmucc mkdir file:///D:/workdir/test/trunk     ^
        mkdir file:///D:/workdir/test/tags      ^
        mkdir file:///D:/workdir/test/branches  ^
        -m "mkdir initial dir"
ここで ^ (ハット) はコマンドを複数行にわけて記述できるようにするための文字です。
見やすくするために使用しています。一行で記述するのであれば不要です。
キャレットが行末にある必要があります。ハットの後ろに空白があってはいけません。

参考
^ (ハット記号)

mkdir.bat を実行
D:\workdir>mkdir.bat

D:\workdir>svnmucc mkdir file:///D:/workdir/test/trunk          mkdir file:///D:
/workdir/test/tags              mkdir file:///D:/workdir/test/branches
-m "mkdir initial dir"
r1 committed by svnuser at 2013-07-17T13:30:44.323247Z
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r1 | svnuser | 2013-07-17 22:30:44 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   A /branches
   A /tags
   A /trunk

mkdir initial dir
------------------------------------------------------------------------

svnmucc rm によるディレクトリ削除

rm.bat
D:\workdir>type rm.bat
svnmucc rm file:///D:/workdir/test/trunk     ^
        rm file:///D:/workdir/test/tags      ^
        rm file:///D:/workdir/test/branches  ^
        -m "rm initial dir"
D:\workdir>rm.bat

D:\workdir>svnmucc rm file:///D:/workdir/test/trunk             rm file:///D:/wo
rkdir/test/tags         rm file:///D:/workdir/test/branches             -m "rm i
nitial dir"
r2 committed by svnuser at 2013-07-17T13:42:27.280497Z
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r2 | svnuser | 2013-07-17 22:42:27 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   D /branches
   D /tags
   D /trunk

rm initial dir
------------------------------------------------------------------------

-U オプションによるルート URL の指定

D:\workdir>type mkdir2.bat
svnmucc -U file:///D:/workdir/test  ^
        mkdir trunk                 ^
        mkdir tags                  ^
        mkdir branches              ^
        -m "create initial dir by -U option"
-U オプションでベースとなるルート URL を指定することで mkdir などに渡す引数を 指定した URL に対する相対パスとして指定できます。
D:\workdir>mkdir2.bat

D:\workdir>svnmucc -U file:///D:/workdir/test          mkdir trunk
           mkdir tags                          mkdir branches
   -m "create initial dir by -U option"
r3 committed by svnuser at 2013-07-17T13:50:08.490713Z
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r3 | svnuser | 2013-07-17 22:50:08 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   A /branches
   A /tags
   A /trunk

create initial dir by -U option
------------------------------------------------------------------------

svnmucc put によるファイルのコミット

ローカルにあるファイルを追加します。
D:\workdir>svnmucc put robots.txt file:///D:/workdir/test/robots.txt -m "add file"
r4 committed by svnuser at 2013-07-17T13:56:26.955522Z
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r4 | svnuser | 2013-07-17 22:56:26 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   A /robots.txt

add file
------------------------------------------------------------------------

svnmucc put によるファイルのコミット (編集)

svn cat を使うことによりリポジトリに登録されているファイルをローカルに取得します。(チェックアウトはしません)
エディタでファイルを編集します。
svnmucc put でコミットします。
D:\workdir>del robots.txt

D:\workdir>svn cat file:///D:/workdir/test/robots.txt > robots.txt

D:\workdir>svnmucc put robots.txt file:///D:/workdir/test/robots.txt -m "modify file"
r5 committed by svnuser at 2013-07-17T14:02:31.482339Z
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r5 | svnuser | 2013-07-17 23:02:31 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   M /robots.txt

modify file
------------------------------------------------------------------------

svnmucc propset によるプロパティの設定

D:\workdir>svnmucc propset bugtraq:url "http://issues.tortoisesvn.net/?do=details&id=%BUGID%" file:///D:/workdir/test/trunk -m "set bugtraq:url"
r6 committed by svnuser at 2013-07-17T14:10:18.420699Z
bugtraq:url に関してはこちら を参照
D:\workdir>svn log -r HEAD -v file:///D:/workdir/test
------------------------------------------------------------------------
r6 | svnuser | 2013-07-17 23:10:18 +0900 (2013/07/17 (水)) | 1 line
変更のあったパス:
   M /trunk

set bugtraq:url
------------------------------------------------------------------------

D:\workdir>svn diff -c 6  file:///D:/workdir/test
Index: trunk
===================================================================
--- trunk       (リビジョン 5)
+++ trunk       (リビジョン 6)

属性に変更があったパス: trunk
___________________________________________________________________
Added: bugtraq:url
## -0,0 +1 ##
+http://issues.tortoisesvn.net/?do=details&id=%BUGID%
\ No newline at end of property

svnmucc propsetf によるプロパティの設定

r1504151 現在では実装されていないみたいだ。

参考情報