首先,我很抱歉這個問題的規模很大,因爲我確信我提出的是一個實施方面的「重大事項」,可能是三到四個單獨的問題本身。我不會問我是不是非常需要幫助。一個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