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
这工作。
我解决了它
- 复制受影响的文件夹的备份
- SVN恢复受影响的文件夹
- 从备份粘贴文件
在我的情况下,问题是由于删除.svn文件。
也许你只是复制文件夹的树,并试图添加最低的一个。
SVN |_ | subfolder1 | subfolder2 (here you get an error)
在这种情况下,你必须在上层提交目录。
解决方法:重命名不是“工作副本”的目录再次检出/更新/恢复该目录将文件从重命名的目录移动到新的提交更改
原因:您对.svn目录下的某些文件进行了一些更改,这会打破“工作副本”
我只是“没有工作副本”,对我来说,原因是Unix上的Automouter。 只是一个新的“CD /path/到/工作/目录”伎俩。
如果你在一个新目录里创build了一个文件,而不是'svn add newdir / newfile',使用'svn add newdir',因为你需要添加目录。 目录内的所有文件将被默认添加。
同样,我需要更新一个'contrib'文件夹:
- 将旧文件夹移出,
- 复制新的
- 复制.svn文件夹到每个(只有三个在我的情况下)新文件夹。
我的情况也是这个问题是由于删除.svn文件夹。
解决了。
我试图将.svn文件夹从子文件夹粘贴到根文件夹。 有用!!!
这就是我所做的:
- 将主干重命名为trunk_
- 创build一个新的文件夹中继
- 签出几个文件后重新签出并中断该过程
- 将文件从trunk_移到trunk
- 做svn清理
- 做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
。
- 从
SUBVERSION
到本地的CHECKOUT
作为新项目。 - 更改java文件中的一些代码并提交项目。
- 这对我很有用。
希望这会对你有所帮助。
删除本地计算机中存在的.svn文件夹。 按下windows图标并键入.svn,删除整个文件夹。 它为我工作。