すべての svn-remote について、git-svn は最新のフェッチされたリビジョンを.git/svn/.metadata
ファイルに保存します。その値よりも小さいリビジョンを取得することはありません。そのため、config に追加したブランチをフェッチしません。git-svn は、fuze_node
ブランチが既に変換されていると考えています。
ただし、リポジトリ全体を再度クローンしなくても、このブランチを取得できます。
- 取得する必要があるすべてのブランチを含む別の svn-remote を追加します。
- 古い svn-remote を削除します。
- 実行
git svn fetch -R newer-svn-remote
して、追加されたブランチからリビジョンを取得します。
設定は次のようになります。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
# [svn-remote "svn"]
# url = https://svn.example.com/repository
# fetch = trunk/Python:refs/remotes/trunk
# branches = branches/{stage,prod,stage_with_proxy}/ucapi/:refs/remotes/*
# branches = branches/{active}/Python/:refs/remotes/*
[svn-remote "newer-svn-remote"]
url = https://svn.example.com/repository
fetch = trunk/Python:refs/remotes/trunk
branches = branches/{stage,prod,stage_with_proxy}/ucapi/:refs/remotes/*
branches = branches/{active}/Python/:refs/remotes/*
branches = branches/{fuze_node}/:refs/remotes/*
古い svn-remote とまったく同じブランチ マッピングを指定する必要があることに注意してください。
branches = branches/{stage,prod,stage_with_proxy}/ucapi/:refs/remotes/*
つまり、refs/remotes/*は引き続きマッピングの右側にある必要があります。そうしないと、git-svn は既に変換されたコミットを検出できず、もう一度フェッチしようとします。
実際には、同じことを達成する別の方法があります。ただし、内部の git-svn ファイルを操作する必要があります。
必要なブランチを追加してファイル.git/config
を更新するだけで、最新のフェッチ済みリビジョンが 0 になります。.git/svn/.metadata
[svn-remote "svn"]
reposRoot = https://svn.example.com/repository
uuid = 8a6ef855-a4ab-4527-adea-27b4edd9acb6
branches-maxRev = 0
tags-maxRev = 0
その後、git svn fetch
必要なリビジョンのみを取得します。