コマンドラインからTortoiseSVNを使用する


254

コマンドラインSVNオプションを使用したい。TortoiseSVNを使用していますが、いくつかのコマンドを実行すると次のエラーが発生します。

「svn」は内部または外部コマンドとして認識されません

コマンドを使用しました

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH

環境変数などを追加する必要があると思います。

コマンドラインからTortoiseSVNを使用するにはどうすればよいですか?


4
slik subversionをお勧めします。インストールした後、そのbinディレクトリをパスに追加します。-bhups
bhups

3
TortoiseSVNは、おそらく最も使用されているWindows GUI SVNクライアントであり、完全に文書化されています。参照コマンドライン実装ではないからといって、それを疑似クライアントと呼ぶことはしません。
ジョーイ

18
TortoiseSVNの最新バージョン(この記事の1.7.1)には、インストール中にコマンドラインツールのオプションがあります。デフォルトでは無効になっていますが、svnの標準のコマンドラインファイルがインストールされます。そのため、Silkなどの個別のsubversionパッケージをインストールする必要がなくなりました。
VEE

1
簡単な参考までに、Slik svnを使用していて、そのエラーが発生した場合は、「「svn」が認識されません...」と表示されます。システムのプロパティダイアログを開く必要がある場合があります。SlikはPath変数に正しいエントリを追加しますが、変数を有効にするために(変更を加えていない場合でも)[編集]をクリックして[OK]をクリックする必要がある場合があります。少なくとも、それはWindows Vistaを使用した私の経験でした。その後、Windowsがパスの変更を認識し、svnコマンドが認識されました。
ジェシー

1
SlikSvn / binパスを環境変数に追加しましたが、まだこのエラーが発生します...
Lion789

回答:


464

デフォルトでは、TortoiseSVNには常にGUI(グラフィカルユーザーインターフェース)が関連付けられています。ただし、(バージョン1.7以降の)インストーラーでは、「コマンドラインクライアントツール」オプションを選択して、コマンドラインからsvnコマンド(svn commitやsvn updateなど)を呼び出すことができます。

インストーラーの「コマンドラインクライアントツール」オプションのスクリーンショットは次のとおりです。必ず選択してください。

How-to-Install-TortoiseSvn-CommandLineTools


52
個人的には、私はこの答えを受け入れたものよりも優先します。セカンダリインストールは不要で、標準のSVNコマンドラインへのフルアクセスです。
Haroldo_OK 2013

2
また、コマンドラインツールのバージョンがTortoiseSVNのバージョンと同期しているという利点もあります。
the_mandrill 2013年

4
...つまり、より詳細には、Subversionの作業ディレクトリの形式が数回変更されています(バージョン1.7や1.8など)。1.7クライアントは、svn upgradedでない限り、古い作業ディレクトリを使用しません。その後、1.6クライアントはそれを使用できなくなります。
Tobias

38
ヒントとして、Tortoiseが既にインストールされている場合は、再インストールする必要はありません。元のインストーラー.msiファイルを開くだけで、「アンインストール」を選択する代わりに、「変更」を選択できます。何も台無しにすることなく、現在のTortoiseインストールを更新するだけです。
Trevor

5
ヒントとして、Tortoiseが既にインストールされていて、.msiファイルがない場合は、 [コントロールパネル]-> [プログラムと機能]に移動し、TortoiseSVN-> [変更]を選択します。
zvi

131

TortoiseSVNには、TortoiseSVN GUIオートメーションに使用できるコマンドラインインターフェースがあり、通常のSubversionとは異なります。

TortoiseSVNのコマンドラインオプションに関する情報は、ドキュメント: 付録D. TortoiseSVNの自動化にあります。ここで使用する主なプログラムはTortoiseProc.exeです。

しかし、上部のメモにはすでに次のように書かれています。

TortoiseSVNはGUIクライアントであり、この自動化ガイドでは、TortoiseSVNダイアログを表示してユーザー入力を収集する方法を説明しています。入力を必要としないスクリプトを作成する場合は、代わりに公式のSubversionコマンドラインクライアントを使用してください。

別のオプションは、Subversionバイナリをインストールすることです。Slik SVNは素晴らしいビルドです(そしてCollabnetのような登録は必要ありません)。TortoiseSVNの最近のバージョンには、インストールを選択した場合にコマンドラインクライアントも含まれています。


2
これに追加するだけです-Tortoiseがパス上にあることを確認してください。そうでなければ、何も機能しません。
Thomas Owens、

2
この答えに基づいて、私は2番目のコマンドラインインターフェイスを学ぶよりも、実際のSVNコマンドラインクライアントをインストールすることをお勧めします。どうすればいいのかわかりません。
jprete 2009年

2
Thomas:デフォルトでは、TortoiseSVNとSlik SVNの両方がそれに応じてパスを変更します。
ジョーイ

23
このソリューションは単に時代遅れであり、TortosieSVNインストーラーにはコマンドラインツールが含まれています。
Josh

1
インストール後に再起動して、PATH環境変数を変更する必要がある場合があります。
Oliver Bock

91

TortoiseSVN GUIをすでにインストールしていて、コマンドラインツールにアップグレードする方法を考えている場合の手順は次のとおりです...

  1. Windowsコントロールパネル→ プログラムと機能(Windows 7以降)に移動します。
  2. TortoiseSVNを見つけてクリックします。
  3. 利用可能なオプションから「変更」を選択します。
  4. 詳細な手順については、この画像を参照してください。

    TortoiseSVNコマンドラインの有効化

  5. コマンドラインクライアントツールの完了後、コマンドプロンプトを開いて入力し、svn helpインストールが成功したことを確認します。


