目前我们的团队(网络开发人员,一名设计师和一名文案撰写人)都在不同的工作站上工作,但在相同的开发环境(我们都安装相同的共享驱动器)上进行更改,这是一个营销网站,而不是一个Web应用程序,所以没有构建或部署,我们只是在完成后将更改推送到实际站点,但我认为保留文件版本(尤其是服务器代码)非常重要,即使它只占我们内容的一小部分(主要是静态页面。)
我想在我们的工作设置中使用版本控制,但是我不确定SVN或GIT是否会与同一个开发环境中的多个人签入/签出。我有SVN,CVS,GIT,Perforce和PVCS的现有经验,但一直与个人开发环境合作。
我想要一个不需要我们运行单独的开发环境的解决方案,因为我们缺乏基础设施。
答案 0 :(得分:5)
大多数(如果不是全部)版本控制实现旨在由多个人使用。 Subversion和GIT都很乐意为您提供所需的一切,但您可能会发现Subversion更容易启动并快速运行。如果您打算在Windows环境中托管它,请查看VisualSvn Server。
GIT和SVN之间的主要区别在于GIT是一个分布式系统,而SVN依赖于中央存储库。在软件开发中,使用分布式系统有很好的理由,但是你所描述的需求很容易通过更简单的SVN实现来实现(我认为)。
使用SVN(在Windows下)的另一个好理由是TortoiseSvn client是任何版本控制系统的用户界面的最佳示例之一。非常容易学习如何使用和记录良好以及OS社区支持。
如果您不希望维护自己的源代码管理服务器的开销,也可能值得研究托管版本控制系统的各种提供商。
答案 1 :(得分:1)
您不需要大量服务器硬件。为什么每个dev / designer / etc都不能在自己的计算机上运行该站点?你每个至少有一台电脑? :)
在这种情况下,GIT或SVN只是一种品味问题。
答案 2 :(得分:1)
在您的设置中,您说您都拥有相同的开发环境。你的意思是说你们每个人都有自己的网络电脑,或者你们共用一台电脑?无论哪种方式,你都应该拥有自己的svn账户和本地工作指导,所以这不是问题。
答案 3 :(得分:1)
根据您所讨论的数据量,需要考虑的选项是Dropbox(“安全备份,同步和文件共享变得简单”)。它支持版本控制,并允许您共享文件夹。
它还具有为您的数据提供异地备份和远程Web访问的好处。
答案 4 :(得分:1)
使用svn,您可以让每个提交自动触发实时网站的更新。仍然让每个人都在同一个目录中工作有点尴尬(因为它一直都是,但无论如何......),但旧习惯很难,并且假设人们坚持这一点,svn确实通过WebDAV导出其存储库,所以应该可以挂载它作为台式机上的网络文件系统。
答案 5 :(得分:1)
“目前我们的团队(网络开发人员,一名设计师和一名文案撰写人)都在不同的工作站上工作,但在相同的开发环境中进行更改(我们都安装相同的共享驱动器) “添加SVN将消除对共享驱动器的需求。您将在签入SVN的本地目录中工作。乌龟对你来说是一个完美的客户。
“它是一个营销网站,而不是一个网络应用程序,所以没有构建或部署,我们只是在完成后将更改推送到实际网站”一个简单的批处理作业(ANT脚本)或其他)可以写给你们每个人。一旦文件准备好部署,只需执行批处理并将其从SVN中检出最新文件并复制到您的Web服务器。
答案 6 :(得分:0)
“不要求我们运行单独的开发环境,因为我们缺乏基础设施”
没有多大意义。
据推测,你们每个人都有一个单独的工作站。您的工作站与您的Web服务器是分开的。只是猜测,但那是典型的。
您可以 - 平凡 - 每个人都在您的工作站上拥有私人开发副本。然后,您可以使用SVN同步各种更改。
您可以将版本标记为“可以继续”。
有人可以 - 当你看起来一切正常时 - 在网络服务器上进行更新,以便将正式版投入生产。
这不需要比现有基础设施更多的基础设施。
答案 7 :(得分:0)
使用SVN,您可以让开发人员提交到服务器,并在服务器上有一个特殊用户签出最新版本。因此,提交你的工作包括提交SVN,然后登录到服务器并检查最新的主干。
您可以使用与git和其他分散版本控制系统相同的模式。这些系统的优点是它们不强制执行中央服务器模式。例如,dev a可以推送到b,然后将其推送到服务器。