- 1. 概要
- 2. 設定
- 3. 複数のリンク
1. 概要
事情がありまして、下記のようなディレクトリ構成(「Subversion」へコミット済)で、
document
|-- aaaa
| |-- nodes
| |-- plugins
| |-- token
| `-- bbbb
`-- cccc
|-- driver
|-- hyphenator
`-- image
「cccc」のディレクトリ以下に、「aaaa/bbbb」の内容とまったく同じ、「cccc/bbbb」を作る必要が生じたのです。
中身は、まるまる同じであり、片方の配下の内容を変更したら、それを反映させたい・・・と。
クライアント側で、そういう形式のシンボリックリンクを作成することもできますが、異なるプラットフォームを持つクライアントがいるので、それは、実現できない・・・。
どうも、調べたら、「Subversion」自体で、そういう運用が可能なようです。
以下は、下記のサイトを参考にさせていただきました。
「Subversion(TortoiseSVN)でファイルやフォルダのリンクを作成する方法(手順)」
実際には、「Subversion」の機能であって、「Subversion」のコマンドでもそれは、可能なようですが。
「TortoiseSVN」の方が、操作が楽なので、こちらに掲載します。
ただし、これは、「Subversion」のバージョンが、「1.6」以上でないと、機能してくれないようです。
わたしの扱っている「Subversion」の一番古いものが
$ svnserve --version
svnserve, バージョン 1.6.11 (r934486)
コンパイル日時: Jun 23 2012, 00:28:25
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
以下のリポジトリバックエンド (FS) モジュールが利用できます:
* fs_base : Berkeley DB リポジトリを扱うためのモジュール。
* fs_fs : プレインファイル (FSFS) リポジトリを扱うためのモジュール。
Cyrus SASL 認証が利用可能です。
と、2012年の時点でも「1.6.11」なので、現在(2020年12月16日)、それより古いバージョンを使っているところは、そうないだろうと思います。
ちなみに、以下の操作で扱っている「TortoiseSVN」は、下記のバージョンです。

2. 設定
リンクを作成したいディレクトリの空白部分を右クリックして
「TortoiseSVN」→「プロパティ」
「新規」→「その他」
「プロパティ名」で「svn:externals」(複数形であることに注意、次項で効いてきます)
「プロパティ値」の欄に
リンク元パス/リンク元ディレクトリ名 リンク先ディレクトリ名
を入力します。
「リンク元パス」は、リンク先の親からの相対パスでないとだめであるそうな・・・。
入力したら
「OK」
この後、親ディレクトリをコミットして、更新すれば、リンク元の配下がダウンロードされます。
どちらかで、編集してコミット後、更新すれば、リンクの方も更新されます。
3. 複数のリンク
同一ディレクトリに複数のリンクを作成する場合は、どうしたらいいのか。
一度失敗しちゃったのです。
前項と同じ要領でやったら、前のリンクが消えちゃいました。
では、どうするか。
親ディレクトリを右クリックして、
「TortoiseSVN」→「プロパティ」で
プロパティの「svn:externals」を選択して
「編集」
「新規」
「ローカルパス」にリンク先のディレクトリ名
「URL」にリンク元のディレクトリを相対パスで入力して
「OK」
以降は、前項と同じ要領で、同期できます。
|