あなたの答えはまだフォーマットされていません。そして、それは望ましくない情報を持っていました。彼はあなたの答えのフォーマットと編集の両方を適切に行いました。詳しくはヘルプセンターをご覧ください。;)
ラッキー

Win10は "アプリと機能"ですが、それはおそらく明白です
スリムな

私を信じないでください。編集が正当であるかどうかをメタで質問してください。彼はあなたの答えをフォーマットしただけでなく、答えに必要のない不要な情報も削除しました。それは節度と呼ばれています。また、担当者が多い場合は、一般的にモデレートして投稿することでサイトをクリーンアップします。そのため、私はヘルプセンターを調べることをお勧めしました。しかし、知識を得るのではなく、議論したいだけです。グッドluck.😉
ラッキー

ええ、私は実際に知識を共有することに興味があり、誰かの仕事や説教を主張するのではありません。また、私は高い担当者の盲目の信者ではありません。
Devendra Vaja 2017年

コマンドラインを有効にすると、ダウンロードに必要なアプリケーションパスが要求されます。パス:osdn.net/projects/tortoisesvn/storage/1.12.0/Application/...
アミット・ジョシ

27

コマンドサポートを使用するには、次の手順に従います。

  1. 環境変数でパスを定義します。

    • システムのプロパティ」を開きます
    • 詳細」タブで、「環境変数」ボタンをクリックします。
    • システム変数」セクションで「パス」オプションを選択し、「編集」をクリックします
    • TortoiseProc.exeファイルへのパスを変数値に追加します。次に例を示します。

      C:\ Program Files \ TortoiseSVN \ bin

  2. 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

PS「TortoiseProc」の代わりに「svn」のようなわかりやすい名前を使用するには、「TortoiseProc.exe」のディレクトリに「svn.bat」ファイルを配置します。svn.batの例があります:

TortoiseProc.exe %1 %2 %3

主な問題は、実行可能ファイルの名前(およびその検索方法)ではなく、まったく異なるコマンドライン構文です。私のtsvnプログラムについて説明する私の回答を参照してください(Warlockの回答の時点では存在していませんでした)。最近のWindowsバージョンでは、すべての引数を%*%1 %2 %3... ではなく)として指定できます。
Tobias 2013年

10

TortoiseSVNインストールプログラムを再度実行してsvnを有効にするには、[変更]を選択し(機能のインストール方法をユーザーが変更できるようにします)、[コマンドラインクライアントツール]をインストールします。


「変更」オプションがどこにあるのか疑問に思っている人のために-Tortoise SVNを再インストールしてみてください
maya

@mayaすでにインストールしている場合は、アンインストールして再インストールしないでください。Control Panel\Programs\Programs and FeaturesTortoise SVN を検索し、をクリックしてChange、をクリックしModifyます。
ラッキー

9

私の解決策は、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を実際に呼び出す唯一の回答です。
好戦的なチンパンジー

4

TortoiseSVNとApache Subversionコマンドラインツールの両方をインストールできます。私は通常、Apache SVNツールをVisualSVNダウンロードサイトからインストールします:https : //www.visualsvn.com/downloads/

インストールしたら、Subversion \ binを設定したPATHに配置します。そうすれば、GUIを使用するときにTortoiseSVNを使用できるようになり、コマンドラインから使用する適切なSVNコマンドラインツールが手に入ります。


3

多くのTortoiseSVNユーザーが実際にsvn.exeコマンドラインクライアントを探していたときに、間違ったコマンドラインツールを使用する原因となっている混乱があります。

コマンドラインからTortoiseSVNを使用するにはどうすればよいですか?

svn.exe

コマンドプロンプトから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

TortoiseProc.exe

とは別にsvn.exe、TortoiseSVNにはTortoiseProc.exeコマンドプロンプトから呼び出すことができるものが付属しています。ほとんどの場合、このツールはGUI自動化にのみ使用されるため、このツールを使用する必要ありませTortoiseProc.exeSVNコマンドラインクライアントの代わりにはなりません。


2

Joeyが指摘したように、TortoiseSVNには独自のコマンドライン構文があります。残念ながら、慣れている場合は、かなり醜いですsvnコマンドに現在の作業ディレクトリを無視するため、スクリプトを除いて、あまり使用できません。

コマンドライン構文をできるだけ忠実にtsvn模倣し、svnそれに応じてTortoiseSVNを呼び出す小さなPythonプログラム()を作成しました。したがって、通常のコマンドラインツールの呼び出しとTortoiseSVNの呼び出しの違いtは、最初は小さな文字になっています。

私のtsvnプログラムはまだ完全ではありませんが、すでに有用です。チーズショップ(https://pypi.python.org/pypi/tsvn/)にあります


Pythonに慣れていない人のために:最近のPython 2.xインタープリターが必要です。easy_installまたはがある場合はpip install、単に指定しますtsvn。それ以外の場合は、tarballをダウンロードして抽出し、含まれているsetup.pyインストールスクリプトを実行できます。解釈されているので、詳細に検査できます;-)
Tobias

2

しばらくして、私はこの回避策を使用しました...

(.batファイル)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%

2

SVNコマンドを取得するための私の修正は、TortoiseSVNディレクトリから.exeファイルと.dllファイルをコピーし、それらをsystem32フォルダーに貼り付けることでした。

TortoiseSVNディレクトリからコマンドを実行し、作業ディレクトリのパスを各コマンドに追加することもできます。例えば:

C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout

パスにビンを追加すると、ファイルを複製せずに機能するはずですが、私には機能しませんでした。


このアプローチは機能していませんが、依然として示されています'svn' is not recognized as an internal or external command
Suraj M

0

「SVNコマンドラインツール」を選択すると、次のようになります。

ここに画像の説明を入力してください


5
これは望ましい結果ですが、この回答はこれを実際に達成する方法を示していません。
BogdanBiv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.