SVN交换机覆盖工作副本

时间:2012-09-11 07:12:40

标签: svn

我刚开始使用SVN,刚刚遇到一个SVN切换的奇怪问题,我一直无法找到答案。长话短说:我有一份我存储在/ repo / tags / versionnumber中的应用程序最新版本的工作副本。做了一些错误修正并计划签入Trunk以将其部署到我的舞台环境。

然而,在执行svn切换时,它不仅将repo路径更改为/ my repo / trunk /,而且还要执行checkout(或其他操作)并覆盖我的本地更改。主干和标签都有相同的版本号,根据我所读的内容,这是不可能的。

以下是一个示例输出(翻译自瑞典语,所以如果听起来有点奇怪,你知道为什么):

>svn info
>
>URL: svn+ssh://user@server/my repo/tags/versionnumber
......
>Revision: 8
.....
>Latest change in revision: 6

> svn switch svn+ssh://user@server/my repo/trunk/
> password ********
>
>D    log
>D    logparse.php
>U    document_root/js/standard.js
......
>Updated to revision 8
>
>svn info
>URL: svn+ssh://user@server/my repo/trunk
......
>Revision: 8
.....
>Latest change in revision: 8

当我换回时会发生同样的事情。然后它将添加先前删除的文件(如果它们存在于主干中)并“更新”两者中存在的文件。

1 个答案:

答案 0 :(得分:1)

这是svn switch的预期行为。它的作用是将您的工作副本切换到您要切换到的分支的HEAD修订版本(基本上是当前工作副本的分支结帐)。

如果您的本地更改与您正在更改的分支上的任何内容都不冲突,那么它们将被单独留下。如果有冲突,那么svn会告诉你。

当您进行提交并且修订号增加时,该修订号是整个存储库的新修订号,而不仅仅是您正在处理的分支。这就是主干和标签具有相同版本号的原因。这也是svn。

的预期行为

有关详细信息,请查看本书:http://svnbook.red-bean.com/(提供免费在线版本)。