/bin /usr/bin に Subversion バイナリエラーがあります。

/bin /usr/bin に Subversion バイナリエラーがあります。

私はMacで作業し、最近Xcodeを更新しましたが、今回のアップデートでは、最新バージョンがコアインストールsubversion 1.9.xとしてインストールされました。大丈夫です。ただし、職場で1.8.x使用しているこの新しいバージョンは互換性がありません。

理想的には、Core Subversionを1.8.xに戻したいのですが、どうすればいいかわかりません。今まで私がしたことは、パッケージマネージャ(Homebrew)を介して正しいバージョンを/usr/local/opt/subversion

./binフォルダを指すことができるので、これは私のIDEに適しています。ただし、端末で作業するには(よく実行する作業)、バージョンは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一致しない Subversion を持つ作業コピーを端末で実行すると、次のメッセージが表示されます。

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コマンドラインからアクセスしたいバイナリの場所が含まれていることです。選択したバイナリが文字列の前に近いほど、選択される順序が決まります。

フォルダを使用できなくなったら、次の場所にカスケードする必要があると思います。

関連情報