nDiki : svn:externals
svn:externals
Subversion の外部定義用プロパティ名。
設定
指定した URLのディレクトリを自動的に現在の作業ディレクトリの下に subdir という名前でチェックアウト/更新するようにする。
svn propset svn:externals 'subdir URL' .
指定したURLのディレクトリを自動的に dir の作業コピーの下に subdir という名前でチェックアウト/更新するようにする。
svn propset svn:externals 'subdir URL' dir
スポンサード リンク
Related term
2004年3月4日 (木)
■ ドキュメント管理用 Subversion リポジトリ作成

新しく書くドキュメントを Subversion 管理してみる。 今後のドキュメントで共有(かつブランチする)マクロファイル等を分けて管理できるようにレイアウトを検討。
@ リポジトリ作成
自分の home の下 var/repos/doc を作成する。サーバ上で以下を実行。
cd ~/var mkdir repos mkdir repos/doc chgrp doc repos/doc chmod g+ws repos/doc svnadmin create repos/doc
@ 初期ディレクトリ構造作成
project-1 の report ドキュメント手始めに管理する。 今後他と共有する予定の texmf ディレクトリも別途用意。
クライアント上で以下を実行。
mkdir /tmp/layout cd /tmp/layout mkdir project-1 mkdir project-1/trunk mkdir project-1/trunk/report <-- report のファイルを置く mkdir project-1/branches mkdir project-1/tags mkdir texmf mkdir texmf/trunk mkdir texmf/branches mkdir texmf/tags mkdir texmf/trunk/texmf mkdir texmf/trunk/texmf/my-company <- 社内共有マクロファイル置き場 svn import . svn+ssh://server/home/naney/var/repos/doc \ --message 'Initial repository layout' cd rm -rf /tmp/layout
@ 外部定義プロパティを設定
report 作業ディレクトリの下に texmf/trunk/texmf を texmf として checkout するように、svn:externals を設定する。
mkdir /tmp/work cd /tmp/work svn checkout svn+ssh://server/home/naney/var/repos/doc/project-1/trunk cd trunk svn propset svn:externals 'texmf svn+ssh://server/home/naney/var/repos/doc/texmf/trunk/texmf' report svn commit cd report svn update
これで、report の下に自動的に texmf が来るようになる。 他のドキュメントプロジェクトでも同様に svn:externals を指定すれば texmf が使えるようになる。 texmf のブランチや、ある時点のスナップショットを使いたい場合は svn:externals を変更すれば良い(はず)。
- 外部定義か作業ディレクトリを分けるか、trunk にブランチか (2005-01-31)
- Subversion で SSH port forwarding 経由での... (2006-06-29)
- Subversion (2004-02-18)
- 仕事のファイルを順次 Subversion リポジトリに突っ込む (2004-10-04)
- SVN::Webインストール失敗 (2006-02-17)
2004年7月23日 (金)
■ プロジェクト関連ドキュメントを TeX で

現在進行中のプロジェクトの一つがそろそろ大詰め。 ドキュメント書きに突入。 前回までは過去の方法を踏襲して MS Word ベースだったのだが、自分がマネージャになった今期からは全面的に TeX ベースへ移行させる。
- Subversion で管理
- プロジェクト用 texmf は外部定義 (svn:externals)を使用して共有
- Linux、Windows のどちらでもビルドできるように
を用意。 Makefile は時間がなかったので GNUmakefile と Makefile を作って Linux 用と Windows 用の両方作ったのだが、後々面倒なので一本化したい。
- pLaTeX + hyperref + dvipdfmx で PDFにしおりを (2005-04-15)
- amaroK で Linux 上の iTunes 音楽データを聞く (2006-01-22)
- Rekisa で TortoiseSVN から日本語ファイルの差分表示 (2006-03-23)
- Debian GNU/Linux で Dropbox (2008-09-16)
- 日本語ファイル名どんとこい (2005-03-07)
■ TortoiseSVN と svn+ssh な svn:externals

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。
しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。
で、さらっと調べたところ TortoiseSVN の SSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが
前略\TortoisePlink.exe -l ユーザ名
のようにすればユーザ名を指定できる。
一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。
それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。
やはりきちんとセッションを保存しておくようにせねば。
それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。
- TortoiseSVN 1.0.4 (2004-05-17)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh (2004-07-26)
- Unison + Zebedee (2004-06-11)
- ノート PC を持たずに会社に行きたい (2006-12-21)
2005年1月31日 (月)
■ 外部定義か作業ディレクトリを分けるか、trunk にブランチか

Subversion のリポジトリのレイアウトを思案中。
repos
|
+- branches
|
+- tags
|
+- trunk
|
+- project
| |
| +- 2004
| |
| +- 2005
|
+- texmf
という構成がある。 project に年別のサブブロジェクト 2004、2005 がある。 texmf は repos 以下で共有したいマクロディレクトリ。
問題は各サブプロジェクトでどうやって texmf を共有するか。 ここで 2005 + texmf を使用する際には 2004 まで一緒に作業ディレクトリにチェックアウトしたくないとする。 texmf は各プロジェクトの共通部分で随時改良される。 これらの改良は各プロジェクトで共有したい。
ただしプロジェクトの tag を打つ場合はその時点で使用されている texmf もセットで tag を打っておき、その tag をチェックアウトする事でサブプロジェクトのセットを再構築できる必要がある。
@ 作業ディレクトリを2つチェックアウトする方法
trunk/project/2005 trunk/texmf
の2つをチェックアウトする。2005 ディレクトリからは ../../texmf で参照するようにする。
@ 利点
- texmf を一括管理できる。
@ 欠点
- 作業者が2つの作業ディレクトリをこの構成でチェックアウトすることを知っている必要がある。間違えて違うURLをチェックアウトしてしまうかもしれない。
- 更新も毎回2つのディレクトリでする必要がある。texmf の update 忘れる等のミスをおかしやすい。
tag を打つ場合は
tags/release-1.0.0/project/2005 tags/release-1.0.0/texmf
と2つをとりまとめる必要がある。
@ サブプロジェクトにブランチを作る方法
texmf を trunk/project/2005/texmf のようにコピーする。
trunk
|
+- project
|
+- 2005
|
+- texmf
2005 ディレクトリからは texmf で参照するようにする。
@ 利点
- チェックアウトする人間は trunk/project/2005 をチェックアウトするだけで良い(texmf サブディレクトリは再帰的にチェックアウトされる)。
- trunk/project/2005 の tag を作るだけで、閉じたスナップショットを作れる。
- texmf が他のプロジェクトと独立する。
@ 欠点
- trunk/project/2005/texmf から trunk/texmf へのマージ、また逆へのマージを適宜行って同期しておく必要がある。骨が折れる。
- trunk の下にブランチ的な要素があるのがちょっと気持ち悪い。
@ 外部定義(svn:externals)を使う方法
trunk/project/2005 の svn:externals 属性として trunk/texmf のURLを指定し trunk/project/2005/texmf となるようにする。
@ 利点
- チェックアプトする人間は trunk/project/2005 をチェックアウトするだけで良い(texmf 外部定義は自動的にチェックアウトされる)。
- texmf を一括管理できる。
@ 欠点
- texmf 以下は別として扱われるので、更新処理などのオーバーヘッドが結構ある(遅い)。
- tag 打ちが面倒
tag を打つ際は
tags/release-1.0.0/project/2005 tags/release-1.0.0/texmf
と2つをとりまとめた上、tags/release-1.0.0/project/2005 の svn:externals のURLを書き換える必要がある。
将来リポジトリが移動してURLが変わった際も(実体は同じリポジトリにあるにもかかわらず)全てのURLを書き換える必要がある。
あるいは tag を打つ際に svn:externals をクリアし tags/release-1.0.0/project/texmf とコピーする方法もある。
@ どれにするか?
去年は外部定義を使用する方法で運用してみたが、update が遅い等それほど使い勝手が良くなかった。
今回はブランチ方式にしようかなと思う。 マージが面倒なようなら、次回は一番上の方式で。
- ドキュメント管理用 Subversion リポジトリ作成 (2004-03-04)
- Subversion で間違えてディレクトリをごっそり消してコミットしてし... (2006-11-28)
- Subversion (2004-02-18)
- プロジェクト関連ドキュメントを TeX で (2004-07-23)
- Apache でミラー proxy (2002-04-17)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.250654s / load averages: 0.32, 0.37, 0.33
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク