首先,我很抱歉这个问题的规模很大,因为我确信我提出的是一个实施方面的“重大事项”,可能是三到四个单独的问题本身。我不会问我是不是非常需要帮助。一个Sitecore站点的Git源代码控制策略
我已经接受了修改公司关于在线工作的风险管理程序的巨大任务。因为我们没有备份,也没有保护我们的数据,所以我决定像任何参与专业编程的人都应该做的那样,我们将通过源代码控制来保护我们的工作。我目前使用Git在本地进行此操作,但其他人不使用源代码控制,最终我们失去了源代码控制提供的许多好处。我宁愿我们有一个系统,每个人都使用Git,并强制规定如果它不在源代码控制中,它不会停留。显然,我们需要一个备份计划,但作为一名开发人员,我认为首先要做的是在对备份解决方案进行排序之前,先对事物的编码方面进行分类 - 显然,任何有关这方面的建议都非常值得欢迎。
我们运行一个带有SQL Server 2005后端的ASP.NET网站,运行Sitecore作为我们选择的CMS。在一个理想的世界中,我希望在源代码控制下包含该数据库的所有不断变化的部分。
目前,我知道这不是最好的想法,我为Sitecore中构建的所有子布局运行一个解决方案。这是在源代码控制之下,并感谢Git我已经能够添加分支机构,推送新功能和轻松修复错误(使用Git-flow作为我的工作流程解决方案)。尽管如此,我对Git还是比较陌生,所以我没有在提交之外管理任何过于复杂的内容,忽略某些文件等。
最重要的是,我还想使用源代码控制来获取数据库内容来源控制。据我了解,您可以将Sitecore内容项目作为文件系统中的一棵巨大树(如果我没有记错,保存为.item文件?)。如果这是理想的解决方案,我也想将这些添加到源代码控制,尽管我不知道它们将保存在文件系统中的确切位置。我的文件系统现在的问题是这样的:
- Data (Logs, indexes, etc - is this needed to be in source control?)
- Source (Helper files, although occasionally modified)
- Website (Containing all the files I edit, and other essential Sitecore stuff)
如前所述我目前的仓库只是我的系统上,它由一个单一的解决方案文件夹的带着一帮的.ascx的,.ascx.cs,的.ascx .cs.designer和奇数.aspx文件或两个。这样可以让我的生活更轻松上传,就像使用
我想输入的内容是一个管理所有开发人员的理想方法。尽管使用了DVCS,但我更愿意将实时服务器视为主要存储库,并让所有其他开发人员将其推送并从中拉出,然后互相拉取。我们将使用git-flow workflow solution,因为它符合我们良好的发展方式。显而易见,我担心的是在没有备份的情况下,在不破坏目前服务器上非常昂贵的高流量网站的情况下正确设置。
有关服务器上有多少数据粘贴到存储库中的提示和建议,关于如何处理Sitecore中的序列化数据的指导,以及如何使用源代码管理本身作为备份到单独存储的方式存储库将受到欢迎。这是我第一次为一个现场网站建立一个源代码控制系统/工作流程,所以任何关于什么对我来说是最好的事情的指导和建议都是值得赞赏的。
编辑:我打算把这个奖金,试图获得更多的指导人们如何处理Sitecore与Git。为了说明我自己,我不是在寻找一种方法来备份我的工作,而是一种方式,以便一些开发人员可以使用它并确保网站上的代码与中央存储库保持一致。例如,我之前已经提到过,我将使用git-flow来管理我的工作流程。原始回购将存在于一个共享服务器上(这可能会成为一个测试环境),所有开发人员都会克隆这些工作的克隆并推向。从这里,我希望能够将共享驱动器上的原始回购更改推送到实时服务器,并在发现错误时再次将其更改回来。我还想在我的回购中包含序列化的内容项目。修订后的问题
这将是很好的。可悲的是,我们只有运行Sitecore的一份副本的许可证,并且这些副本在现场网站上运行,所以我们无法运行一个用于开发/测试目的。这是做事最糟糕的一种方式,但是如果不花费大量的钱,我们的手显然是并列的。 – AlexT 2011-05-05 10:45:35
@AlexT:Heya。请检查我的修改答案。 – ralphtheninja 2011-05-11 14:32:20
感谢您的回复。我喜欢你的建议,这是我一定会研究的。但是,关于存储库本身,是否值得我坚持整个CMS,将序列化的内容放入回购库中,还是只添加可能会更改的文件? – AlexT 2011-05-16 15:36:15