6

次のコマンドを使用して、CVS リポジトリを Git リポジトリに変換します。

$ git cvsimport -vaikd :pserver:thillaiselvan@192.168.1.11:2401/ -C IVR-GUI GIT

ただし、Git は CVS リポジトリ内の空のディレクトリを無視します。しかし、それらの空のリポジトリを含めて、リポジトリを複製したいと考えています。どうすればGitにそれをさせることができますか?

4

1 に答える 1

5

Git は空のディレクトリを追跡できないため、CVS から Git への変換では取り込まれません。Git FAQから:「ディレクトリ内にファイルを追加すると、ディレクトリが自動的に追加されます。」Git はディレクトリ内で何も追跡していないため、ディレクトリは表示されません。

Git で空のリポジトリを追跡する方法

空のディレクトリを追跡する 1 つの回避策は.gitkeep、各空のディレクトリのように空のファイルを配置することです (.gitkeep慣例では が使用されますが、このファイルには任意の名前を付けることができます)。ファイルを追跡すると、空のディレクトリを複製できます。空のディレクトリを Git リポジトリに追加する方法は他にもいくつかあります。

既存の CVS リポジトリから空のファイルを手動でコピーする

次のコマンドは、cvs リポジトリ内のすべての空のディレクトリを Git リポジトリにコピーします (ダミーのディレクトリ パスに置き換えます)。

$ find ~/cvs_repo -type d -empty -exec cp -r {} ~/git_repo/ \;

次に、選択した回避策を使用してこれらの空のディレクトリをプロジェクトに追加し、$git commit -m "Add empty directories to repository".

cvsimport?で手順を自動化する

これで、cvsimportVCS でのこの違いを補うことができると思います (CVS では空のディレクトリを追跡できますが、Git では追跡できません)。このツールについては何も知りませんが、空のディレクトリの追加を自動的に処理するために渡すことができるオプションがあるかもしれません。

于 2012-08-10T03:51:54.923 に答える