4

SVN にプロジェクトがあり、git-svn で複製しようとしました。git-svn docsの例に従いました。

git svn clone  svn+ssh://host/path/trunk  project_name

コマンドはエラーメッセージなしで完了しましたが、複製されたプロジェクトには、SVN のプロジェクトとしてすべてのディレクトリが含まれていません。

トップレベルでは、私のSVNプロジェクトには...

$ svn ls  svn+ssh://host/path/trunk
README
Rakefile
app/
config/
db/
doc/
lib/
log/
public/
script/
test/
tmp/
vendor/

クローン作成後、ローカルで...

README
Rakefile
app
config
doc
public
script
test

欠落しているサブディレクトリもあります。


アップデート

同じホストで別のプロジェクトを実験的に複製しました。うまくいったようです。これの何が特別なの?クローンを作成する前に、作成してSVNにインポートしたことを除いて、私が考えることができるものは何もありません。それは違いを生むでしょうか?


完全に新しいプロジェクトを作成し、SVN にインポートして複製しようとしました。同じ結果、同じ行方不明のディレクトリが得られました。

4

3 に答える 3

11

私の知る限り、gitは空のディレクトリを追跡しません。

http://git.or.cz/gitwiki/GitFaq#CanIaddemptydirectories.3F

つまり、ディレクトリをリポジトリに追加する必要はなく、ディレクトリ自体が追跡されることもありません。

これは意味がありますか?不足しているディレクトリは空ですか?

于 2009-07-01T14:12:20.163 に答える
1

あなたは試すことができます

svn2git

また

git svn clone  svn+ssh://host/path project_name --trunk=trunk/*

git 1.6以降には何らかの形のディープクローンがありますが、これが正しい構文かどうかはわかりません

于 2009-06-30T19:48:36.733 に答える
1

SVN がsvn:external (コメントを参照) を使用していないことは確かですか?
そのプロセスの詳細については、記事「svn から git への移行」を参照してください。

svn-git外部のフェッチをサポートしていないことを何らかの形で警告する必要があります。
これはsvn log、 にこれらのファイルのチェックインがないことに気づき、クリーンアップを行ったときにsvn checkoutvendor/plugins ディレクトリの外部ファイルを取得していることに気づきました。

そこで、vendor/plugins ディレクトリを逐語的に取り込み、外部参照を切り離し、アップグレードするときに git サブモジュールに移動することにしました。
私が本当にやりたかったことは、プラグイン コードを http URL として参照し、サブモジュールとして保持することでした。これにより、ソースの場所とリビジョンを簡単に参照できるようになりました。

于 2009-06-30T19:29:56.257 に答える