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