如何修复SVN工作历史中的项目版本?

如何修复SVN工作历史中的项目版本?,svn,tortoisesvn,visualsvn,Svn,Tortoisesvn,Visualsvn,我的工作项目,其中可能包含几个版本的几个客户端。即2.65-客户端1版本,2.67-客户端2版本;一般来说,2.65和2.67之间的差异非常小——因此,每个客户机在多个分支中不需要这样做。 所有我需要的-修复工作历史中的版本,如果将来需要,签出特别选择的版本(即签出工作副本为3.4时的2.65版本-并为相应的客户端添加一些更改) 我在服务器上使用VisualSVN,在客户端使用OrtoiseSVN。 thx)为每个客户端使用分支有什么问题,对每个分支应用所需的更改,然后为每个分支创建新标记 例如

我的工作项目,其中可能包含几个版本的几个客户端。即2.65-客户端1版本,2.67-客户端2版本;一般来说,2.65和2.67之间的差异非常小——因此,每个客户机在多个分支中不需要这样做。 所有我需要的-修复工作历史中的版本,如果将来需要,签出特别选择的版本(即签出工作副本为3.4时的2.65版本-并为相应的客户端添加一些更改)

我在服务器上使用VisualSVN,在客户端使用OrtoiseSVN。
thx)

为每个客户端使用分支有什么问题,对每个分支应用所需的更改,然后为每个分支创建新标记

例如:

当前,分支客户端1的标签为“2.65”,分支客户端2的标签为“2.67”。
现在您在主干上做了一些修复,只想将它们传递回分支client1,因为client2没有应用修复的功能

合并从trunk到branch client1的更改,创建一个新标记“whatever”,并将这个新标记的版本提供给客户


顺便说一句:TortoiseSVN有一个集成的合并功能,我从未使用过(可能不理解)。在另一个项目中使用Git向我展示了智能(自动)合并确实可以工作…

您正在描述分支的一个典型用例。真的

然而,我猜您正在丢弃分支,因为跨分支移植更改是一项困难且耗时的任务。它的速度很慢,您必须修复难以理解的冲突。这不是分支的限制,而是颠覆的限制。显然,Subversion没有存储足够的更改信息,因此很难正确地进行合并

据说其他现代版本控制系统比Subversion更好地处理分支:git、Mercurial、Bazaar。。。你可以考虑开关。


不管怎样,即使在Subversion中也可以处理并行分支。请看一看“使用Subversion的版本控制”一书中的“分支和合并”。TurtoSISVN可以非常方便,因为当你尝试执行合并时,它会对已经被移植的修订进行格式化。

合并是不起作用的,除非服务器是1.5或更大,这可能是你与TurtoSeVN的问题:-谢谢,结果我认为分支是解决的,并且在将来,切换到Mercurial my projects)@Jamon:切换工具,因为你无法理解一个工具如何为你工作,并不总能找到更好的解决方案。您选择Subversion是出于某种原因。花点时间研究它,探索各种分支模型。CollabNet发布了一些关于各种分支模型的文章,这些模型可能适合您的需要: