Delphi的Subversion Exclusive Checkout和Subversion插件

时间:2009-07-15 14:09:55

标签: delphi svn svn-checkout

目前是否有一项功能允许在SVN中进行独占结账?

Delphi是否有一个很好的插件允许通过IDE进行访问?

7 个答案:

答案 0 :(得分:11)

SVN的概念为“locking”,大致对应于独占结账。例如,在TortoiseSVN中,这是通过Get lock和Release lock菜单条目公开的。

JCL包含SVN版本控制专家,工作得很好。除了其他东西,tt还允许您从IDE访问锁定功能。

答案 1 :(得分:8)

TortoiseSVN可以是added into the Delphi tools menu。我自己没试过,因为我很高兴将它用作Explorer扩展。

关于独占结账,我猜你的意思是这样一次只有一个人可以编辑它?这不是Subversion背后的想法,这个想法是你有工作副本,然后检查你的更改。然后它将尝试合并您的更改(这通常在大多数情况下都有效)。如果存在冲突,您需要手动解决它们。

答案 2 :(得分:2)

我相信人们有时会在Subversion存储库中查询锁定项目的原因之一是因为他们的Delphi DFM以二进制格式保存,这使得提交/合并成为问题。

将DFM等更改为文本的替代方法是使用Scooter Software的超越比较。

Beyond Compare是用Delphi编写的,本身知道如何读取二进制DFM。这意味着,您的DFM是以二进制还是文本存储在Subversion中的问题(甚至没有问题)。超越比较V3还进行3向合并,这使得合并多个提交非常容易。即使忽略了差分二进制DFM的能力,它仍然是比TortoiseSVN的内置工具更好的差异查看器。我强烈推荐它,它非常便宜。

目前我在存储库中锁定的唯一内容是COM类型库(* .tlb及其关联的* _TLB.pas文件)。

答案 3 :(得分:1)

关于独家结帐。它可以做到,但这是一个痛苦,通常不值得花时间。如果您确实将dfms保存为二进制文件,请将它们转换为文本。

关于delphi插件,我在Delphi addins for subversion发了一个帖子。

我使用jedi jclTortoiseSvn

我也知道Delphi svnDelphi addin in for Tortoise svn

答案 4 :(得分:1)

也许我很天真,但为什么有人想要合并他们的变化呢?如果程序员正在编辑其内容易于理解的文本文件,并且因此可以通过程序员知道更改的含义来合并,那么合并可能是一件简单的事情。但是,如果您将SVN与MS Visual Studio一起使用,那么对一个文件的更改经常会更改为您不知道的其他文件,以及程序员可能完全不知道这些文件中的信息编码的位置(因此没有关于如何解释更少合并这些文件的概念)甚至可能是二进制的,为什么你会遇到让多个人同时编辑东西的巨大麻烦和风险呢?

锁定范例很简单。一次只能编辑一个人。合并永远不需要。程序员不需要知道他们甚至没有意识到他们正在修改的(可能是二进制)文件的编码。没人能踩到别人的变化。锁定(即默认锁定)听起来比我更好。

答案 5 :(得分:0)

“独家结账”是什么意思?你的意思是,退房后,没有其他人可以退房吗?

这称为锁定和颠覆可以做到这一点(参见Locking),虽然一般不推荐这样做,因为版本控制的目的是允许多人同时处理版本化项目。

答案 6 :(得分:0)

对于第一部分,我使用的是Visual Source Safe,它支持锁定(你必须在使用前检查),SVN有锁定命令,但这是违背它的概念,你需要很少的时间来使用它,而你永远不会再使用锁定命令。

对于问题的第二部分,TortoiseSVN可以用作外部工具,或者您可以使用与Delphi 2007及更高版本捆绑在一起的文件浏览器,并且您可以使用适用于旧版本的IBrowser

Subversion add-ins for Delphi总结了Delphi IDE的可用SVN插件,旁边是商业产品SourceConneXion