2 つの異なるソースを持つ特定のフォルダーに対して SVN サブバージョン システム (ところで、私は Ubuntu 11.10 を使用しています) をセットアップし、変更を同時に追跡することは可能でしょうか?
状況は次のとおりです。
(svn://... から) 定期的に更新されるオープン ソース プロジェクトがあります。これをベースとして、必要な機能を追加します。私には、変更を送信したり、開発者の svn でブランチを作成したりする権利がありません。
コードの変更 ローカル svn (file:///usr/...) を介して変更内容を追跡します
私がやりたいことは、私のバージョンを公式の更新と時々マージすることですが、それでも私の個人的なローカル svn は保持します。設定方法を教えてください。
それとも、SVN (公式のサブバージョン用) + Git などの他のシステムを使用する方が簡単でしょうか?
p/s/ 私は、Subclipse プラグインを使用した Eclipse でのみ、自分でコードを作成しています。
更新1:
SVNの本を読んで、それがおそらく私の場合にブランチを作成する方法です:
初期インポート:
svn import /path/to/3rd-party-code \
file:///usr/.../vendor/name/current \
-m "importing initial 1.0 vendor drop"
タグを付ける:
svn copy file:///usr/.../vendor/name/current \
file:///usr/.../vendor/name/1.0 \
-m "tagging name-1.0"
トランクに持ち込む:
svn copy file:///usr/.../vendor/name/1.0 \
file:///usr/.../trunk/ \
-m "bringing name-1.0 into the trunk"
次に、トランクからチェックアウトして、変更を開始します。では、「外部」によって物事はどのように変化するのでしょうか。
更新 2:
これは、すべてを最初から行う方法ですか:
svnadmin create /usr/.../svnrepo
svn import svn://path/to/3rd-party-code \
file:///usr/.../svnrepo/name/branch/official \
-m "importing initial XXXX rev. vendor drop"
svn copy file:///usr/.../svnrepo/name/branch/official \
file:///usr/.../svnrepo/name/trunk \
-m "bringing rev XXXX into the trunk"
svn propedit svn:externals svn://path/to/3rd-party-code name/branch/official
マージ:
svn merge -r XXXX:HEAD name/branch/official
svn ci -m "Merged YYYY official revision to trunk"
更新 3:
svnadmin create /usr/.../svnrepo
svn mkdir -m "Create folders" \
file:///usr/../svnrepo/name/branches \
file:///usr/../svnrepo/name/branches/official \
file:///usr/../svnrepo/name/trunk
外観:
svn propedit svn:externals file:///usr/.../svnrepo/name/branches/official
(「svn://path/to/3rd-party-code」と入力)
svn copy file:///usr/.../svnrepo/name/branches/official \
file:///usr/.../svnrepo/name/trunk \
-m "bringing rev XXXX into the trunk"
さて、問題は、トランクを「共同」すると、次の構造が得られることです。
official/svn:externals/folder1/file1
これは私が確かに望んでいないものです:)
マージ:
svn merge name/branches/official
svn ci -m "Merged YYYY official revision to trunk"