2009-12-14 69 views
4

我已经阅读了与此相同类型的大量主题,但诚实地说,我仍然不完全确定最佳方法(作为初始点)。我是一个小型办公室的独立开发人员,我有大约30个托管在Linux VPS上的网站。我想开始使用版本控制(可能是SVN),并建立一个登台服务器。目前,在使用FTP上传到实时服务器之前,我在本地机器上进行了开发,或者对于小的更改而言,我会直接编辑远程文件,这不是一种理想的方法。开发环境 - 从开发到登台服务器到生产的VCS

我正在寻找一些关于如何改善我的开发环境的指导。我想我应该在网络服务器上安装SVN,然后允许我检查出本地机器的版本(这也需要我认为的SVN)。另外,如果我想设置登台服务器,是否应该为每个实时网站设置子域名,然后使用这些子域名来显示客户端对网站的更改,然后再使其生效?

希望这是有道理的!

回答

0

实际上,您可以在本地机器上安装SVN服务器,我建议您将其安装在Web服务器上(假设您进行备份)。最简单的事情是,只有你使用’才会使用file://协议,但使用svnserve会更健壮一些,如果你想花时间去使用svnserve更好。

+1

如果你想在您的服务器和您的家庭在回购,为什么不使用这样的混帐,已经从地上爬起来做那种东西建。 – 2009-12-14 16:21:24

+0

OP没有建议他考虑拥有多个存储库。 – 2009-12-14 17:35:55

0

@迈克尔,我不同意 - 我会说最好是在Linux上安装vps,尤其是如果您已经为托管服务付费了。我发现,无论我在哪里,无论从哪台计算机上浏览和下载我的svn repo中的内容都非常有帮助。 @ nicky,我几年前开始使用svn(和版本控制),并且我采取了更容易处理的婴儿步骤。

如果我不得不再做一遍,我会先阅读svn book。这本书布置得非常好,花了不到1-2天的时间。

在阅读时,在您的linux vps上安装svn,并使用apache front end

一旦你有了,选择你的网站之一,并将其​​导入svn。这是我如何构建我的SVN回购。例如,假设我在回购http://mysvn.mydomain.com/svn/托管:

mywebsite1 
    - trunk 
    - tags 
    - branches 
    mywebsite2 
    - trunk 
    - tags 
    - branches 

不要担心创造完美的结构。重新组织起来非常容易,特别是当你刚开始时。将几个项目导入svn之后,您将开始感觉哪些项目应该拥有自己的“trunk/tags/branches”目录结构,哪些可以合并。

对于创建测试环境,我完全按照您的描述进行操作。我使用构建脚本从svn签出并将文件下载到映射到像“test.clientsite.com”这样的子域的目录中(我主要在java中工作并使用ant和maven,但我认为您可以使用任何脚本语言熟悉)。

一旦你习惯了版本控制,你永远不会回去,祝你好运!

+0

够公平的;我只推荐它,因为进入门槛略低,众所周知,版本控制最重要的是尽快开始使用它! :-) – 2009-12-14 17:37:00

+0

是的,很好,尽快站起来,但仍认为值得远程安装。 – Upgradingdave 2009-12-14 22:06:38

+0

谢谢戴夫 - 这对我来说是一个不错的入门者。我会先按照你的建议在VPS上建立SVN,然后在进入下一步之前熟悉它与一个网站。我会花一些时间阅读这本书,希望这将会走上正轨! – nicky77 2009-12-15 09:30:59

1

这是我们做的工作:

我们有一个临时服务器运行的Apache和Subversion服务器。我们有一个提交后挂钩,用于更新htdocs目录中的工作副本,这样,当开发人员提交它会自动在暂存服务器上更新的内容时,每个人都可以看到最新的代码。

在客户的生产服务器(我们可以控制的),我们已经安装了Subversion客户端和网站是工作拷贝。当我们需要更新现场网站时,我们登录到一个shell并运行svn up。如果您这样做,请确保使用.htaccess文件或主Apache配置文件限制访问.svn目录。

我们有一个管理项目的自定义应用程序,但这只是因为我们懒惰,不想设置手动每个项目,应用程序创建必要的目录和工作拷贝。你可以写一个快速的脚本来做到这一点。

我们永远,永远,直播网站上通过FTP编辑文件。总而言之,我们一直在使用这个设置将近2年,除了在临时服务器上偶尔发生冲突之外,我们从来没有遇到任何问题。

+0

出于好奇; #1。你是否也对所有文件进行了版本管理? 我工作的网站经常驻留在一个cms上,在上传图片时保留了图片的高分辨率版本以及几个较小的版本=>可以快速成为大量数据。 #2你如何解决数据库位。暂存服务器是否与现场一样运行在同一数据库上,或者您是否也设置了“暂存数据库”? – Tommy 2009-12-16 09:46:31

+0

1)取决于网站,在一些我们版本的图像上其他人我们没有。即使在大型项目中,我们从来没有遇到回购规模的问题。 2)我们有一个临时数据库,我们有一个打开的端口和一个“测试”用户,因此每个开发人员都可以通过本地安装连接到临时数据库。 我们学到了一些不好的经历,我们不应该在生产系统上开发,不管是代码还是数据库的变化,甚至是内容在投入生产之前都已经上演。 – 2009-12-16 14:27:12

+0

感谢您的回复,Dinu :)我可以完全理解这个方法,但是做这些工作似乎“非常麻烦”,建立一个新的数据库以及所有这些都需要完成。如果您对所有变化都进行这样的调整,无论大小如何,这听起来很聪明,估计它会花费多少时间来进行更改?让客户接受最小的变化将需要相当长的时间吗? – Tommy 2009-12-16 14:55:24

相关问题