代码之家  ›  专栏  ›  技术社区  ›  Niyaz

SVN提交失败,因为我没有签出

  •  1
  • Niyaz  · 技术社区  · 15 年前

    我有一些源代码,并将其导入到SVN中。我忘了更新或签出它,并对文件做了一些更改。

    现在(可以理解)SVN不允许我提交这些更改。上面写着:

    视觉神经网络: “/home/name/folder”是 不是工作副本

    我现在可以做什么来提交这些更改?

    5 回复  |  直到 7 年前
        1
  •  4
  •   bendin    15 年前

    您看到的错误:“svn:'/home/name/folder'不是工作副本”与不运行更新无关。意思是说:

    /主页/名称/文件夹 不是工作副本 .

    下面是一个猜测:

    1. 您将一个项目(我们称之为“文件夹”)导入到Subversion中。
    2. 您忽略了签出它(svn chekout svn://myrepo/folder folder)。
    3. 您处理的是最初导入的文件夹,它不是工作副本。
    4. 现在你被困住了。

    我的建议是:

    1. 从SVN中查看您的“文件夹”!
    svn co svn://MYREPO/FOLDER folder.svn 
    
    1. 将已编辑的文件从“folder”复制到“folder.svn”中,替换其中的副本。
    rsync -r folder/ folder.svn
    
    1. 运行 svn status . 您应该看到有局部变化。

    2. 不要忘记添加任何新文件 svn add .

    3. svn commit 你的改变。

    4. 扔掉“文件夹”。从现在开始在“folder.svn”中工作。

        2
  •  1
  •   Ned Batchelder    15 年前

    将文件放入SVN后,需要将其签出以创建工作树。您可以将编辑的文件保留在原来的位置,并在其他位置签出工作树。然后,工作树和编辑的文件之间的差异,您应该看到所做的更改。将编辑过的文件复制到工作树上,然后将其签入。

        3
  •  0
  •   Nadir SOUALEM    15 年前

    你应该有冲突。

    如果你遇到冲突,你需要做三件事之一:

    • 手动合并冲突文本_(通过检查和编辑文件中的冲突标记)。
    • 将其中一个临时文件复制到工作文件的顶部。
    • 运行svn revert以丢弃所有本地更改。

    你必须设法解决它!!! 看一看

    http://www.linxit.de/svnbook/en/1.2/svn.tour.cycle.html#svn.tour.cycle.resolve

        4
  •  0
  •   JW.    15 年前

    本丁的回答是正确的。但是,如果您不关心保留原始版本,也可以重新开始并重新导入文件夹,就像现在一样。您必须先删除旧版本( svn rm -m '' oldFolder )

        5
  •  0
  •   Michael Hackner    15 年前

    要将常规目录转换为工作副本,可以执行以下操作:

    svn checkout --force svn://MYREPO/FOLDER /home/name/folder
    svn add --depth infinity /home/name/folder/*
    

    现在,导入后对文件所做的所有修改都将显示为本地修改,文件夹中的所有其他内容都将添加到版本控制中。

    这使得不需要进行任何复制/粘贴/删除。