Moh*_*man 5 svn delphi version-control tortoisesvn
我之前发布了一个问题,远离VSS,我在其中询问了使用VSS的Delphi开发人员的最佳VCS控制.大多数开发人员似乎都使用带有TortoiseSVN的svn.我试了好几天,我觉得这是最好的选择.
但是,我仍然对svn的工作方式有些困惑,所以这里有一些我想回答的问题:
我可以使用vss使用的旧锁定方式(checkout-modify-checkin)吗?
Delphi表单有两个文件(MyForm.pas,MyForm.dfm).当我向表单添加任何控件时,两个文件都将被修改,所以我想提交"myform.pas"并让"myform.dfm"也提交它.我在这里错过了什么吗?
这同样适用于Delphi项目文件.因为这与其他文件链接,所以当我更改项目文件时应该提交所有文件.
您在TSVN中标记了哪些文件被忽略,因此TSVN不会查找像(.dcu, .exe,...)这样的文件,我可以将它从一个Pc导出到其他文件吗?
我现在必须改变我在vss风格中思考的方式,并且需要将其更改为SVN风格,但是使用vss,所有内容都在IDE中管理,这非常棒;-).
更新:
5.如果我提交Delphi表单(.pas和dfm)并发现之前已经更新了一个版本,如果在该表单和单元中添加了一些新的控件和事件,那么如何解决冲突(这需要Delphi开发人员使用svn ).
Ste*_*fan 18
回复5:你应该尝试一下.为了限制冲突的可能性,主动开发人员经常提交,并且所有其他人经常从SVN更新,这是一个非常好的主意.设置电子邮件提交通知可以提供很多帮助,以便所有人都知道何时更新.但话说回来 - 您会发现删除控件及其所有事件处理程序或添加控件和一些处理程序的简单操作不会导致您需要手动解决的冲突.
编辑: DiGi的回答表明,即使用户没有,Delphi也会修改DFM.这不是真正的IMO,因为DFM时间戳的简单更改不符合DFM文件的本地修改,SVN也不会提交新版本.但是要注意不要在Delphi IDE中移动表单,因为这会改变表单的Top和/或Left属性.同样,更改页面控件的活动页面将被视为本地修改.因此,在提交之前检查所有本地修改并将所有那些仅仅是偶然的修改还原是一个好主意.
编辑2:正如onnodb在他的评论中指出的那样,似乎确实存在自动修改的表单属性,至少在Delphi 2007中(可能稍后会出现?).这将强调在提交之前检查所有本地修改的重要性.