我在一家主要业务与软件无关的公司工作.大多数使用源代码控制的文档都是由开发团队编写的,用于编写商业或开源项目.作为编写内部软件的人,我可以说工作的完成方式与商业或开源设置不同.此外,存储过程和数据库脚本需要与代码保持同步.
特别是我希望得到关于如何最好地使用内部软件构建存储库的建议.大多数文档都建议使用主干,分支,标签等.以及保持生产,测试和开发环境与存储库中各自部分保持同步的过程.
设置SVN存储库只是在组织它们的意义上才是棘手的.在我们设置SVN之前,我实际上是RTFM的在线Subversion手册,该手册讨论了存储库的组织技术以及您应该提前考虑的一些问题,即如果您决定改变主意,那么在创建存储库后您无法做到的事情.我建议在安装之前通过本手册.
对于我们,作为顾问,我们通过SVN进行定制和内部软件开发以及一些文档管理.为每个客户创建一个存储库,为自己创建一个存储库符合我们的利益.在每个存储库中,我们为每个项目(软件或其他)创建了文件夹.这使我们能够按存储库和客户端甚至存储库中的项目来划分安全访问.更进一步,我们为每个软件项目创建了"工作","标签"和"分支"文件夹.我们通常使用'release_w.xyz'作为标准的标签将版本放在'标签'中.
在您的情况下,为了保持sprocs,脚本和其他相关文档的同步,你可以创建一个项目文件夹,然后在那个"工作"文件夹下,然后在那个'代码'下面,然后在'脚本'旁边等等.然后当您标记要发布的工作版本时,您最终会将它们全部标记在一起.
\Repository \ProjectX \Working \Code \Scripts \Notes \Tags \Branches
对于非代码,我建议按项目或文档类型(手册,政策等)进行直接文件夹布局.通常使用文档并根据公司的运作方式,只需拥有版本历史记录/日志即可.
我们在Windows上运行SVN以及WebSVN,这是一个很棒的开源存储库查看器.我们使用它来为客户提供对其代码的Web访问,并且它都是由底层的Subversion安全性驱动的.在内部,我们使用TortoiseSVN来管理存储库,提交,更新,导入等.
另一件事是培训应被视为部署的一个组成部分.不熟悉版本控制的用户可能很难理解正在发生的事情.我们发现给他们提供功能性指令(在创建项目时执行此操作,在更新时执行此操作等)在学习概念时非常有用.我们创建了一个"沙盒"存储库,用户可以在其中播放他们想要的文档和文件夹以进行练习,您可能会发现这对于确定要建立的策略有用.
祝好运!
对于subversion,还有Assembla,它带有Trac和其他有用的工具.它是免费的,或者如果您需要更多空间或每个项目的用户,您可以为帐户付款.