git-svn を使用して作成された git リポジトリで、それぞれがリモートとしてマップされているブランチ用の複数のディレクトリを持つ単一の Subversion サーバーを持つことは可能ですか?
既存のセットアップ
- トランク:
http://svn.example.com/trunk
- 私の枝:
http://svn.example.com/developers/luisgo/branches
- 私のタグ:
http://svn.example.com/developers/luisgo/tags
- 私のスクラムチームのブランチ:
http://svn.example.com/teams/scrum-01/branches
- 私のスクラムチームのタグ:
http://svn.example.com/teams/scrum-01/tags
- 会社の支店:
http://svn.example.com/branches
- 会社のタグ:
http://svn.example.com/releases
これはレガシーであり、git に移行中ですが、git-svn を使用できることを証明しようとしています。
- サーバー上の私の個人用サブバージョン ディレクトリへの 1 つの「個人用」リモート ポイント
- サーバー上のスクラムチームのサブバージョンディレクトリへの1つの「スクラム」リモートポイントと
- サーバー上の会社のサブバージョン ディレクトリへの 1 つの「会社」リモート ポイント
リモコンの名前がそれぞれpersonal/branches
, personal/tags
, scrum/branches
, でscrum/tags
ある必要がある場合でも、気にしないことに注意してください。company/branches
company/tags
personal/branches/some-feature-branch
最終的には、ローカルであるだけでなく、プッシュされ、後で別のリモートにプッシュできるトランク(別名会社/マスター)のブランチを作成できるようにしたいと考えています(scrum/branches/some-feature-branch
コラボレーションのために、最終的にcompany/some-feature-branch
リリースのためにプッシュすることに注意してください。タグ付けを理解していますが、この議論の目的のために意図的に省略しています。
私はこれがうまくいくと思った:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
warnambiguousrefs = false
[svn-remote "svn"]
url = https://svn.example.com
fetch = trunk:refs/remotes/trunk
branches = developers/luisgo/branches/*:refs/remotes/svn/personal/branches/*
tags = developers/luisgo/tags/*:refs/remotes/svn/personal/tags/*
branches = teams/scrum-01/branches/*:refs/remotes/svn/scrum/branches/*
tags = teams/scrum-01/tags/*:refs/remotes/svn/scrum/tags/*
branches = branches/*:refs/remotes/svn/company/branches/*
tags = releases/*:refs/remotes/svn/company/tags/*
しかし、そうではありません。
編集 ==========================================
私は自分自身を間違って説明したと思います。技術的には、上記の例は機能します。私が達成しようとしているのは、分岐ディレクトリごとに1つの「リモート」作成を行うことです。
git push personal feature-branch
結果:
https://svn.example.com/developers/luisgo/branches/feature-branch
と...
git push scrum feature-branch
結果:
https://svn.example.com/teams/scrum-01/branches/feature-branch
と...
git push company feature-branch
結果:
https://svn.example.com/branches/feature-branch
本質的personal
に、scrum
とcompany
は、同じ svn サーバー内の異なる branch/* を持つリモートです。
私がこれをやろうとすると:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
warnambiguousrefs = false
[svn-remote "company"]
url = https://svn.example.com
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/svn/company/branches/*
tags = releases/*:refs/remotes/svn/company/tags/*
[svn-remote "personal"]
url = https://svn.example.com
fetch = trunk:refs/remotes/trunk
branches = developers/luisgo/branches/*:refs/remotes/svn/personal/branches/*
tags = developers/luisgo/tags/*:refs/remotes/svn/personal/tags/*
[svn-remote "scrum"]
url = https://svn.example.com
fetch = trunk:refs/remotes/trunk
branches = teams/scrum-01/branches/*:refs/remotes/svn/scrum/branches/*
tags = teams/scrum-01/tags/*:refs/remotes/svn/scrum/tags/*
複数のリモートに同じ URL が指定されているあいまいな設定を解決する必要があることがわかります。そうだと思いますが、これらは 1 つのトランクを共有しています。
編集終了 ==========================================
何か案は?これは可能ですか?
ありがとうございました、
ルイス
PS: これが適切な場所に投稿されていない場合は、お詫び申し上げます。喜んで動かします。炎上する必要はありません。