5

Plastic SCMの高速エクスポート/高速インポートを作成していますが、名前にスペースが含まれるディレクトリとファイルの処理に問題があります。

たとえば、git fast-export次のようなものの

git mv "new directory" "second directory"

最終的に次のようにエクスポートされます。

D new directory/hello.c
M 100644 :1 second directory/hello.c

move" "(R)操作の代わりに。名前にスペースが含まれるファイルでも同じことが起こります。

正しく処理する方法はありますか?
Git はスペースを含むパスの名前変更を処理できないということですか?

以下の実際の例で編集:

私はコミットで次のようなものを持っています:

  R src/samples/sampledata src/samples/samplebase
* R src/samples/samplebase/Test.Workflow.xml src/samples/samplebase/new/Test.Workflow.xml

と言ってインポートに失敗します

fatal: Path src/samples/samplebase/Test.Workflow.xml not in branch

だから、ディレクトリの移動とその中のファイルの移動をサポートしていないことを理解しています...少し奇妙ですね。

4

1 に答える 1

2

git fast-import「名前の変更の処理」セクションで言及しています:

名前を変更したファイルまたはディレクトリをインポートする場合は、古い名前を削除し、対応するコミット中に新しい名前を変更するだけです。Git は、コミット中に明示的にではなく、事後に名前変更の検出を実行します。

したがって、あなたの例はそのロジックに従っているようです。

Git はディレクトリをバージョン管理せず、ブロブ (つまり、パスが関連付けられたファイル コンテンツ) のみをバージョン管理することを忘れないでください。


編集した質問に追加するには:

  • ディレクトリの移動とは、Git にインポートされた場合、すべてのファイルが処理された後(つまり、インポートされたか、名前が変更されたかどうかに関係なく) 、ソース (ディレクトリ) を削除する必要があることを意味します。
  • Git にインポートされたときのファイルの移動は、古典的なgit mv.

2011 年、OPは古い gmane リストに質問を投稿しました
そして、この問題は現在 (2017) Git for Windows ( git-for-windows/gitissue 908)で議論されています。

于 2011-01-21T10:08:54.727 に答える