如何使用空目录克隆CVS存储库

thi*_*van 6 git cvs git-clone cvsimport

我使用以下命令将CVS存储库转换为Git存储库:

$ git cvsimport -vaikd :pserver:thillaiselvan@192.168.1.11:2401/ -C IVR-GUI GIT
Run Code Online (Sandbox Code Playgroud)

但是,Git会忽略CVS存储库中的空目录.但我希望克隆存储库,包括那些空存储库.我怎么能让Git这样做?

Dav*_*ain 5

Git无法跟踪空目录,因此它们不会在CVS-Git转换中被引入.来自Git FAQ:"在其中添加文件时会自动添加目录." 您的目录不会出现,因为Git没有跟踪其中的任何内容.

如何在Git中跟踪空存储库

跟踪空目录的一种解决方法是放置一个空文件,就像.gitkeep在每个空目录中一样(.gitkeep按惯例使用,但您可以将此文件命名为您想要的任何内容).跟踪文件,然后您将能够克隆空目录.还有一些其他方法可以将空目录添加到Git存储库.

从预先存在的CVS存储库中手动复制空文件

以下命令将cvs repo中的所有空目录复制到Git存储库(替换虚拟目录路径)

$ find ~/cvs_repo -type d -empty -exec cp -r {} ~/git_repo/ \;
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用您选择的解决方法将这些空目录添加到项目中,并跟进类似的内容$git commit -m "Add empty directories to repository".

cvsimport?自动化程序?

现在,我认为这cvsimport将弥补VCS中的这种差异(CVS允许您跟踪空目录,Git不会).我对这个工具一无所知,但也许你可以通过一个选项让它自动处理添加空目录.