Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何克隆具有空目录的CVS存储库_Git_Cvs_Git Clone_Cvsimport - Fatal编程技术网

Git 如何克隆具有空目录的CVS存储库

Git 如何克隆具有空目录的CVS存储库,git,cvs,git-clone,cvsimport,Git,Cvs,Git Clone,Cvsimport,我使用以下命令将CVS存储库转换为Git存储库: $ git cvsimport -vaikd :pserver:thillaiselvan@192.168.1.11:2401/ -C IVR-GUI GIT 但是,Git会忽略CVS存储库中的空目录。但是我想克隆存储库,包括那些空的存储库。如何使Git做到这一点?Git无法跟踪空目录,因此在CVS Git转换过程中不会引入空目录。从中选择:“在目录中添加文件时会自动添加目录。”您的目录不会显示,因为Git没有跟踪其中的任何内容 如何在Git中

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

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

但是,Git会忽略CVS存储库中的空目录。但是我想克隆存储库,包括那些空的存储库。如何使Git做到这一点?

Git无法跟踪空目录,因此在CVS Git转换过程中不会引入空目录。从中选择:“在目录中添加文件时会自动添加目录。”您的目录不会显示,因为Git没有跟踪其中的任何内容

如何在Git中跟踪空存储库 跟踪空目录的一种解决方法是在每个空目录中放置一个空文件,如
.gitcept
.gitcept
按惯例使用,但您可以随意命名此文件)。跟踪这些文件,然后就可以克隆空目录。还有一些其他的方法来解决这个问题

从预先存在的CVS存储库手动复制空文件 下面的命令将把cvs repo中的所有空目录复制到Git存储库(替换虚拟目录路径)

然后,您可以使用您选择的解决方案将这些空目录添加到项目中,然后执行类似于
$git commit-m“将空目录添加到存储库”
的操作

使用
cvsimport
自动执行过程?
现在,我假设
cvsimport
将补偿VCS中的这种差异(CVS允许跟踪空目录,Git不允许)。我对该工具一无所知,但也许你可以通过一个选项让它自动处理添加空目录。

实际上我已经将cvs存储库转换为git。现在从git克隆它们,我无法获得这些空目录:(我通常添加一个空的.gitignore文件。David和Milan都是正确的,但我看到(并因此使用)的惯例是在您想要保留的目录中创建一个空的.gitkeep文件。.gitkeep对git没有任何特殊意义,但它是一个文件(因此它将保留目录),并且从它的名称来看,它的用途是非常明显的。@thillaiselvan,如果我理解正确,您的问题是您无法获得CVS曾经在当前Git存储库中跟踪过的空目录?我添加了一个部分,应该会有所帮助。如果我误解了,请告诉我。@thillaiselvan。好的!您应该在问题中包括这一点所以,您要做的是将ssh连接到服务器中,使用我上面给出的
find
命令查找所有空目录,然后手动将它们复制到新的Git存储库中(然后使用您选择的hack添加这些目录)。在cvs Git转换过程中,我猜这些空目录丢失了。您需要手动补偿Git和cvs之间的差异。
$ find ~/cvs_repo -type d -empty -exec cp -r {} ~/git_repo/ \;