日前,Perforce攜手合作伙伴龍智一同亮相Unreal Fest 2024上海站,分享Helix Core版本控制系統(tǒng)及其協(xié)作套件的強大功能與最新動態(tài),助力游戲創(chuàng)意產(chǎn)業(yè)加速前行。
Perforce解決方案工程師Kory Luo在活動主會場帶來《Helix Core+Unreal Engine工作流程與使用實踐》的主題演講,分享Helix Core在Project Titan項目中的關鍵角色、與Unreal Engine的配置技巧、常見的使用誤區(qū)及解決辦法,以及Helix Core的最新功能與應用等重磅干貨。
此次演講回顧分為上下兩期為您呈現(xiàn)(內(nèi)容有精簡優(yōu)化);本期為(下)期。
如何避免、解決常見問題
那些發(fā)生在Project Titan中,你也可能會遇到的問題
本節(jié),我們將了解一些在管理Project Titan中遇到的問題和解決方法,看看大家是否遇到過同樣的問題,以便下次再遇到時能夠從容應對。
問題1:使用非流工作區(qū)在流版本倉中工作。
我們版本倉的常用類型有classicdepot和streamdepot。當用戶第一次與服務器交互時,會創(chuàng)建一個工作區(qū),用來存儲從服務器下載到本地的文件。初始狀態(tài)下,默認的工作區(qū)是classicdepot,stream的選項是空白的。當我們需要在stream depot下操作時,若新手用戶沒有將工作區(qū)與stream depot相對應,這導致會出現(xiàn)的問題是:用戶雖然可以進行下載和更改,但無法提交,因為工作區(qū)的屬性與版本倉的屬性不匹配。
解決的方法也很簡單:編輯工作區(qū)規(guī)范(workspace spec),將其附加到相對應的流版本倉即可。但是對于4000多人的ProjectTitan項目,我們無法逐個告知用戶,所以我們創(chuàng)建了p4python腳本,通過設置預定任務每小時對workspace spec進行修正,以便在用戶發(fā)現(xiàn)之前解決問題,從而大大減少用戶遇到此問題的幾率。
問題2:在OSX系統(tǒng)中,將工作區(qū)路徑設置到exFat存儲。
如此設置的OSX系統(tǒng)用戶,可以正常創(chuàng)建工作區(qū)、下載或更改文件,但是當服務器的文件有新版本需再次下載的時候,就會出現(xiàn)“Can’t clobber writable file”的報錯。
什么原因呢?正常操作下,我們初期下載到本地的文件是read-only只讀模式,需要用P4V或UE執(zhí)行checkout(簽出),將文件權限從read-only改成read-write,才能正常進行更改。一旦用戶不通過服務器,而在本地直接更改文件的讀寫權限,這看似沒有問題,但在后續(xù)的提交或下載時,服務器會將其判斷為“離線更改”,而出現(xiàn)無法與服務器最新版本同步的情況。因為服務器擔心覆蓋掉您的本地內(nèi)容,導致數(shù)據(jù)丟失,所以呢會發(fā)出“Can’t clobber writable file”的警告。
對于不兼容的文件系統(tǒng),我們的解決方案也只能是——將其格式化,然后使用相匹配的文件系統(tǒng)。在Project Titan中,用戶備份數(shù)據(jù)后,重新格式化硬盤為APFS,然后就可以繼續(xù)工作了。
問題3:服務器的儲存安全限制。
Helix Core對服務器數(shù)據(jù)的主要儲存空間有一些硬性限制,比如對于儲存metadata、日志、temp表的磁盤空間,默認值是250MB。即:當磁盤空間不足250MB時,服務器會停止接收任何命令。畢竟,版本控制軟件是用來記錄所有版本的相關信息的,如果磁盤空間不足,已經(jīng)無法正常讀寫還繼續(xù)接收版本的話,也就喪失版本控制的意義了。
為了避免這一情況,我們需要定時清理舊的磁盤和日志,例如可以保留最近7天的日志,同時可確保在遇到問題時,有足夠的日志信息以便追溯問題源頭。另外,也可以將舊版本的文件存檔到外部硬盤或云端,以確保服務器中的磁盤空間充足,能夠滿足實際的需求。
當然,最重要的還是要做到密切監(jiān)控。若問題發(fā)生后再著手解決,很可能會影響服務器的運行時間甚至導致停機。這時候,P4Prometheus的重要性就不言而喻了。它可以設置自定義郵件警報,比如設置當磁盤空間不足70%時,向管理員發(fā)送郵件警報,以便我們提前采取措施,避免服務器停機。
問題4:服務器大小寫問題。
我們知道,Linux服務器區(qū)分大小寫,而Windows不區(qū)分。有些團隊使用的是Linux服務器,但既有Windows用戶又有Linux用戶,有大小寫就會顯得非常混亂。如果兩個文件的路徑、文件名都相同僅僅是大小寫不同,Linux服務器會將其視為兩個文件,而上傳這樣的文件是沒有意義的。不過呢,對于涉及多個部門協(xié)同工作的項目來說,保留服務器中的大小寫屬性也很有必要,它能夠幫助促進不同部門間的協(xié)作和兼容。
那如何控制這一問題呢?——可以通過安裝CheckCase Trigger,將那些待提交的僅大小寫不同、但文件內(nèi)容完全相同的兩個文件名或目錄名進行攔截,以避免產(chǎn)生沖突。
那些我們創(chuàng)建的實用工具和腳本
分享和構建一些免費的社區(qū)支持工具
接下來,為大家介紹一些我們創(chuàng)建的實用腳本和工具。
工具1:簡易密碼重置工具
我們常常會遇到忘記密碼的情況。 如果某個用戶忘記了,管理員可在P4Admin上操作重置。規(guī)模比較小的項目中,管理員一一手動重置是沒有問題的,但對于4000人以上的大規(guī)模項目,管理員可能每天都收到大量的重置請求,再手動重置的話,無疑會令人崩潰。
對此,我們創(chuàng)建了一個實用腳本,即簡易密碼重置工具,來幫助管理員自動生成臨時密碼。在Project Titan中,我們通過Discord聊天軟件將密碼發(fā)送給用戶進行重置。國內(nèi)使用微信的用戶更多,那我們也可以根據(jù)需求,改為通過微信或郵件來與用戶交流。
工具2:強制解鎖工具
由于二進制文件不可合并,一旦某個用戶檢出后未及時上傳,其他任何成員都不能對該文件進行修改。對于小型團隊,或許可以和用戶溝通,由管理員逐個強制解鎖,但對于數(shù)百甚至上千人的大體量項目,溝通的成本就會顯著增加。所以我們必須使用工具。
通過將我們的強制解鎖工具加載到P4V的CustomTools中,右鍵單擊選擇“強制解鎖”,即可解鎖該文件,以確保工作的流通和順利推進。這對大體量的工作室來說,非常有幫助。
工具3:超時自動復原工具
這一工具與前面的強制解鎖工具有異曲同工之妙,但是更為強硬一些。它會設定一個時間期限,若用戶在期限內(nèi)未對檢出的文件進行上傳或提交,系統(tǒng)就會自動復原該文件至檢出前的狀態(tài)。復原后,用戶的本地更改會全部消失。當然,這很可能會引起用戶的不滿,但某些情況下,特別是在Project Titan這樣的大型項目中,由于人數(shù)眾多,存在很多遲遲不上傳的情況,我們又無法與各個用戶高效溝通,這時候,超時自動復原就成為一項必要的手段。
不過在實施此功能時,可以進行一些柔化處理。我們可以設置預警機制,比如提前3天發(fā)送郵件提醒用戶上傳,以減少不必要的工作損失。
工具4:P4項目模版工具
這是一款面向管理員的模板化服務器部署工具。對于經(jīng)常需要為項目組部署服務器的管理員來說,這一工具可幫助大大簡化部署流程。通過模板工具,管理員可以快速搭建出具有基本功能的服務器環(huán)境,后續(xù)再根據(jù)具體的需求進行微調。
那些您需要了解的新功能
了解如何將其應用到您的工作室中
最后,我們再來看看Helix Core近年來推出的幾項矚目的新功能。
1、虛擬文件同步-Helix Core 2023.1
這項功能在23.1版本中首次推出。什么是“虛擬文件同步”呢?就是工作區(qū)同步時,只會下載元數(shù)據(jù)(包括誰、在什么時間、執(zhí)行了什么操作以及文件名、文件歷史記錄等),但不會立即將實體文件下載到本地。只有當用戶對文件進行更改時,系統(tǒng)才會將實體文件從服務器端同步到本地。通過這一功能,我們可以大大節(jié)省磁盤空間,并提升初期的下載速度。
2、系統(tǒng)資源監(jiān)控- Helix Core 2023.1
當服務器資源緊張時,我們Helix Core的服務器會將用戶的命令行排隊,待資源充足后再進行逐個處理,以確保服務器的正常工作,改善系統(tǒng)在高壓下的運行時間。
3、Sparse Streams-Helix Core 2024.1
Sparse Streams可以理解為輕量級的分支流,和剛才提到的“虛擬文件同步”類似,Sparse Streams在創(chuàng)建初期,只生成少量的元數(shù)據(jù),并允許用戶選擇需要包含的文件。它不會立即下載大量的實體文件到本地,從而幫助節(jié)省磁盤空間,創(chuàng)建流的體驗也會非常流暢。
Sparse Streams與其Parent Stream相關聯(lián),只有在用戶對實體文件進行實際更改時,才會從parent stream中抓取相應的文件到Sparse Streams,并傳送給用戶。這對于修復小bug或開發(fā)一些簡易功能非常有用,后續(xù)也可以輕松升級為其他類型的流,比如開發(fā)流或發(fā)布流。
4、支持S3(及兼容S3)對象存儲 - Helix Core 2024.1
這一功能擴展了對更具有成本效益的云存儲的支持。24.1之前只支持存檔(archive depot)版本倉。24.1版本后,支持除remotedepot外的所有版本倉類型。(*remotedepot適用于與其他公司或第三方合作時分享文件、數(shù)據(jù)、代碼或數(shù)字資產(chǎn)。)
5、Delta Submits - Helix Core 2024.1
Delta Submits是今年新推出的一項非常強大的功能,可減少未壓縮的二進制文件在提交時的網(wǎng)絡負載。簡單來說,它將大文件分割成多個小塊,并通過算法比較,僅提交相對于上一版本有更改的一些小塊,從而減少上傳的負載和時間。在服務器端,這些小塊會與之前的版本內(nèi)容合并重構,生成最新的版本存儲在服務器上。對于網(wǎng)絡延遲較高的環(huán)境,這項功能尤為有用,我們的內(nèi)部測試顯示,上傳速度可提升至少3到4倍。
以上是我們Helix Core的一些功能介紹,以及在Project Titan項目中的一些應用分享。如需進一步體驗Helix Core的強大功能,歡迎聯(lián)系Perforce中國授權合作伙伴龍智,獲得下載安裝支持。
5人及以下的小團隊,可以免費使用Helix Core,所有功能與付費版相同。對于沒有技術人員專管服務器的團隊,我們也提供HelixRemoteAdmin(HRA)服務,涵蓋了Helix Core所有產(chǎn)品、Swarm版本審查工具等,由Perforce專業(yè)團隊幫您部署和持續(xù)管理。此外,我們還推出了Helix Core Cloud服務,適用于50人及以下的團隊。通過云托管,您可以獲得專屬的VM,用于部署和運行服務器。這種部署方式更為經(jīng)濟,也非常安全,只有本公司的人員才能訪問。同時,我們也提供全面的備份服務,可根據(jù)您的需求定制不同的云容量。
以上就是本次演講的全部內(nèi)容,謝謝大家!
-
控制系統(tǒng)
+關注
關注
41文章
6633瀏覽量
110682 -
版本管理
+關注
關注
0文章
7瀏覽量
186 -
版本控制
+關注
關注
0文章
15瀏覽量
75
發(fā)布評論請先 登錄
相關推薦
評論