web-dev-qa-db-ja.com

Subversionリポジトリのシンボリックリンク?

PHPとJavaの両方で小さなアプリを開発しています。CSSとJSの写真がいくつかあり、両方で共有する必要があります。

これらのファイルを複製したくないので、JSとCSSは両方で同じである必要があります。ですから、ある場所で変更すると、その変更が別の場所に複製されるようにしたいと思います。

Unixにはシンボリックリンクがあるため、同じファイル/フォルダをファイルシステムの複数の場所に「配置」できます。 Subversionにはsvn copyですが、実行されると、両方のコピーが独立します。私はそれらを一緒に保ちたかったのですが、1つのコピーで行われたコミットは「他の」にも適用されます。

それを行う方法はありますか?

9
Hikari

「シャドウリンク」ではなく、投稿で シンボリックリンク を参照しています(投稿を編集しました)。 Subversionはシンボリックリンクをバージョン管理できますが、(シンボリックリンクは現在WindowsのSubversionでサポートされていないため)別の方法は Externals を使用することです。

違いは、Subversion外部を使用する場合、実際にはシステム上にファイルの2つのコピー(リポジトリ内の同じ場所を指す)があるのに対し、シンボリックリンクはファイルシステム上の単一のファイルであるということです。

16
alroc

プロジェクトがsvnでどのようにレイアウトされているか、またはJavaのものがどのように構築されているか)については言及していません。これらは追加するのに適した詳細です。

シンボリックリンクではなく、依存関係の管理を調べたいと考えています。 @alrocが指摘しているように、Subversionのその機能は一部のプラットフォームでは機能しません。

あなたは本当に欲しくないsvn:externals。それらはほとんど常に悪い取引であり、外部が同じリポジトリ内の何かに解決する場合は常にです。これはかなりカバーされています、 ここで受け入れられた答え は始めるのに良い場所です。

Javaアプリのレポ、phpのもののレポ、そしておそらく一般的なレポを用意することをお勧めします。

ビルド(Java)とデプロイ(php)は、リポジトリから一般的なリポジトリアーティファクトの適切なバージョンを解決できます(ネクサスまたはアーティファクトを調べることをお勧めします)

3
thekbb