【问题标题】:how to get partial update from subversion如何从颠覆中获得部分更新
【发布时间】:2012-09-12 20:26:10
【问题描述】:

我在我的应用程序存储库中处于以下场景:

  • 修订版 7(2 个更改的文件,1 个添加的文件)
  • 修订版 6(4 个更改的文件)
  • 修订版 5(添加 2 个,删除 2 个,更改 2 个)
  • 修订版 4(3 个更改的文件)
  • 修订版 3(添加 12 个,更改了 2 个文件)

我想要一份工作副本,其中包含从修订版 3 到 Head 的所有更改,但不包括修订版 5 和 6 的更改。

我为此使用 SVN 合并,但没有反映更改,并且我遇到了修订版 5 和 6 的文件冲突。

下面是 nant 的配置文件描述,其中包含可执行的命令。

<exec program="C:\Program Files\CollabNet\Subversion Client\svn.exe" commandline="checkout https://test.repositoryhosting.com/svn/1_test@${Rev} D:\MyTest --username test --password 123"/> 
<exec program="C:\Program Files\CollabNet\Subversion Client\svn.exe" commandline="merge -c  -6  https://test.repositoryhosting.com/svn/1_test  D:\MyTest  --username test --password 123"  />
<exec program="C:\Program Files\CollabNet\Subversion Client\svn.exe" commandline="merge –c  -5  https://test.repositoryhosting.com/svn/1_test  D:\MyTest  --username test --password 123"  />
<exec program="D:\NANT_SCRIPTS\Delete Publish.bat"  commandline="${Rev}" />
<exec program="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe" commandline="-nologo -v / -p D:\ MyTest -u D:\PublishOutput_${Rev}" />

我该如何解决这个问题?

【问题讨论】:

  • 你的意图是什么?您是否打算简单地还原修订版 5 和 6 中所做的更改?
  • 是的,我想在我的工作副本中排除修订版 5 和 6 的更改,但需要在工作副本中更改修订版 3、4、7。

标签: svn nant revision


【解决方案1】:

你可以尝试反过来做:

  • 恢复修订版 6 的更改
  • 提交
  • 恢复修订版 5 的更改
  • 提交
  • 查看 Head 修订版

这应该会将工作副本带到您想要的状态。版本 5 和 6 的更改将在存储库中恢复,但无论如何都会在您提交更改时发生。

【讨论】:

  • 我想在本地工作副本中进行这些更改,我不想在存储库中进行更改。那么我可以从我从 SVN 获取更新的本地工作副本中恢复这些吗?
  • 听起来很奇怪...如果您不打算提交这些操作,为什么还要在工作副本中执行所有这些操作?
  • 我将发布这个工作副本(D:\MyTest 在上面的命令中给出,这是我获取代码的位置)代码来创建构建。这有意义吗?
  • 我不确定...无论如何,如果修订版 7 的更改不与修订版 5 或 6 相交,您可以尝试以下操作:1)在修订版 7 和修订版之间生成 SVN 补丁6; 2) 查看工作副本的修订版 4; 3)应用上面生成的补丁并尝试构建它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多