
私は Mac で作業しており、最近 Xcode を更新しました。この更新では、subversion 1.9.x
コア インストールとして最新バージョンがインストールされます。これは問題ありませんが、職場で使用している1.8.x
この新しいバージョンは互換性がありません。
理想的には、コアのサブバージョンを 1.8.x に戻したいのですが、どのように進めればよいかよくわかりません。これまでに行ったことは、パッケージ マネージャー (Homebrew) を使用して正しいバージョンを にインストールすることです/usr/local/opt/subversion
。
私の IDE では、./bin フォルダーを指定できるので、これで問題ありません。ただし、ターミナルで作業したい場合 (頻繁に行う)、バージョンは 1.9.x です。
./bash_profile
回避策として、次のように エイリアスを作成しました。alias svn=/usr/local/opt/[email protected]/bin/svn
ターミナルを開いて実行すると、svn --version
次のようになります。
svn, version 1.8.16 (r1740329) compiled Apr 2 2017, 22:11:27 on x86_64-apple-darwin15.6.0
これは完璧ですが、何かが欠けているように感じます。そこには時々使用する他のバイナリがあり、それらすべてにエイリアスを付けるのは嫌です。もっと良い方法があるはずですが、ルート レベルで物事を移動することにあまり自信がありません。
Subversion の作業バージョンを再割り当てすることは可能ですか。 おそらく次のようなものでしょうuse svn --path ....
。
答え1
編集中に$PATH
環境変数を追加することは、使用したいバイナリの優先順位を設定するためのオプションです。これは必ずしも必要なわけではありません。
svn up
不一致なサブバージョンを含む作業コピーでターミナルから実行すると、次のメッセージが表示されます。
svn: E155036: Please see the 'svn upgrade' command
過去にコマンドを盲目的に実行した経験から不安を感じていましたが、同僚のマシンをいくつか調査した結果、非互換性は VCS サーバーではなく作業コピーにあることが明らかになりました。
不一致を解決するには、 を実行するだけですsvn upgrade
。その後は を実行できsvn up
、問題なく更新が続行されるはずです。
他の方法がすべて失敗した場合でも、環境変数svn
で Subversion フォルダーへのパスを設定することで、特定のバージョンのバイナリを強制的に使用できます$PATH
。
例えばexport PATH=/usr/local/opt/[email protected]/bin:/usr/bin:/bin:$PATH
これまで時間をかけて理解していなかったのは、$PATH
コマンドラインからアクセスできるようにしたいバイナリの場所が含まれていることです。選択したバイナリが文字列の先頭に近いほど、選択される順序が決まります。
フォルダーが使用できなくなった場合は、次の場所にカスケードされる必要があると思います。