本發(fā)明涉及軟件技術領域,特別是涉及一種文件處理方法和一種文件處理裝置。
背景技術:
在軟件開發(fā)時,代碼開發(fā)完成后要進行發(fā)布操作,對于服務端而言就是將開發(fā)的代碼部署到線上服務器上。
但是,在代碼開發(fā)過程中,有一些項目的代碼文件是多個程序員合作開發(fā)的,不同程序員開發(fā)同一個代碼文件就可能出現代碼文件未完善就上線的問題,導致上線程序出現錯誤,影響線上服務器的正常運行。
例如,兩個程序員合作開發(fā)一個項目,程序員A修改了文件a.txt并提交到遠程主庫master上準備上線,但是由于某些原因導致未上線。此時程序員B也要修改文件a.txt,但是B可能沒有注意到A也修改了這個代碼文件,B修改完成后就將a.txt上線了,導致程序員A的修改也就被帶上線了,導致可能出現bug產生,影響線上服務器的正常運行。
技術實現要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的文件處理方法和相應的文件處理裝置。
依據本發(fā)明實施例的一個方面,提供了一種文件處理方法,包括:接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master;對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布;將鎖定的代碼文件上傳到master;依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
可選的,所述接收到文件上傳命令時,獲取用戶上傳的代碼文件,包括:接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序;采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
可選的,對所述代碼文件執(zhí)行加鎖操作,包括:依據所述文件信息確定所述鎖定用戶的鎖記錄。
可選的,依據所述文件信息確定所述鎖定用戶的鎖記錄,包括:判斷所述鎖定用戶是否具有鎖記錄;若所述鎖定用戶具有鎖記錄,則將所述文件信息添加到所述鎖定用戶的鎖記錄中。
可選的,其中,還包括:若所述鎖定用戶不具有鎖記錄,則建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
可選的,依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定,包括:判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
可選的,解除對代碼文件的鎖定,包括:從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息??蛇x的,所述的方法還包括:對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。
可選的,獲取用戶上傳的代碼文件之后,所述的方法還包括:判斷所述代碼文件是否被鎖定;若代碼文件已被鎖定,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。
根據本發(fā)明實施例的另一個方面,提供了一種文件處理裝置,包括:獲取模塊,用于接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master;鎖定模塊,用于對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布;上傳模塊,用于將鎖定的代碼文件上傳到master;解鎖模塊,用于依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
可選的,所述獲取模塊,包括:觸發(fā)子模塊,用于接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序;文件獲取子模塊,用于采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
可選的,所述鎖定模塊,用于依據所述文件信息確定所述鎖定用戶的鎖記錄。
可選的,所述鎖定模塊,包括:判斷子模塊,用于判斷所述鎖定用戶是否具有鎖記錄;記錄鎖定子模塊,用于在所述鎖定用戶具有鎖記錄時,將所述文件信息添加到所述鎖定用戶的鎖記錄中。
可選的,所述記錄鎖定子模塊,還用于在所述鎖定用戶不具有鎖記錄時,建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
可選的,所述解鎖模塊,用于判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
可選的,所述解鎖模塊,用于從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息。
可選的,所述解鎖模塊,還用于對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。
可選的,所述的方法還包括:加鎖判斷模塊,用于判斷所述代碼文件是否被鎖定;若代碼文件已被鎖定,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。
在接收到文件上傳命令時獲取用戶上傳的代碼文件,然后鎖定該上傳的代碼文件,從而除鎖定代碼文件的用戶外,其他非鎖定用戶均無法發(fā)布該鎖定的代碼文件,然后將鎖定的代碼文件上傳到master,在鎖定用戶將鎖定的代碼文件發(fā)布上線后,再接觸對代碼文件的鎖定,保證在代碼文件上傳到master后不會被其他用戶上線,防止由于誤上線代碼文件而導致的上線安全問題。
上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發(fā)明一個實施例的一種文件處理方法實施例的步驟流程圖;
圖2示出了根據本發(fā)明另一個實施例的一種文件處理方法實施例的步驟流程圖;
圖3示出了根據本發(fā)明一個實施例的一種文件處理裝置實施例的結構框圖;以及
圖4示出了根據本發(fā)明另一個實施例的一種文件處理裝置實施例的結構框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
程序員在開發(fā)項目過程中,可以依據需求修改代碼文件,在代碼文件修改完畢后,可以上傳到發(fā)布系統(tǒng)的遠程主庫master,準備上線。但是多人開發(fā)同一項目時可能存在誤上傳修改中的代碼文件的問題。為了防止多人開發(fā)同一項目時,誤上線其他程序員修改中的代碼文件而導致的上線安全問題,本實施例可以通過代碼文件上傳master時加鎖來防止其他程序員誤上線。
參照圖1,示出了根據本發(fā)明一個實施例的一種文件處理方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟102,接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master。
本實施例采用在代碼文件上傳master時加鎖的方式,使得鎖定的代碼文件不能被其他用戶上線,從而防止出現問題。其中,文件上傳命令用于上傳代碼文件到發(fā)布系統(tǒng)的master,本實施例可以在接收到文件上傳命令時,獲取用戶要上傳的代碼文件。
例如,基于git進行軟件開發(fā)時,git提供了一種鉤子機制,可指定執(zhí)行某個命令時觸發(fā)某個腳本的執(zhí)行,因此實施例可以指定執(zhí)行文件上傳命令時觸發(fā)加鎖腳本的執(zhí)行,即加鎖的時機是在push到遠程時,即在pre-push時在腳本中進行加鎖操作。其中,Git是一個開源的分布式版本控制系統(tǒng),可以有效、高速的處理從很小到非常大的項目版本管理。
步驟104,對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布。
步驟106,將鎖定的代碼文件上傳到master。
對該代碼文件執(zhí)行加鎖操作,即添加代碼文件的文件鎖來鎖定所述代碼文件,其中代碼文件的鎖定與用戶綁定,即上傳代碼文件的用戶即為鎖定代碼文件的用戶,從而定義鎖定的代碼文件禁止其他用戶(即非鎖定用戶)發(fā)布到線上服務器,即禁止代碼文件被非鎖定用戶上線。在代碼文件鎖定后,可將鎖定的代碼文件上傳到master。
步驟108,依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對述代碼文件的鎖定。
鎖定用戶在上傳的代碼文件沒有問題后,可以將代碼文件發(fā)布上線,即鎖定用戶可執(zhí)行對鎖定的代碼文件的發(fā)布操作,將該代碼文件發(fā)布到線上服務器中,在代碼文件上線成功后,解除對該代碼文件的鎖定。其他用戶可以修改該代碼文件上傳到master。
例如,基于git用戶A和用戶B合作開發(fā)一個項目,其中代碼文件a.txt用戶A和B各自開發(fā)部分內容。用戶A對該代碼文件a.txt進行修改后,發(fā)送文件上傳命令以上傳到master,在接收到文件上傳命令pre-push時獲取該a.txt,將該a.txt執(zhí)行加鎖操作鎖定a.txt,然后將文件a.txt上傳到master。在文件a.txt被用戶A上傳到master,但未上線的過程中,若用戶B也修改了代碼文件a.txt要上傳到master,在接收到用戶B的上傳命令時,獲取該代碼文件a.txt及其文件信息,判斷該代碼文件a.txt已被鎖定,則拒絕用戶B的文件上傳指令,還可以提示用戶B:用戶A已上傳該文件到master,請等待用戶A上線該文件后再上傳等提示信息。用戶A在測試代碼文件a.txt沒有問題,可以將代碼文件a.txt發(fā)布到線上服務器,在代碼文件a.txt上線成功后,解鎖該代碼文件a.txt。此后用戶B可執(zhí)行文件上傳命令。
綜上,在接收到文件上傳命令時獲取用戶上傳的代碼文件,然后鎖定該上傳的代碼文件,從而除鎖定代碼文件的用戶外,其他非鎖定用戶均無法發(fā)布該鎖定的代碼文件,然后將鎖定的代碼文件上傳到master,在鎖定用戶將鎖定的代碼文件發(fā)布上線后,再接觸對代碼文件的鎖定,保證在代碼文件上傳到master后不會被其他用戶上線,防止由于誤上線代碼文件而導致的上線安全問題。
本實施例對上傳到master的代碼文件加鎖,以防止誤上線,因此加鎖的時機可在上傳代碼文件即push master時,因為一旦推到遠端master,其他程序員如果上線這個代碼文件就會把修改帶上去,因此在push master的時候加鎖和檢查鎖是比較合理的。將代碼文件push master時,如果檢測到該代碼文件沒加鎖,則執(zhí)行加鎖操作鎖定該代碼文件后上傳;如果檢測到該代碼文件已經加鎖了,表征之前有用戶修改了該代碼文件但是沒有進行上線操作,此時不能將該代碼文件push master,需要等待鎖定用戶將該鎖定發(fā)的代碼文件上線并接觸鎖定后,再將自己修改的代碼文件push master。
參照圖2,示出了根據本發(fā)明另一個實施例的一種文件處理方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟202,接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序。
步驟204,采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
在接收到到文件上傳命令時,觸發(fā)腳本調用鉤子程序,采用鉤子程序獲取用戶上傳的代碼文件,并獲取該代碼文件的文件信息,文件信息可以包括文件名稱、文件標識等。如基于git進行軟件開發(fā)時,git提供了一種鉤子機制,可指定執(zhí)行某個命令時觸發(fā)某個腳本的執(zhí)行,因此實施例可以指定執(zhí)行文件上傳命令時觸發(fā)加鎖腳本的執(zhí)行,即加鎖的時機是在push到遠程時,即在pre-push時在腳本中進行加鎖操作。
步驟206,判斷所述代碼文件是否被鎖定。
在獲取到代碼文件后,判斷該代碼文件是否已被鎖定,即可判斷該代碼文件的文件信息是否在某一鎖記錄中,若已存儲在某一鎖記錄中,則表征該代碼文件已被鎖定,執(zhí)行步驟208;若不存在該文件信息對應鎖記錄,表征該代碼文件未被鎖定,執(zhí)行步驟210。
步驟208,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。
若判斷代碼文件已被鎖定,可拒絕執(zhí)行對鎖定的代碼文件的上傳操作。并且可以反饋上傳失敗、該文件已XX被鎖定等提示信息,來提示用戶該文件暫時無法上傳,需要等鎖定用戶解鎖后再處理。
本實施例中,在鎖定用戶的鎖記錄中配置文件信息來表征代碼文件被鎖定,因此在代碼文件未被鎖定時,可以依據所述文件信息確定所述鎖定用戶的鎖記錄,來鎖定該代碼文件。
步驟210,判斷所述鎖定用戶是否具有鎖記錄。
本實施例中,鎖記錄與用戶綁定,即一個用戶對應一個鎖記錄,一個鎖記錄可以對應有文件列表,在該文件列表中存儲鎖定代碼文件的文件信息。因此在判斷在代碼文件未被鎖定時,判斷上傳該代碼文件的用戶即鎖定用戶是否具有鎖記錄。如果該鎖定用戶具有鎖記錄,執(zhí)行步驟212;如果該鎖定用戶不具有鎖記錄,執(zhí)行步驟214。
步驟212,將所述文件信息添加到所述鎖定用戶的鎖記錄中。
若所述鎖定用戶具有鎖記錄,則將所述文件信息添加到所述鎖定用戶的鎖記錄的文件列表中,即采用腳本在該鎖定用戶的鎖記錄中添加該代碼文件的文件信息。
步驟214,建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
若所述鎖定用戶不具有鎖記錄,則建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
步驟216,將鎖定的代碼文件上傳到master。
步驟218,判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
鎖定用戶在測試鎖定的代碼文件通過后,可以從master將鎖定的代碼文件發(fā)布到線上服務器,在該鎖定的代碼文件上線成功后,可以解除對代碼文件的鎖定。其中,解除對代碼文件的鎖定,包括:從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息??梢垣@取該鎖定用戶的鎖記錄,然后從該鎖記錄的文件列表中刪除該代碼文件的文件信息。
其中,還包括:對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。即上線代碼文件較多等情況下,可能存在上線目錄,如果存在上線目錄可以進一步進行轉化,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件,然后從對應鎖定用戶的鎖記錄中刪除該文件信息。
例如,基于git用戶A和用戶B合作開發(fā)一個項目,其中代碼文件a.txt用戶A和B各自開發(fā)部分內容。用戶A對該代碼文件a.txt進行修改后,發(fā)送文件上傳命令以上傳到master,在接收到文件上傳命令pre-push時,觸發(fā)腳本調用鉤子程序獲取該a.txt,然后可判斷a.txt是否已被鎖定,即a.txt的文件信息是否再某一鎖記錄中,若沒有在鎖記錄中即a.txt未鎖定,可采用該腳本執(zhí)行加鎖操作。可以判斷用戶A是否存在鎖記錄如Lock_A,若存在該鎖記錄Lock_A,則可以將該代碼文件a.txt的文件信息添加到Lock_A中;若不存在該鎖記錄Lock_A,則創(chuàng)建用戶A的鎖記錄Lock_A,將該代碼文件a.txt的文件信息添加到Lock_A中,然后將文件a.txt上傳到master。
在文件a.txt被用戶A上傳到master,但未上線的過程中,若用戶B也修改了代碼文件a.txt要上傳到master,在接收到用戶B的上傳命令pre-push時,獲取該代碼文件a.txt及其文件信息,判斷該代碼文件a.txt的文件信息已存儲在用戶A的鎖記錄Lock_A中,即代碼文件a.txt已被鎖定,則拒絕用戶B的文件上傳指令,還可以提示用戶B:用戶A已上傳該文件到master,請等待用戶A上線該文件后再上傳等提示信息。
用戶A在測試代碼文件a.txt沒有問題,可以將代碼文件a.txt發(fā)布到線上服務器,在代碼文件a.txt上線成功后,從用戶A的鎖記錄Lock_A中刪除a.txt的文件信息,此后用戶B可執(zhí)行文件上傳命令。若用戶A的鎖記錄Lock_A中無其他文件,則刪除該鎖記錄Lock_A,以后需要時再創(chuàng)建即可。
本實施例實現了基于文件的鎖機制。一個用戶保持一個鎖記錄,如果當前該用戶沒有鎖記錄,加鎖操作時插入一條該用戶的鎖記錄,如果當前用戶已經有一條沒有解鎖的鎖記錄,則直接在該鎖記錄中添加即可。其中,在軟件開發(fā)過程中,往往上傳到master的是項目的一系列文件,因此可以這些文件的文件信息構成一個文件列表,將要加鎖的文件列表添加到已經存在的鎖記錄當中,解鎖時在該鎖定用戶的鎖記錄的文件列表中,把需要解鎖的文件列表刪除出去。
從而在push操作執(zhí)行時對修改的文件進行加鎖操作,在上線完成之后,對上線成功的文件進行解鎖操作,將上線成功的文件列表在鎖記錄的文件列表中去除掉。其中,在解鎖文件時涉及到文件列表file_list的設計,文件列表file_list都是文件,則直接從鎖記錄中刪除即可,如果file_list有目錄則需要做一步轉化操作,全都轉換成文件,然后從鎖記錄中刪除。
對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據本發(fā)明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
在上述實施例基礎上,本實施例還提供了一種文件處理裝置。
參照圖3,示出了根據本發(fā)明一個實施例的一種文件處理裝置實施例的結構框圖,具體可以包括如下模塊:
獲取模塊302,用于接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master。
鎖定模塊304,用于對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布。
上傳模塊306,用于將鎖定的代碼文件上傳到master。
解鎖模塊308,用于依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
綜上,在接收到文件上傳命令時獲取用戶上傳的代碼文件,然后鎖定該上傳的代碼文件,從而除鎖定代碼文件的用戶外,其他非鎖定用戶均無法發(fā)布該鎖定的代碼文件,然后將鎖定的代碼文件上傳到master,在鎖定用戶將鎖定的代碼文件發(fā)布上線后,再接觸對代碼文件的鎖定,保證在代碼文件上傳到master后不會被其他用戶上線,防止由于誤上線代碼文件而導致的上線安全問題。
參照圖4,示出了根據本發(fā)明另一個實施例的一種文件處理裝置實施例的結構框圖,具體可以包括如下模塊:
獲取模塊302,用于接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master。
加鎖判斷模塊310,用于判斷所述代碼文件是否被鎖定;若代碼文件已被鎖定,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。
鎖定模塊304,用于對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布。
上傳模塊306,用于將鎖定的代碼文件上傳到master。
解鎖模塊308,用于依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
其中,所述獲取模塊302,包括:
觸發(fā)子模塊3022,用于接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序。
文件獲取子模塊3024,用于采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
其中,所述鎖定模塊304,用于依據所述文件信息確定所述鎖定用戶的鎖記錄。
所述鎖定模塊304,包括:
判斷子模塊3042,用于判斷所述鎖定用戶是否具有鎖記錄。
記錄鎖定子模塊3044,用于在所述鎖定用戶具有鎖記錄時,將所述文件信息添加到所述鎖定用戶的鎖記錄中。
所述記錄鎖定子模塊3044,還用于在所述鎖定用戶不具有鎖記錄時,建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
所述解鎖模塊308,用于判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
所述解鎖模塊308,用于從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息。
所述解鎖模塊308,還用于對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。
本實施例實現了基于文件的鎖機制。一個用戶保持一個鎖記錄,如果當前該用戶沒有鎖記錄,加鎖操作時插入一條該用戶的鎖記錄,如果當前用戶已經有一條沒有解鎖的鎖記錄,則直接在該鎖記錄中添加即可。其中,在軟件開發(fā)過程中,往往上傳到master的是項目的一系列文件,因此可以這些文件的文件信息構成一個文件列表,將要加鎖的文件列表添加到已經存在的鎖記錄當中,解鎖時在該鎖定用戶的鎖記錄的文件列表中,把需要解鎖的文件列表刪除出去。
從而在push操作執(zhí)行時對修改的文件進行加鎖操作,在上線完成之后,對上線成功的文件進行解鎖操作,將上線成功的文件列表在鎖記錄的文件列表中去除掉。其中,在解鎖文件時涉及到文件列表file_list的設計,文件列表file_list都是文件,則直接從鎖記錄中刪除即可,如果file_list有目錄則需要做一步轉化操作,全都轉換成文件,然后從鎖記錄中刪除。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發(fā)明實施例的文件處理方法和裝置設備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發(fā)明公開了A1、一種文件處理方法,包括:
接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master;
對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布;
將鎖定的代碼文件上傳到master;
依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
A2、如A1所述的方法,其中,所述接收到文件上傳命令時,獲取用戶上傳的代碼文件,包括:
接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序;
采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
A3、如A2所述的方法,其中,對所述代碼文件執(zhí)行加鎖操作,包括:
依據所述文件信息確定所述鎖定用戶的鎖記錄。
A4、如A3所述的方法,其中,依據所述文件信息確定所述鎖定用戶的鎖記錄,包括:
判斷所述鎖定用戶是否具有鎖記錄;
若所述鎖定用戶具有鎖記錄,則將所述文件信息添加到所述鎖定用戶的鎖記錄中。
A5、如A4所述的方法,其中,還包括:
若所述鎖定用戶不具有鎖記錄,則建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
A6、如A3所述的方法,其中,依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定,包括:
判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
A7、如A6所述的方法,其中,解除對代碼文件的鎖定,包括:
從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息。
A8、如A6所述的方法,其中,所述的方法還包括:
對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。
A9、如A1所述的方法,其中,獲取用戶上傳的代碼文件之后,所述的方法還包括:
判斷所述代碼文件是否被鎖定;
若代碼文件已被鎖定,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。
本發(fā)明實施例還公開了B10、一種文件處理裝置,包括:
獲取模塊,用于接收到文件上傳命令時,獲取用戶上傳的代碼文件,其中,所述文件上傳命令用于上傳代碼文件到遠程主庫master;
鎖定模塊,用于對所述代碼文件執(zhí)行加鎖操作,鎖定所述代碼文件,其中,將上傳所述代碼文件的用戶作為鎖定用戶,則鎖定的代碼文件禁止非鎖定用戶發(fā)布;
上傳模塊,用于將鎖定的代碼文件上傳到master;
解鎖模塊,用于依據所述鎖定用戶針對鎖定的代碼文件的發(fā)布操作,解除對代碼文件的鎖定。
B11、如B10所述的裝置,其中,所述獲取模塊,包括:
觸發(fā)子模塊,用于接收到文件上傳命令時,觸發(fā)腳本調用鉤子程序;
文件獲取子模塊,用于采用所述鉤子程序獲取用戶上傳的代碼文件,以及所述代碼文件的文件信息。
B12、如B11所述的裝置,其中,
所述鎖定模塊,用于依據所述文件信息確定所述鎖定用戶的鎖記錄。
B13、如B12所述的裝置,其中,所述鎖定模塊,包括:
判斷子模塊,用于判斷所述鎖定用戶是否具有鎖記錄;
記錄鎖定子模塊,用于在所述鎖定用戶具有鎖記錄時,將所述文件信息添加到所述鎖定用戶的鎖記錄中。
B14、如B13所述的裝置,其中,
所述記錄鎖定子模塊,還用于在所述鎖定用戶不具有鎖記錄時,建立所述鎖定用戶的鎖記錄,在所述鎖定用戶的鎖記錄中添加所述文件信息。
B15、如B12所述的裝置,其中,
所述解鎖模塊,用于判斷所述鎖定用戶從master將鎖定的代碼文件發(fā)布到線上服務器后,解除對代碼文件的鎖定。
B16、如B15所述的裝置,其中,
所述解鎖模塊,用于從所述鎖定用戶的鎖記錄中刪除所述代碼文件的文件信息。
B17、如B15所述的裝置,其中,
所述解鎖模塊,還用于對上線目錄進行轉換,確定上線的代碼文件,從所述上線的代碼文件中確定鎖定的代碼文件。
B18、如B10所述的裝置,其中,所述的方法還包括:
加鎖判斷模塊,用于判斷所述代碼文件是否被鎖定;若代碼文件已被鎖定,拒絕執(zhí)行對鎖定的代碼文件的上傳操作。