SVN错误 – 不是工作副本

最近我们的svn服务器被改变了,我们做了一个svn切换。

由于工作副本有大量未版本化的资源,工作副本被locking,我们开始切换文件夹下的所有文件夹在svn下,这工作得很好。

但是在存储库的最顶层,当我尝试更新文件时,我得到了svn:Working copy'。 locking的错误和清理也没有帮助。 当我做清理,我得到这样的错误 – svn:'content'不是一个工作副本目录

新鲜的结帐是不是一个选项。 有没有其他的方法来清理和释放锁,完全切换开关?

编辑: JesperE的答案的最后一段

如果在执行recursion“svn清理”时出现“不是工作副本”,那么我的猜测是你有一个应该是工作副本的目录(即顶层的.svn目录是这样说的),但是它缺less它拥有.svn目录。 在这种情况下,您可以尝试删除/移动该目录,然后执行本地更新

似乎是存储库中问题的解决scheme。 我已经确定了这些文件夹,并单独做了一个新的检查这些特定的文件夹,哇,锁在随后的清理! 非常感谢JesperE!

但是,我仍然无法弄清楚现在读取类似的svn开关错误,

svn:'svn:// repourl / reponame / foldername'的存储库有uuid'm / reponame',但是WC有'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

有任何想法吗 ?

如果在执行recursionsvn cleanup时得到一个“不是工作副本”,我的猜测是你有一个应该是工作副本的目录(即顶层的.svn目录是这样说的),但是它缺less它自己的.svn目录。 在这种情况下,您可以尝试删除/移动该目录,然后执行本地更新(即rm -rf content; svn checkout content )。

如果你得到一个not a working copy错误,这意味着Subversion在那里找不到一个正确的.svn目录。 检查contents是否有.svn目录

如果可能的话,理想的解决scheme是全新结帐。

我遇到过类似的情况( svn: 'papers' is not a working copy directory ),所以我想我会发布我的战斗故事(简化版):

 $ svn add papers svn: Can't create directory 'papers/.svn': Permission denied 

哎呀! 修复权限…然后:

 $ svn add papers svn: warning: 'papers' is already under version control $ svn st ~ papers $ svn cleanup svn: 'papers' is not a working copy directory 

即使移动papers并运行svn up (为OP工作)没有解决它。 以下是我所做的:

 $ mv papers papers_ $ svn cleanup $ svn revert papers Reverted 'papers' $ mv papers_/ papers $ svn add papers 

这工作。

我解决了它

  1. 复制受影响的文件夹的备份
  2. SVN恢复受影响的文件夹
  3. 从备份粘贴文件

在我的情况下,问题是由于删除.svn文件。

也许你只是复制文件夹的树,并试图添加最低的一个。

 SVN |_ | subfolder1 | subfolder2 (here you get an error) 

在这种情况下,你必须在上层提交目录。

解决方法:重命名不是“工作副本”的目录再次检出/更新/恢复该目录将文件从重命名的目录移动到新的提交更改

原因:您对.svn目录下的某些文件进行了一些更改,这会打破“工作副本”

我只是“没有工作副本”,对我来说,原因是Unix上的Automouter。 只是一个新的“CD /path/到/工作/目录”伎俩。

如果你在一个新目录里创build了一个文件,而不是'svn add newdir / newfile',使用'svn add newdir',因为你需要添加目录。 目录内的所有文件将被默认添加。

同样,我需要更新一个'contrib'文件夹:

  1. 将旧文件夹移出,
  2. 复制新的
  3. 复制.svn文件夹到每个(只有三个在我的情况下)新文件夹。

我的情况也是这个问题是由于删除.svn文件夹。

解决了。

我试图将.svn文件夹从子文件夹粘贴到根文件夹。 有用!!!

这就是我所做的:

  1. 将主干重命名为trunk_
  2. 创build一个新的文件夹中继
  3. 签出几个文件后重新签出并中断该过程
  4. 将文件从trunk_移到trunk
  5. 做svn清理
  6. 做svn更新。 这将更新文件的状态,然后所有的文件将被版本化。

我也在svn diff操作中遇到这个问题,它是由不正确的文件path引起的,你应该添加'./'来表示当前的文件目录。

svn:'svn:// repourl / reponame / foldername'的存储库有uuid'm / reponame',但是WC有'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'

每个颠覆回购有一个唯一的标识符(uuid)。 Subversion使用这个来确保repo在切换等事情时是相同的。 你可能应该改变服务器上的uuid和以前一样。

它可能是一个工作副本格式不匹配? 它在svn 1.4和1.5之间改变,新的工具会自动转换格式,但是旧的不再使用转换后的文件。

你必须从你的项目中删除一个SVN基础文件(这是只读文件)。 由于这个,你会得到这个错误。

再次检查一个新的项目,使用“Winmerge”合并你的旧SVN项目的变化(如果有的话),并在最新的检查中提交更改。

@JesperE 提到你需要改变uuid。 以下应该可以帮助你实现这一点。

在SVN 1.5+上,你可以做svnadmin setuuid; 然后你可以使用svnlook uuid检查它是否被正确设置。 在较早版本的SVN中,这是一个更难的过程。 见http://chestofbook.com/computers/revision-control/subversion-svn/Managing-Repository-UUIDs-Reposadmin-Maint-Uuids.html

另外,“m / reponame”的UUID看起来很可疑。 我相信它应该是一个hex格式的数字,如工作副本,所以也许这个行动将改善事情全面:-)

[我最初评论@ JesperE的答案 ,但创造了这个答案,使人们更明显,更有助于谷歌。 我已经删除了我的意见。 ]

有同样的问题,原来我们在同一台机器上有Slik 1.6.2和Tortoise。 乌龟已更新(并更新了工作副本),但Slik没有,所以乌龟工作正常,但命令行失败:

svn:'。' 不是工作副本目录

删除乌龟和Slik,然后重新安装乌龟与命令行工具启用固定这个给我。

对于mac: – 从服务器端进行检出,并打开一个新窗口,从本地机器select目录,而不是将所有代码放入选定的文件夹,然后打开svn本地端,添加并提交项目

今天我发现了同样的问题/FILE_NAME/ is not a working copy在早上/FILE_NAME/ is not a working copy ,我花了两个多小时来解决它。 经过长时间的RND和谷歌我find了一些解决scheme,这是CHECKOUT

  1. SUBVERSION到本地的CHECKOUT作为新项目。
  2. 更改java文件中的一些代码并提交项目。
  3. 这对我很有用。

希望这会对你有所帮助。

删除本地计算机中存在的.svn文件夹。 按下windows图标并键入.svn,删除整个文件夹。 它为我工作。