请告诉我如何在subversion中编写以下命令
1)我们如何以块的形式提交文件。 2)在提交之前获取对所有文件的锁定。
答案 0 :(得分:3)
1)那是不可能的。文件中的所有修改都已提交或未提交。您不能只是在文件中提交部分修改。
2)是可能的。但是我不打算告诉你如何:这个问题清楚地表明你要么不理解SVN(或VSS以外的版本控制系统)是如何工作的,要么(如果你这样做)你的工作流程已经破碎了并且你试图滥用版本控制来适应那个破碎的工作流程。您不需要在提交之前锁定文件,尤其是所有文件。只是提交,你很好。对于无法合并的文件(二进制文件),锁定仅 ,即使是那些不应轻易使用的文件。
答案 1 :(得分:3)
这是基于您的原始问题和您对Stefan的回答的评论(太大而无法放入评论框)。
1)Subversion使用原子提交操作,因此无法以块的形式提交文件。
2)有了足够的Subversion kung-fu你可以做到这一点(取决于你的设置的细节),但是当你的两个是围绕不同的哲学设计时,你本质上就是将Subversion哄骗成像你的旧存储库一样。这个问题让我想起了我的团队在最近从VSS切换到Subversion时所经历的事情。
这里显而易见的答案是不将编译对象检入存储库。版本控制系统旨在存储生成二进制文件的源代码,而不是生成的二进制文件。这给你带来问题的原因之一是它不是Subversion的设计类型。我推荐关于Subversion的官方书籍,你可以在http://svnbook.red-bean.com/免费获得。你不一定要阅读整篇文章,即使是粗略阅读前两章或三章,你也会学到很多东西(就技术文档而言,这本书非常容易阅读)。您的旧版本控制系统的工作流程/理念与Subversion的工作流程/理念并不完全兼容(不是一个或另一个是好的或坏的,只是不同的),我认为这本书非常好地解释了这一点。情况下。
如果您只是想归档已编译输出的副本,最好将所需的二进制文件加载到存档(zip,tar,gzip等)并将此存档存储在文件服务器上。如果您需要能够轻松地将源代码修订与二进制输出匹配,则可以将归档或包含该归档的文件夹命名为用于生成它的代码的修订号。
除此之外,如果您的防病毒程序导致问题,请尝试将保存源代码的目录添加到防病毒程序的忽略列表中。通常来说,这些文件夹只包含您创建的源代码文件或二进制文件,通常可以视为无病毒(除非您正在编写病毒,但这完全是另一个问题)。