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

时间:2014-03-24 07:20:00

标签: svn version-control

我在我的代码中进行了一些更改,之后我认为代码不适合中继,但我应该尝试一下(使用代码),稍后如果我成功,我应该去中继线。

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

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

Updated to revision 1458.
Summary of conflicts:
Tree conflicts: 6

但是当我检查一些文件时,我看到文件(幸运的是)没有真正从svn存储库更新(再一次,在最后一次提交后我对代码进行了更改,然后然后决定分支)。 / p>

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

A  +  C testsuite
      >   local edit, incoming delete upon switch

我在SO上所做的步骤,并没有提到这些问题。那么我怎样才能将我的更改提交到分支(当然我不想删除我的更改)。

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

svn resolve --accept working ./*

将本地版本文件声明为OK。看到: https://stackoverflow.com/a/2207119/210342

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

svn: Did not expect '/media/wdisk/Projekty/MyProject
/MyProject.UnitTests/MetaData' to be a working copy root

更新2:我没有像我想的那样解决这个问题。相反,我复制了整个目录(本地一个),删除了所有.snv目录,我检查了分支中的文件,复制了所有本地文件,然后我提交了。这被SVN视为常规变更,因此不会引发冲突。

2 个答案:

答案 0 :(得分:2)

由于您的工作复制包含您在单独的分支(功能分支 - 分支startegy :)中测试后要提交的本地修改,因此在运行svn switch命令时,您得到类似于当你运行svn update时,你会得到,因为svn switch也会比较它给你的响应的工作副本,就像C中的一些变化(冲突状态)和一些新添加的那样({{1} }})。

相同的场景描述于:

http://svnbook.red-bean.com/en/1.6/svn.branchmerge.switchwc.html

  

你有没有发现自己做了一些复杂的编辑(在你的/ trunk工作副本中)并突然意识到,嘿,这些变化应该在他们自己的分支中?一个伟大的   这样做的技术可以分为两个步骤:

     

A
  $ svn copy http://svn.example.com/repos/calc/trunk \
  http://svn.example.com/repos/calc/branches/newbranch \

     

承诺修订353。

     

-m "Create branch 'newbranch'."

     

修订版353。

     

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

答案 1 :(得分:0)

你表现得很糟糕(并且,BTW,描述前提条件)。

READ SVN BOOK!!!

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

如果“在提交到trunk后我决定代码不适合trunk”,你有(正确的方法):

  • 将trunk的HEAD的服务器端副本设为分支

svn copy URL/OF/TRUNK URL/OF/NEW/BRANCH -m "Branching latest state"

  • 从trunk中删除带有“some changes”的提交,即执行版本的反向合并

svn merge -c -REVNO . && svn commit -m "Undoing latest change"

  • 切换到分支

svn switch URL/OF/NEW/BRANCH

如果“在本地uncommited到trunk更改后我决定代码不适合trunk”你有(正确方法):

  • 切换到分支

svn switch URL/OF/NEW/BRANCH

  • 提交更改

svn co -m "Starting point of featire"