最近我们的svn服务器发生了变化,我们做了一个svn开关.
由于工作副本有大量的无版本资源,工作副本被锁定,我们开始在文件夹下为svn下的所有文件夹切换文件夹,这完全正常.
但是在存储库的最顶层,当我尝试更新文件时,我得到了svn:Working copy'.' 锁定错误和清理也无济于事.当我进行清理时,我会收到类似这样的错误 - svn:'content'不是工作副本目录
新鲜的结账不是一个选择.有没有其他方法可以清理和释放锁并完全切换?
编辑: JesperE答案中的最后一段
如果在进行递归"svn清理"时得到"非工作副本",我的猜测是你有一个应该是工作副本的目录(即toplevel的.svn目录这样说),但它缺少它拥有.svn目录.在这种情况下,您可以尝试删除/移动该目录,然后进行本地更新
似乎是存储库中问题的解决方案.我已经确定了那些文件夹并单独对这些特定文件夹进行了新的检查,并且哇,锁在随后的清理中被释放!非常感谢JesperE !!
但是,我仍然无法弄清楚现在读取的svn开关错误,
svn:'svn:// repourl/reponame/foldername'的存储库有uuid'm/reponame',但WC有'b5b39681-0ff6-784b-ad26-2846b9ea8e7d'
有任何想法吗 ?
如何"删除"已存在于SVN存储库中的文件而不从文件系统中删除它?
欢迎使用TortoiseSVN或命令行说明.
以下作品,但我希望有更好的东西:
有没有办法只提交特定文件列表(eq只是SVN想要提交的文件列表之一).
我正在终端下的MAC OS X上工作,没有任何UI.
svn
Windows 是否有基于命令行的版本?我知道我可以获得TortoiseSVN,但这对我不起作用.
我正在尝试为SVN编写一个post-commit挂钩,它挂在我们的开发服务器上.我的目标是尝试自动将已提交项目的副本签出到服务器上托管的目录.但是,我需要能够只读取传递给脚本的目录字符串中的最后一个目录,以便签出到托管我们项目的同一子目录.
例如,如果我对项目"example"进行SVN提交,我的脚本会将"/ usr/local/svn/repos/example"作为其第一个参数.我需要在字符串的末尾添加"示例",然后用另一个字符串连接它,这样我就可以签出到"/ server/root/example"并立即查看更改.
我有一个SVN工作目录.我在该目录中进行了一些更改,它显示在svn status
.但有没有办法让我删除我在那里的所有更改,并使用命令行从主干获取所有内容?
我正在做一个递归的svn add/commit,并且包含了一个没有正确的ignore属性的文件夹.我现在有大约100个已上传的二进制文件版本,但我尚未提交.
在不删除所有文档的情况下,"撤消"此操作的最简单方法是什么?
键入svn log
在命令行上吐出一个令人难以置信的长而无用的列表.我不知道为什么这是默认值.如果我想在终端上阅读(甚至可以阅读)300个条目,我不介意打字svn log --full
或类似的东西.
也许SVN的人认为我想把这个输出提供给另一个程序.但是,如果是这种情况,那么对程序进行更详细的调用会更有意义 - 而不是终端用户.
无论如何,我怎么看到最近的一些活动,比如过去的5或10个条目,看看有什么变化?
对于许多Subversion操作,将"@"符号附加到文件或URL参数的末尾允许您定位该文件的特定修订.例如,"svn info test.txt@1234"将提供有关test.txt的信息,因为它存在于修订版1234中.
但是,当文件名包含@时,Subversion会将其错误地解释为修订说明符:
svn info'test @ .txt'svn:语法错误解析修订版'.txt'
我尝试过双引号和单引号以及使用'/','\'和'@'转义.如何告诉Subversion将@符号视为文件名的一部分?