2012-03-07 96 views
0

我正在尝试在subversion中为开发创建一个新条目。这是基于一个已经存在于Subversion中的项目。我不想基于该版本,因为这仅供参考,不能更改。SVN添加错误 - 不是工作副本

我试图用sts/eclipse中的subclipse导出它。但是,当我将顶级项目导入到sts/eclipse中时,项目结构不会保留。

sts/eclipse项目结构保留当我做结帐。所以我将该项目签出到不同的目录路径。然后,使用cywin的命令行,我用“find.name”.svn“-execrm-rf {} \;”递归地从项目中删除了所有.svn条目。

但是,当我试图将新项目添加到subversion中时,我得到一个“SVN添加错误 - 不是工作副本”的顶级目录。

我一直在检查/谷歌搜索,并且当该目录缺少.svn文件时发生此错误。因此,尽管删除了所有.svn目录,但Subversion仍然知道这个项目。如果我的水平更高,我会进入sts的“工作区”,(我不相信)那里有.svn条目。

为什么颠覆者认为在我删除所有标签之后这仍然是一个颠覆项目?我怎样才能将这个签出的目录作为一个新的条目添加到Subversion中?

回答

1

我认为这是你在找什么:

从Cygwin的命令行:

  1. svn export的一部开拓创新的项目到本地文件夹(svn export就像svn checkout但它不会创建所有的.svn文件夹)。
  2. svn addsvn commit该文件夹转化为颠覆。

下面是实现另一种方式完全一样同上,但它的速度更快:

  1. svn branch原始项目到一个新的位置(目录)。这会在存储库中创建原始项目(目录)的副本。
  2. svn checkout分支进入本地目录。现在

,如果你不希望保留原有的目录,因为你只打算从现在开始在新的一个工作的本地副本,那么这是最快办法做到这一点:

  1. svn branch将原始项目放到新的位置(目录)。这会在存储库中创建原始项目(目录)的副本。
  2. svn switch您原始项目(目录)的本地副本到新分支。
+0

在您的第一个解决方案中,如何添加没有任何.svn文件夹? – 2012-03-07 12:11:08

+0

谢谢。我在subclipse中遇到的问题是export命令不保留项目目录结构。 subclipse checkout命令提供了一些选项来保存它。你知道我是否会遇到与cygwin的svn客户端相同的问题? – 2012-03-07 12:34:32

+0

我喜欢svn分支的想法。结账会保存项目结构。 – 2012-03-07 12:36:04

0

可能有一个未提交的更改,例如,您向svn(但未提交)添加了一些目录/文件,然后意外删除了它们。

使用“SVN词”命令来查看,如果您有任何变化,如果有错过提交的文件,你会得到这样的错误: 的svn:提交失败(细节如下): 的svn:目录“XXX”缺失

然后使用“svn revert”恢复更改。

之后,您可以现在重做'svn add'和'svn ci'。