我刚开始使用SVN.我知道基本命令并理解基本原理.我想知道是否有人在团队环境中使用Subversion有任何提示或最佳实践.
我可以看到在提交代码时添加合理冗长的消息的好处,但还有其他我应该记住的事情吗?
感谢所有伟大的答案 - 他们帮了很多忙.
我在一家主要业务与软件无关的公司工作.大多数使用源代码控制的文档都是由开发团队编写的,用于编写商业或开源项目.作为编写内部软件的人,我可以说工作的完成方式与商业或开源设置不同.此外,存储过程和数据库脚本需要与代码保持同步.
特别是我希望得到关于如何最好地使用内部软件构建存储库的建议.大多数文档都建议使用主干,分支,标签等.以及保持生产,测试和开发环境与存储库中各自部分保持同步的过程.
我被告知大多数开发商店都有以下结构或者至少接近这个结构:
所以:
ReponsitoryMain
Project1
branches
trunk
tags
Project2
...
Run Code Online (Sandbox Code Playgroud)
那为什么这更好或更好?如果你以另一种方式做到,会发生什么或者你有什么心痛?
我正准备实现一个源代码控制系统(颠覆),但我对如何构建我的文件夹面临一些疑问.
我使用Delphi进行所有开发,并在IDE中编译项目.
我当前的项目文件夹结构如下:
-E:\Work\1. Shared --Forms (shared forms across all projects) --Units (shared units/classes across all projects including 3rd party like JCL) -E:\Work\2. Company Name --Admin (stuff related with admin work like a license keys generator, Windows CGI to handle order processing automatically, all developed in Delphi) --Projects ----ProjectA -----5.x (version 5.x) ------BIN (where all the binaries for this project go) ------Build Manager (where the FinalBuilder project lives) -------Install (NSIS file that create the setup.exe) -------Protection (Project files to protect …
首先,我看了以下几页,并没有得到我的答案: 你如何组织一个颠覆 - 内部存储库软件项目以及 你如何做 -组织-您的版本控制系统信息库
我还查看了使用Subversion的实用版控制的第8章.
他们都有很好的建议,但我很难将其与我的需求联系起来.
基本上,我想组织我们的Web服务器的代码.我们有$ WEBROOT/htdocs和$ WEBROOT/cgi-bin.在我们的htdocs目录下,我们为java脚本和样式表提供了$ WEBROOT/htdocs/js和$ WEBROOT/htdocs/css.
我们的"项目"不是真正的项目,而是一些代码 - 可能是Perl脚本,java脚本文件和样式表.我们可能有大约一百个这样的小"项目",它们几乎都是相互独立的,但都存在于同一个Web服务器上的同一个$ WEBROOT中.
我们的代码还没有进行颠覆,但我希望它是 - 我只是在组织它时遇到了麻烦.如果需要,我们可以有多个svn存储库,但如果每个存储库只有3-10个元素,那对我来说似乎是一种浪费.
我认为可以工作的是这样的:如果我编写一个脚本来计算Web服务器上正在运行的进程(为了一个例子).假设我有一个perl脚本,一个js文件和一个css文件.我可以将"project"命名为webserver_processes,并将其作为以下内容检入存储库:
/svnrepo/webserver_processes/trunk
Run Code Online (Sandbox Code Playgroud)
在行李箱下,我可以:
htdocs/html/webserver_processes
htdocs/js/webserver_processes
htdocs/css/webserver_processes
cgi-bin/webserver_processes
Run Code Online (Sandbox Code Playgroud)
我在这个"项目"中没有任何静态html文档,但如果我这样做,他们会进入"html"目录.
我在这个结构中看到的好处是,我可以一次签出一个"项目",而不会真正影响Web服务器上的任何其他内容.缺点(也许并非真正的缺点)是部署.我必须一次从存储库部署1个项目.我不知道如何用我的$ WEBROOT/htdocs结构和$ WEBROOT/cgi-bin使用这种方法创建一个工作副本.
另外一个选项:
我可以像这样创建一个svn存储库:
/svnrepo/webcode/trunk
Run Code Online (Sandbox Code Playgroud)
在trunk下面是我的web服务器上的所有代码,在这两个目录中:
htdocs
cgi-bin
Run Code Online (Sandbox Code Playgroud)
最大的缺点是,对于1个元素的小代码更改,我将不得不检查我的Web环境中的每一段代码.好处(有点)是我可以在我们的Web服务器上执行"svn update"以获取对存储库提交的任何更改.
也许我只是让它变得比它应该更复杂,但是有没有人对如何在subversion中有效地组织我的代码有任何建议?
提前谢谢了!
布赖恩