svn checkout到现有签出的父目录而不移动文件

时间:2014-02-18 17:49:36

标签: svn

我在SVN上有这样的目录结构(对于TYPO3网页):

webroot/
      fileadmin/
              css/
              ts/
      typo3conf/
              ext/
              ...

我检出了 fileadmin typo3conf 到我服务器的webroot。 后来我不得不将一些文件添加到webroot本身(即不进入上面的一个子目录)。

现在,如果我尝试将 webroot 签出到我的服务器,SVN会抱怨现有的子树(fileadmin,typo3conf)。 --force标志也不起作用。

我找到了一些来回移动子树的解决方案。但这对我来说不是一个选择,因为这是一个正在运行的服务器。

是否有其他选项而无需移动已检出的子树?

2 个答案:

答案 0 :(得分:0)

只有当您的svn存储库包含带有子目录webrootfileadmin的{​​{1}}目录时,才能执行此操作。

否则,您首先必须创建这样的目录结构。然后,实现您想要的一种方法是替换您的实时typo3conf目录。

为此你可以查看一个新的.svn实例,并且(如果你真的希望你的实时文件不受影响)扔掉除webroot目录之外的所有内容。

然后在您的实时目录.svn上删除所有目录webroot,并将其替换为新结帐中的目录。

之后,在您的实时.svn目录中有一个一致的svn目录结构,您应该可以在顶级目录中添加文件。

答案 1 :(得分:0)

如果最终找到了一个非常简单的解决方案:首先,我将 webroot 存储库以“immediates”的深度签出到临时文件夹中:

mkdir tmp
svn co --depth immediates URL/webroot tmp  
A    tmp/typo3conf
A    tmp/fileadmin
A    ....

然后我将整个父.svn移动到未版本化的父目录:

mv -R tmp/.svn webroot/

就是这样!