首页 文章

SVN - 不是工作副本错误

提问于
浏览
26

我正在把这头发拉出来 .

我有一个使用Subversion控制版本的站点 . 我使用aptana(eclipse,subclipse)来做svn . 我一直在检查和退出文件,更新等一切都很好 . 但是,我们一直在构建的系统一直在添加自己的文件和文件夹 .

当我尝试提交这些时,它告诉我 <path> 不是工作副本 . 如果我尝试进行清理,那么它会给出相同的错误 . 我发现我可以手动将每个文件添加到版本控制,但这会引发相同的错误 . 执行更新没有帮助,刷新工作区也没有做任何事情 . 错误后清理似乎消失,然后目录被锁定 .

我知道你应该使用SVN添加文件,但是你如何使用生成的文件呢?如何绕过这个“ <folder> 不是工作副本目录”错误?如何让Subversion只查看文件并将其添加到其存储库?

10 回答

  • 26

    如果要将生成的文件添加到SVN,请使用 svn add 以递归方式添加它们 - 这将确保所有目录都是工作副本的一部分,并且所有文件和目录都添加到SVN,并将作为一部分提交下一个 svn commit .

    但是,通常生成的文件和文件夹不应添加到SVN,因为它们是作为构建的一部分从源文件生成的 . 在这种情况下,您应该使用svn:ignore标记它们,使它们不属于工作副本 .

  • 0

    我今天遇到这个问题时,我试图添加一个文件夹“A”,其中我没有写入权限(因此无法创建A / .svn文件夹) .

    运行svn status给了我一个文件夹A旁边的“〜” . 运行svn cleanup说A的父级被锁定了 .

    最终工作的是:

    cp -r A A~    # backup, since A was not in the repo
    rm -rf A      # removed locked directory
    svn rm A      # remove A from pending commit
    mv ~A A       # restore backup
    svn add A     # re-add to pending commit
    svn cleanup   # (had to cleanup several parent folders higher as well)
    
  • 11

    不是工作副本错误意味着当前文件夹未被 SVN 正确初始化 .

    要修复错误,只需重命名当前文件夹,然后通过执行项目的 checkoutSVN 获取项目的正确工作副本 .

    然后,签出将创建该项目的正确配置的工作副本 .

  • 20

    我刚刚在工作副本中遇到了“非工作副本”错误 . 这是一个JDeveloper项目,结果是我刚安装的JDeveloper升级(11.1.1.2.0)包含了SVNKit的更高版本,而不是我用于命令行SVN访问(jsvn)的版本 . 因此,JDeveloper已经悄然升级了.svn文件的格式,这意味着命令行客户端无法理解它们 . 当jsvn在我项目的顶级目录中抱怨丢失文件“.svn / format”时,便士掉了下来 . 我在子文件夹中找到了大量的内容,所有内容看起来都相同,只包含数字“9” . 所以我将一个复制到顶级文件夹中,然后jsvn最终给出了一个适当的消息:“svn:这个客户端太旧了,无法使用工作副本' . ';请获得更新的Subversion客户端” . 一旦我确定(通过谷歌)并安装了兼容的客户端SVNKit级别,新改进的jsvn就能够识别出我的工作副本实际上是一个工作副本 . 故事的道德:如果你得到这个错误并且你在同一台机器上使用不同的SVN客户端,问题可能是他们已经不同步了 .

  • 0

    现在使用TortoiseSVN清理一些死目录 . 我对这些文件进行了备份,然后使用rep浏览器删除了有问题的dir(无论如何都是goner) . 然后清理项目工作,我现在可以继续使用我当前的文件 .

  • 2

    请尝试找出问题所在 . 这是缺少的.svn文件还是别的 . 请记住,完成签入后会创建.svn文件 . 并包含相应的目录路径,代码名称带有标记的唯一编号 . 转到您认为完美检查的项目的基本路径 . 创建一个新的临时包并在该路径中添加示例Java代码 . 添加到版本并尝试提交 . 如果您收到错误消息说该文件夹已被锁定(尝试锁定已锁定的文件夹),请转到.svn文件夹并重命名该锁定文件 . 再次尝试签入并提交

    如果它工作正常,那么你就完成了 . 使用相同的基目录并在清理后再次从该目录检查代码到文件夹级别 .

  • 1

    "Not a working copy"表示IDE尝试运行 svn 的地方之一不是由 svn 本身控制(就像在 svn 下的子目录中添加文件一样) . 我会说在IDE中检查你的路径 .

  • 0

    因为我使用可视化工具完成所有任务,所以我无法告诉您需要执行哪些命令 .

    这是我的环境,Windows XP . 使用Subversion 1.6.9的tortoiseSVN 1.6.7,使用Subclipse 1.6.10的Eclipse 3.5 . 并使用Windows上的可视SVN服务器管理存储库 .

    • 在由另一个工具创建的visual svn server I deleted the folder 中(这就是问题,就像Keltia所说的那样) .

    • 在我的Windows资源管理器中右键单击我的项目并使用tortoise SVN的选项按 update . 通过此操作,文件夹已在我的工作副本中删除 .

    • Commited 我的所有更改 .

    • 运行 create the folder (再次)的工具 .

    • 与乌龟SVN我用 add to ignore list 标记 .

    希望这可以帮助 .

  • 0

    在我的情况下,我将eclipse工作区移动到另一个,然后出现问题 . 为解决问题我从svn repo结账项目 . 然后在旧项目中我清理所有svn文件 . (简单搜索.svn和删除)然后我将内容复制到刚签出的内容,我的更改变得可见,我的项目是最新的 . 该方法可以应用于其他恼人的错误 . 希望有人帮忙

  • 1

    move 当前目录在另一个位置,并执行 svn update 命令,然后用移动目录替换目录
    如果使用 tortoisteSVN ,则可以在运行svn update之前运行清理你的根目录

相关问题