Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
svn切换后发生了什么以及如何提交本地更改?_Svn_Version Control - Fatal编程技术网

svn切换后发生了什么以及如何提交本地更改?

svn切换后发生了什么以及如何提交本地更改?,svn,version-control,Svn,Version Control,我在我的代码中做了一些更改,在之后,我决定代码对trunk不好,但我应该(用代码)进行一点试验,如果我成功了,我应该用trunk 所以我需要创建一个分支——我在分支中创建了新目录,我将svn copy中继复制到新创建的分支,然后我转到我的源代码目录并执行svn switch 现在我不明白发生了什么。当我应用svn status时,svn以类似的方式遍历整个目录,对于大多数文件A字母,但对于目录C,总之我可以读到: Updated to revision 1458. Summary of conf

我在我的代码中做了一些更改,之后,我决定代码对trunk不好,但我应该(用代码)进行一点试验,如果我成功了,我应该用trunk

所以我需要创建一个分支——我在分支中创建了新目录,我将
svn copy
中继复制到新创建的分支,然后我转到我的源代码目录并执行
svn switch

现在我不明白发生了什么。当我应用
svn status
时,svn以类似的方式遍历整个目录,对于大多数文件
A
字母,但对于目录
C
,总之我可以读到:

Updated to revision 1458.
Summary of conflicts:
Tree conflicts: 6
但当我检查一些文件时,我发现这些文件(幸运的是)并没有从svn存储库中真正更新(再次,在上次提交后,我对代码进行了更改,然后决定进行分支)

当我发布
svn status
时,现在我可以看到许多条目信息,如此目录:

A  +  C testsuite
      >   local edit, incoming delete upon switch
我所做的步骤我是这样读的,没有提到这样的问题。那么我现在如何将我的更改提交到分支(当然我不想删除我的更改)

更新:我在上找到了部分答案,因此,您可以执行:

svn resolve --accept working ./*
声明本地版本文件为OK。见:

但它还没有结束,现在我有一个错误:

svn: Did not expect '/media/wdisk/Projekty/MyProject
/MyProject.UnitTests/MetaData' to be a working copy root
更新2:我没有按照自己的意愿解决此问题。相反,我复制了整个目录(本地目录),删除了所有
.snv
目录,从分支签出文件,复制了所有本地文件,然后提交。SVN将此视为常规更改,因此不会引发冲突。

您执行的分支(顺便说一句,描述了前置条件)很糟糕

“在我的代码中做了一些更改”目前还不能清楚地描述存储库和WC的状态

如果“提交到trunk后,我认为代码不适合trunk”,您有(正确的方法):

  • 将主干的头部复制到分支的服务器端
svn copy URL/OF/TRUNK URL/OF/NEW/BRANCH-m“分支最新状态”

  • 从主干中删除带有“某些更改”的提交,即执行修订的反向合并
svn合并-c-REVNO.&svn提交-m“撤消最新更改”

  • 切换到分支
svn开关URL/OF/NEW/BRANCH

如果“在本地未限制到主干的更改后,我认为代码不适合主干”,您有(正确的方法):

  • 切换到分支
svn开关URL/OF/NEW/BRANCH

  • 提交更改

svn co-m“特性的起点”

因为您的工作复制包含本地修改,您希望在单独的分支(功能分支-分支开始:)中进行测试后提交这些修改,运行
svn switch
命令时,您得到的响应与运行
svn update
时得到的响应类似,因为
svn switch
还会比较它给您的响应的工作副本,就像一些更改处于
C
(冲突状态)和一些新添加的(
a

以下内容描述了相同的场景:

您是否曾经发现自己(在您的/trunk工作副本中)进行了一些复杂的编辑,突然意识到,嘿,这些更改应该在它们自己的分支中?伟大的 实现这一点的技术可以总结为两个步骤:

$svn拷贝http://svn.example.com/repos/calc/trunk \

http://svn.example.com/repos/calc/branches/newbranch \

-m“创建分支‘新牧场’”

承诺修订353

$svn开关^/calc/branchs/newbranch

第353版

svn switch命令与svn update一样,保留本地编辑。此时,您的工作副本现在是新创建的分支的反映,您的下一个svn提交调用将把您的更改发送到那里


我完全按照您所描述的做了,没有合并,因为我没有向trunk提交任何实验性更改。我无法提交,尽管
svn:Aborting commit:“/media/wdisk/Projekty/MyProject/MyProject.UnitTests”仍然存在冲突
@greenoldman-如果您完全按照我的方式2使用,您的WC中就不会有任何冲突:冲突是由于没有大脑更新尝试造成的。最后,您可以删除废弃文件,并在提交前将正确的文件标记为已解决-这是SVN中的常见规则“不提交有冲突的WC”Way2=“在本地未提交到主干后…”?是我干的。我有冲突。由于我有备份文件,我重复了这些步骤,但仍然--冲突。不完全是,在
svn copy
svn switch
之后,主干和分支是相同的,但我的工作副本(即本地磁盘)有较新的文件。我无法提交--
svn:中止提交:“/media/wdisk/Projekty/MyProject/MyProject.UnitTests”仍然存在冲突
。要将更改提交到分支,您需要解决突出显示的冲突,然后您的本地更改(您要测试的)才会移动到分支。可能有两种情况1。首先从主干创建分支,然后对文件进行更改,然后提交(在这种情况下不会有冲突)2。在您的案例中,您首先进行了本地修改,然后创建了分支,之后使用svn开关(这对于在本地修改的工作副本上执行svn更新来说是非常困难的)您应该会遇到冲突。我的案例与您引用的“您是否曾发现…”一模一样,我也确实执行了这些步骤。我如何告诉我的本地文件具有更高的优先级,并且应该转到存储库(repo已切换到分支)?您可以使用svn resolve命令和我的完整选项,该选项将优先考虑您的更改,并将它们移动到分支。$svn resolve--接受我的完整更改