外部の SVN リポジトリをリポジトリのサブツリーとして「サブツリー マージ」して使用しようとしています。これにより、ライブラリ内のファイルの履歴がそのまま保持されるはずですが、機能していません。マスター ブランチのサブツリーにマージされたライブラリには履歴がありませんが、それらを追加したときのコミットについてです。
lappy8086:YACYAML jamie$ git log --graph
* commit 0cc6c4e5061741e67d009f3375ce1d2bcd3ab540
| Author: James Montgomerie
| Date: Thu May 17 12:04:43 2012 +0100
|
| Subtree-merge in libYAML (from a git-svn checkout).
|
* commit b5af5af109d77f6adafebc3dcf5a4796a5035a2e
Author: James Montgomerie
Date: Thu May 17 11:47:32 2012 +0100
First commit, add .gitignore.
これを機能させるために私がやっていることは次のとおりです。
# check out SVN repo
git svn clone http://svn.pyyaml.org/libyaml/branches/stable libYAML
# create my repo
mkdir YACYAML
cd YACYAML
git init
touch .gitignore
git add .gitignore
git commit -m "First commit, add .gitignore"
# Fetch from git-svn repo I got earlier
git remote add libyaml-svn ../libYAML/
git fetch libyaml-svn
git checkout -b libyaml-svn libyaml-svn/master
# Switch back to master, and try to merge in subtree
git checkout master
git read-tree --prefix=libYAML/ -u libyaml-svn/master
git commit -m "Merge in libYAML as subtree (from git-svn checkout of SVN repo)"
これは「機能します」が、私が言ったように、履歴を見ると、libYAML リポジトリからの完全な履歴が表示されることを期待していますが、そうではありません-上記のとおりです。