我的任务是为我公司的开发人员编写一组 SVN 用户指南。
指南仅从用户角度(例如提交评论、何时提交)而不是从管理角度(例如何时标记、如何构建)。行政指南将写在单独的文件中。
我们是一家应用程序开发公司,也参与嵌入式开发。因此,我们的开发人员范围从 HTML5 和 Flash 到 Java 和 C。我们的一些编码涉及分叉非常大(数百万个文件)的代码库。其他部分涉及我们从事底层开发。
从用户(即 grunt 开发人员)的角度来看,是否有使用 SVN 的最佳实践?
我的任务是为我公司的开发人员编写一组 SVN 用户指南。
指南仅从用户角度(例如提交评论、何时提交)而不是从管理角度(例如何时标记、如何构建)。行政指南将写在单独的文件中。
我们是一家应用程序开发公司,也参与嵌入式开发。因此,我们的开发人员范围从 HTML5 和 Flash 到 Java 和 C。我们的一些编码涉及分叉非常大(数百万个文件)的代码库。其他部分涉及我们从事底层开发。
从用户(即 grunt 开发人员)的角度来看,是否有使用 SVN 的最佳实践?
这是一个相当主观的问题,所以我不会反对 TPTB 关闭它。不过,我很乐意就此发表我的看法。请记住,我来自在中小型(10-50 名开发人员)企业环境中工作的背景,因此我的意见是针对该环境量身定制的。
以下是更多“管理员”指南(在您的分类中),但仍与开发人员相关。此外,这些都更加主观,因此请多加一点盐。
为了补充@Stuart Lange 的好建议,这是我已经磨练了一段时间的清单。这来自于我的经验和我对我的TortoiseSVN 和 Subversion Cookbook的研究,这些书在 Simple-Talk.com 上连续出版(第 8 部分最近出版,还有更多内容)。为简洁起见,我在这里只列出项目符号——我的系列文章非常详细地为所有这些提供了基本原理和支持。
A. 每个提交都应该有一个原因。
B. 一个单一的原因应该一起提交:代码、帮助文件、数据库模式等。
C. 提交不应该破坏构建。
D. 总是有理由提交文件。
E. 始终逐行审查您将要提交的内容。
F. 使提交消息成为必需。
G. 及时提交。
H. 尽可能在您的版本控制系统中进行文件操作(移动、复制、重命名)。
I. 在源代码控制中包含除您生成的文件之外的所有内容(包括第 3 方二进制文件)。
J. 永远不要孤立地进行提交:将 SVN 更新/手动验证/SVN 提交视为“原子”操作。