Ale*_*exT 14 asp.net git version-control sitecore
首先,我为这个问题的庞大规模道歉,因为我确信我提出的建议在实施方面是一个"大问题",可能本身可能是三到四个单独的问题.我不会问我是不是迫切需要帮助.
我被赋予了修改公司风险管理程序的重要任务,涉及我们的在线工作.
由于我们没有备份,也没有保护我们的数据,我已经决定,就像任何参与专业编程的人应该已经做的那样,我们将通过源代码控制来保护我们的工作.我目前使用Git在本地进行此操作,但其他人不使用源代码控制,最终我们失去了源代码控制提供的许多好处.我宁愿我们有一个系统,每个人都使用Git并强制执行规则,如果它不在源代码管理中,它就不会停留.显然,我们需要一个备份计划,但作为开发人员,我想首先要做的是在对备份解决方案进行排序之前对事物的编码方面进行整理 - 显然,对此的任何建议都非常受欢迎.
我们运行一个带有SQL Server 2005后端的ASP.NET网站,运行Sitecore作为我们的首选CMS.在理想的世界中,我希望将此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)
Run Code Online (Sandbox Code Playgroud)
如前所述,我当前的存储库仅在我的系统上,它包含一个解决方案文件夹,其中包含一堆.ascx,.ascx.cs,.ascx.cs.designer和奇数.aspx文件.这往往会使我的生活更容易上传,就像使用
我想要输入的是为所有开发人员管理这个的理想方式.尽管使用DVCS,我更愿意将实时服务器视为主存储库,并让所有其他开发人员从中推送和拉取它们.我们将使用git-flow工作流程解决方案,因为它很好地符合我们的开发方式.显然,我担心的是正确设置它而不破坏当前在没有备份的服务器上的非常昂贵,高流量的站点.
有关服务器上有多少数据存储在存储库中的提示和建议,有关如何处理Sitecore中的序列化数据的指导以及可能如何使用源代码控制本身作为备份到单独存储库的方式,将受到欢迎.这是我第一次为实时网站构建源代码控制系统/工作流程,所以对我最好的事情的任何指导和建议都会非常感激.
编辑:我将在这方面给予一个赏金,试图获得更多关于人们如何使用Git处理Sitecore的指南.
为了澄清自己,我不是在寻找一种方法来支持我的工作,而是让许多开发人员可以使用它来确保网站上的代码与中央存储库保持同步.例如,我之前已经引用过,我将使用git-flow来管理我的工作流程.原始仓库将存在于共享服务器上(在时间上可能是一个测试环境),并且所有开发人员都将拥有可以继续工作和推送的克隆.从这里开始,我希望能够将更改从共享驱动器上的原始存储库推送到实时服务器,如果发现错误则再次返回.我还想在我的仓库中包含序列化的内容项.
小智 11
查看HedgeHog的Team Development Soultions(3.0是最新版本).当与Visual Studio,Sitecore Rocks,Team City(或其他构建服务器)一起使用时,它满足了您的许多需求.访问http://hhogdev.com/了解更多详情.
修改问题后修改答案:
好的,当我们从您那里获得更多背景信息时,让我详细阐述我最初的想法。既然你说你只有一次 Sitecore 许可证并且不能有单独的测试服务器等,我们总是可以稍微修改一下并仍然达到相同的效果。
如果您在运行实时 Sitecore 的同一服务器上有多个存储库怎么办?如果您可以将 Sitecore 设置为在同一文件系统上使用不同的根/存储库,例如,您将 url 更改为http://yoursite.com/blahblah/test以在测试模式下运行 Sitecore。当然,这取决于您拥有哪种许可证,即它是否与特定机器绑定。无论如何,通过这种方式,您可以在另一个分支(例如测试存储库中的开发分支)上测试您的站点,然后将内容合并到 master 并让它上线。
因此,您可以在服务器上拥有一个裸存储库,每个人都可以从中推送和拉取。您可以在同一台服务器上有两个额外的非裸存储库,一个检出 master 分支,另一个检出开发分支。如果您想在 Sitecore 站点的测试版本上测试新功能,通过 ssh 登录,您可以轻松地在测试存储库中运行“git pull”。当您对更改感到满意时,合并到 master 并推送到您的裸存储库上的 master 并以相同的方式更新实时存储库。
我认为您需要尝试找到一种方法来拥有网站的两个版本,以便您可以在更改上线之前对其进行测试。
原帖:
我强烈建议您将实时服务器和您当前正在处理的内容分开,即另一个存储库,您也可以在其中推送您的工作(并从中提取),该存储库充当集成存储库。通过这种方式,您可以在将代码推送到实时服务器之前在本地(您的组织本地)集成代码并对其进行测试,因此没有人会意外地将代码/数据库/任何内容直接推送到实时服务器。
我还建议您对中央存储库的数据进行备份,换句话说,git应该用作版本控制系统,而不是备份系统。即使 git 也可能会失败并导致存储库损坏,然后如果您没有任何备份,您就会被熏死。
另外,如果可能的话,尝试将实际站点内容与处理数据的逻辑分开,即尝试保持良好的模型/视图概念。这样您就可以轻松地设置一个测试环境,该环境具有独立于代码的测试数据库,并且无需提交数据库。当然,除非你真的想提交它们:)
归档时间: |
|
查看次数: |
2027 次 |
最近记录: |