Eclipse/Subclipse:使用修改过的源代码从分支切换到主干?

Eclipse/Subclipse:使用修改过的源代码从分支切换到主干?,eclipse,svn,branch,subclipse,branching-and-merging,Eclipse,Svn,Branch,Subclipse,Branching And Merging,假设您正在处理的分支中有一堆源文件,它们是添加/修改/删除的。然后假设您决定暂停该分支的开发一段时间,然后返回主干中的其他内容。此时不合并分支 通常我会签入对分支的所有更改,然后执行Team->Switch,然后选择主干并开始工作。然而,我注意到,如果我没有签入我的更改,Subclipse会很高兴地将我的工作副本的subversion URL更改为trunk,并保留所有更改 我的问题是:Subclipse是在幕后为我进行了合并,还是只是将URL切换到trunk并进行了更新。。。大概是为了避免丢失

假设您正在处理的分支中有一堆源文件,它们是添加/修改/删除的。然后假设您决定暂停该分支的开发一段时间,然后返回主干中的其他内容。此时不合并分支

通常我会签入对分支的所有更改,然后执行
Team->Switch
,然后选择主干并开始工作。然而,我注意到,如果我没有签入我的更改,Subclipse会很高兴地将我的工作副本的subversion URL更改为trunk,并保留所有更改

我的问题是:Subclipse是在幕后为我进行了合并,还是只是将URL切换到trunk并进行了更新。。。大概是为了避免丢失我的更改?


如果是前者,我对subclipse/subversion有了新的尊重。如果是后者,那么当你有一个修改过的工作副本时,执行subversion“切换”似乎是非法的,因为你实际上是在破坏主干

当您修改了源代码时,您完全可以切换。这是一个非常正常的用例。想象一下,你们正在做树干,但并没有完成你们的工作,不得不做其他的事情。解决方案是为您的新工作创建一个分支,切换到该分支,提交到该分支(这将消除本地修改),然后最后切换回主干


这就是Subversion的工作原理。

这个用例对我来说绝对有意义……我没有想到它,但它似乎非常有用。但我的问题与此相反——您正在编辑一个分支并切换到主干,而无需先提交。如果在切换到主干后进行提交,这似乎是销毁主干的一个好方法。销毁可能有点强,因为任何提交都可以从本质上撤消。一个人会犯无数的错误。Switch不一定要参与到意外犯下你不想做的事情中。当然,你是对的……对我来说,重要的是要明白,没有什么幕后的“合并”发生。我将继续向我们关于subversion的公司维基文章中添加一条警告。