シンプルなオンタイム インポートを使用して、既存の SVN リポジトリを GIT に移行しています。
$ subgit import --svn-url http://svn/repo repo.git
すべて正常に動作しますが、SubGit によって作成された各 GIT コミットに対応する SVN リビジョン番号を含める機会はありますか?
現在、そのような機能はありませんが、同様の効果を持つものがあります。
Git リポジトリへのアクセスを設定するときは、クローンを作成した後、SubGit book のこの推奨事項に従うことができます。.git/config
つまり、設定するファイルを編集します
[remote "origin"]
...
fetch = +refs/svn/map:refs/notes/commits
そして実行します
git fetch
Git ノートをダウンロードするには. その後、「git log」はリビジョン番号を表示します。
さらに、スクリプトからSHA-1ハッシュでリビジョン番号を見つける必要がある場合、またはその逆の場合は、次を実行できます
git log --all --format="%H %N"
出力は次のようになります。
669d570bc561023034c7b28fd6e0a369662b1258
aa628cf9ac100bb144f50490d403e2dcacfd0842 r3624 trunk
db76bb8572f62169a9a28532890610b5a6c234c9
c5b2a475ce5fce72a620064b7b9507af2ec10212 r3623 branches/feature
a5938100859e6d1a245f84907acd33cf8092eb96
086773418197047b523cda6e892441b1364c56f7 r3622 branches/feature
f47b87de14a9d476cd8efd708e0571512875faf9
fb8edc1b9ad1668c1930f8db6f6e43c08d02baa1
64fd8ef37200438dd4068255ff56ac09e73a8259
00cc3cc581593c90155569fadb47c0d99565a362
7ca753c7c8ae572ceff235eb8f68d1e8805f0bc4 r3621 branches/feature
827a04ebede055a6847b52d416efe04b9e81511e r3620 branches/feature
その後、grep、awk、sed、およびその他の好きなツールを使用して、リビジョンで SHA1 を検索したり、その逆を行ったりできます。
リビジョン番号のない行は、Git ノート自体に対応し (コミットの Git ノートは他の Git コミットに保存されます)、ノートで注釈が付けられていない、つまり SVN から翻訳されていない Git コミットのみに対応します。メモの末尾に LF 文字が含まれているため、メモを含むコミットの後に空の行が追加されます。grep と awk は、それらを無視するのに優れています。
リビジョンがコミットメッセージに直接入れられる場合よりも、これが便利であることを願っています。
最後に、これはすべてインポートだけでなく、継続的な同期でも機能することを付け加えておきます。
私は SubGit 開発者の 1 人です。