コマンドラインのSVNオプションを使いたい。 TortoiseSVNを使用していますが、いくつかのコマンドを実行しましたが、次のようなエラーメッセージが表示されます。
'svn'が内部コマンドまたは外部コマンドとして認識されていません
コマンドを使いました
svn checkout [-N] [--ignore-externals] [-r rev] URL PATH
私は環境変数か何か他のものを追加するべきだと思います。
コマンドラインからTortoiseSVNを使うにはどうすればよいですか。
デフォルトでは、TortoiseSVNには常にGUI(グラフィカルユーザーインターフェース)が関連付けられています。しかし(バージョン1.7以降の)インストーラでは、 "コマンドラインクライアントツール"オプションを選択できるので、コマンドラインからsvnコマンド(svn commitやsvn updateなど)を呼び出すことができます。
これがインストーラの「コマンドラインクライアントツール」オプションのスクリーンショットです、それを選択することを確認する必要があります:
TortoiseSVNにはTortoiseSVN GUIの自動化に使用できるコマンドラインインターフェースがあり、通常のSubversionのものとは異なります。
TortoiseSVNのコマンドラインオプションに関する情報はドキュメントにあります。 付録D. TortoiseSVNの自動化 。ここで働く主なプログラムはTortoiseProc.exe
です。
しかし、一番上にあるメモにはすでに次のように書かれています。
TortoiseSVNはGUIクライアントなので、この自動化ガイドではTortoiseSVNダイアログを表示してユーザー入力を収集する方法を説明します。入力を必要としないスクリプトを書きたい場合は、代わりに公式のSubversionコマンドラインクライアントを使用してください
もう1つの選択肢は、Subversionバイナリをインストールすることです。 Slik SVN は素晴らしいビルドです(そしてCollabnetのような登録は不要です)。 TortoiseSVNの最近のバージョンでは、インストールを選択した場合、コマンドラインクライアントも含まれています。
コマンドサポートを使用するには、次の手順に従ってください。
環境変数でパスを定義します。
TortoiseProc.exe fileへのパスを含む変数値を追加します。次に例を示します。
C:\ Program Files\TortoiseSVN\bin
TortoiseProc を登録しているので、TortoiseSVN のドキュメント に従って使用できます。
例:
TortoiseProc.exe/command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:"テストログメッセージ "/ closeonend:0
TortoiseProc.exe/command:update/path: "c:\ svn_wc \"/closeonend:0
TortoiseProc.exe/command:log /path:"c:\svn_wc\file1.txt "/ startrev:50/endrev:60/closeonend:0
P.S 'TortoiseProc'の代わりに 'svn'のような分かりやすい名前を使用するには、 'svn.bat'ファイルを 'TortoiseProc.exe'のディレクトリに置きます。 svn.batの例があります。
TortoiseProc.exe %1 %2 %3
私の解決策は、 DOSKEY を使用して、最も使用頻度の高いコマンドのエイリアスを設定することでした。
DOSKEY svc=TortoiseProc.exe /command:commit /path:.
DOSKEY svu=TortoiseProc.exe /command:update /path:.
DOSKEY svl=TortoiseProc.exe /command:log /path:.
DOSKEY svd=TortoiseProc.exe /command:diff /path:$*
Unixで。* rcファイルのようにコマンドプロンプトを開くたびに実行される.cmdファイルを設定する方法のヒントについては、Googleの「doskey persist」を参照してください。
Svnを有効にしてTortoiseSVNインストールプログラムを再度実行するには、[変更](ユーザーが機能のインストール方法を変更することを許可する)を選択し、[コマンドラインクライアントツール]をインストールします。
TortoiseSVNとApache Subversionコマンドラインツールの両方をインストールすることができます。私は通常、VisualSVNダウンロードサイトからApache SVNツールをインストールします。 https://www.visualsvn.com/downloads/
インストールしたら、Subversion\binをセットPATHに置きます。そうすれば、GUIを使いたいときにTortoiseSVNを使うことができるようになり、コマンドラインから使用するための適切なSVNコマンドラインツールが手に入ります。
SVNコマンドを取得するための私の修正はTortoiseSVNディレクトリから.exeと.dllファイルをコピーしてsystem32フォルダに貼り付けることでした。
TortoiseSVNディレクトリからコマンドを実行して、各コマンドに作業ディレクトリのパスを追加することもできます。例えば:
C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout
パスにビンを追加すると、ファイルを複製しなくても機能するようになりますが、私には機能しませんでした。
実際にsvn.exe
コマンドラインクライアントを探していたときに、多くのTortoiseSVNユーザーが間違ったコマンドラインツールを使用しているという混乱があります。
コマンドラインからTortoiseSVNを使うにはどうすればよいですか。
コマンドプロンプトからSubversionコマンドを実行したい場合は、 svn.exe
コマンドラインクライアントを実行する必要があります。 TortoiseSVN 1.6.x以前のバージョンにはSVNコマンドラインツールは含まれていませんが、最近のバージョンには含まれています。
TortoiseSVNをインストールせずにSVNコマンドラインツールを入手したい場合は、 SVNバイナリ配布ページ をチェックするか、 VisualSVNダウンロードページ から最新バージョンをダウンロードしてください).
システムにSVNコマンドラインツールがインストールされていても、エラー'svn' is not recognized as an internal or external command
が発生する場合は、環境変数%PATH%
を確認してください。 %PATH%
はSVNツールディレクトリへのパスを含まなければなりません。 C:\Program Files (x86)\VisualSVN\bin
。
svn.exe
とは別に、TortoiseSVNにはコマンドプロンプトから呼び出せるTortoiseProc.exe
が付属しています。ほとんどの場合、このツールを使用する必要があるのはnotです。GUIの自動化にのみ使用する必要があるからです。 TortoiseProc.exe
はSVNコマンドラインクライアントに代わるものではありません。
しばらくして、私はこの回避策を使用しました...
(.batファイルに)
SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"
start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
Joeyが指摘したように、TortoiseSVNには独自のコマンドライン構文があります。残念ながら、あなたがsvn
コマンドに慣れていて、現在の作業ディレクトリを無視しているのであれば、それは非常に醜いです。スクリプトを除いて、それはあまり使用できません。
私はtsvn
コマンドラインの構文をできるだけ厳密に模倣し、それに応じてTortoiseSVNを呼び出す小さなPythonプログラム(svn
)を作成しました。したがって、通常のコマンドラインツールを呼び出すこととTortoiseSVNを呼び出すことの違いは、最初はt
という小さな文字になりました。
私のtsvn
プログラムはまだ完成していませんが、すでに役に立ちました。それはcheeseshopで見つけることができます( https://pypi.python.org/pypi/tsvn/ )
「SVN command line tools」を選択すると、このようになります。