• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      實戰(zhàn)Linux版本控制機制

      2017-03-10 07:45:51
      網(wǎng)絡(luò)安全和信息化 2017年3期
      關(guān)鍵詞:命令倉庫用戶

      引言:所謂版本控制,就是將多次操作的結(jié)果以日志的方式存儲下來,便于之后進(jìn)行恢復(fù)。版本控制并不是一個簡單的軟件而是一套系統(tǒng),版本控制系統(tǒng)針對文件的變動進(jìn)行監(jiān)控,記錄其數(shù)據(jù)變動信息。其可以恢復(fù)目標(biāo)文件到之前的任意版本,并可比較兩個版本之間的差異。其支持多個用戶同時編輯同一個文件,能夠記錄哪個用戶什么時間修改該文件,為什么修改該文件。對于系統(tǒng)管理員來說,其對于腳本,文檔,配置文件等數(shù)據(jù)進(jìn)行的修改,都可以保存在版本控制體系中。

      版本控制運行機制

      在Linux中提供了Subversion和CVS 兩款版本控制系統(tǒng),兩者在功能上沒有大的區(qū)別,但是前者比較新而且發(fā)展趨勢較好,因此推薦使用Subversion。

      對于Subversion來說,其存儲理念是將文件存儲在集中式的倉庫中,該倉庫可以位于本地磁盤,也可以在遠(yuǎn)程主機上,通過SSH或者WebDav進(jìn)行訪問。

      每個用戶在倉庫中都有自己的工作目錄,用戶想使用版本控制體系中的項目文件,必須有自己的工作目錄。

      當(dāng)用戶登錄后,在用戶的Home目錄或工作目錄中,會針對版本控制軟件會生成一個名為“.svn”的隱藏目錄,在其中存放版本控制軟件的元數(shù)據(jù)以及屬于用戶的文件。

      注意:不要使用手動的方法,來更改該隱藏目錄中的任何數(shù)據(jù)。

      如果在某臺Linux用戶本機上配置了版本控制體系,并保存了所有的文檔,由于該機同時保持著倉庫和用戶,因此用戶想使用倉庫中的數(shù)據(jù),必須先將其下載后才可以對其進(jìn)行編輯,當(dāng)執(zhí)行提交修改的時刻,才上傳到倉庫中。

      因為有別的用戶在該機上登錄,所以無法直接對倉庫中的文件進(jìn)行編輯,倉庫是加密的庫,用戶無法看到的。

      訪問倉庫的方式有多種,對于存儲在本地的倉庫來說,其格式為“file:///repo/path”。對于存在于遠(yuǎn)程主機上的倉庫來說,其格式為“svn+ssh://hostname/repo/path”,這是對于SSH方式而言的。

      對 于WebDav方 式來說,其格式為“http://hostname/repo/path”。只要執(zhí)行過一次和版本控制相關(guān)的指令,就會生成上述“.svn”目錄,其中記錄這一系列的元數(shù)據(jù),包含了服務(wù)器的地址和下載的項目名稱等內(nèi)容。這里以RHEL 6.0為例進(jìn)行說明。

      在本地管理版本控制系統(tǒng)

      當(dāng)建立一個空的倉庫時,必須以Root用戶執(zhí)行“svnadmin create /path”命令來實現(xiàn)。如果允許遠(yuǎn)程用戶使用SSH方式進(jìn)行訪問,需要配置sshd服務(wù),創(chuàng)建所需的賬戶。

      如果使用Web方式進(jìn)行訪問,需要配置Web服務(wù)器(例如Apache等),并安裝“Mod_Dav_Svn”模塊,同時配置所需的虛擬賬戶。

      在實際的工作中,為了便于管理,可以先創(chuàng)建一個目 錄(例 如“AllProject”)用來存放所有的項目,在該總目錄下創(chuàng)建一個子目 錄(例 如“dept”), 使用“svnadmin create /allproject/dept”命令,對其進(jìn)行初始化,創(chuàng)建一個新的項目。

      當(dāng)然,該目錄也可以有該命令自動創(chuàng)建。執(zhí)行“l(fā)l/allproject/dept”命 令,可以看到其中生成的所有數(shù)據(jù),其中的“db”目錄用來存放該項目中的所有文件。

      為了便于開發(fā)人員使用該項目數(shù)據(jù),需要進(jìn)行必要的權(quán)限設(shè)定。執(zhí)行“groupadd dept”命令,創(chuàng)建名為“dept”的組。

      執(zhí) 行“useradd user1-G dept”,“useradd user2-G dept”, 將“user1” 和“user2”用戶添加到該組中。

      執(zhí)行“chgrp -Rdept /allproject/dept/db”命令,將“/allproject/dept/db”的屬組設(shè)定“dept”用戶組,即該組擁有對該項目的權(quán)限。

      執(zhí)行“chmod -Rg+w /allproject/dept/db”命令,該組成員擁有對該目錄的寫權(quán)限。這樣,之后只要將用戶加入到該組中,就可以對該項目進(jìn)行開發(fā)。

      對于老版本的Linux來說,可能還需要執(zhí)行“chmod 2770 /allproject/dept/db”命令,確保該目錄中所有新建的文件以及子目錄的權(quán)限與父目錄的屬組一致。

      執(zhí) 行“yumlist subversion”命令,可以查看subversion包的安裝信息。

      對于開發(fā)者來說,需要將對應(yīng)的項目文件導(dǎo)入進(jìn)來。 執(zhí) 行“echo 'export EDITOR=VIM' >>~/.bash_profile” 和“. ~/.bash_profile”命令,為其指定編輯器,將其放置到啟動文件中,并讓其立即生效。

      執(zhí)行“set|grep EDI”命令,可以看到編輯器設(shè)置成功。

      例如項目文件位于“/var/pub/peizhi” 目 錄中,先進(jìn)入該目錄,執(zhí)行“svn import file:///allproject/dept”命令,在打開的編輯器中輸入合適的內(nèi)容后,保存后將其中的文件上傳到上述倉庫中的項目目錄中。

      注意:其默認(rèn)只上傳文本文件,而不是上傳二進(jìn)制文件。

      使用版本控制及存儲數(shù)據(jù)文件

      以 上 述“dept” 組 中的“user1”賬戶身份登錄系統(tǒng),執(zhí)行“svn checkout file:///allproject/dept/”命令,將上述“dept”項目下載到本地。之后進(jìn)入下載得到的“dept”目錄,可以查看其中的文件,執(zhí)行各種編輯操作。

      當(dāng)完成對應(yīng)的修改操作后,假設(shè)了修改了名為“filename”的文件,在“dept”目錄中執(zhí) 行“svn commit filename”命令,輸入關(guān)于該文件的修改說明信息后,執(zhí)行提交操作上傳到倉庫中。

      如 果 只 執(zhí) 行“svn commit”命令,可以自動搜索提交所有變動的文件。

      當(dāng)然,對于該組中的其他用戶來說,也可以執(zhí)行同樣的操作。別的用戶要想及時了解項目中相關(guān)文件的變動情況,可以執(zhí)行“svn update”命令來獲取更新信息。

      執(zhí)行“svn add filexxx”命令,可以向項目中追加名為“filexxx”的文件,之后再執(zhí)行提交操作。該文件必須位于注入“dept”項目文件夾,而不能隨意將任何路徑中的文件追加上去。中執(zhí)行“svn delete filexxx”命令,可以從項目中刪除文件。

      注意:這只是標(biāo)記為刪除,之后必須執(zhí)行提交操作方可。

      執(zhí)行“svn info”命令,可以檢查項目的狀態(tài)信息,例如訪問地址,倉庫根目錄,倉庫ID等。

      執(zhí)行“svn info -R”命令,可以查看其中每個文件的版本以及其詳細(xì)信息。執(zhí)行“svn status -vu”命令,也可以查看與之類似的狀態(tài)信息。

      當(dāng)項目組中的某個用戶希望查看某文件的版本信息時,可以執(zhí)行“svn log flname”命令,可以查看名為“finame”的文件的所有版本變動信息.

      其所有的修改記錄全部被顯示出來,包括具體的版本號(例如r1,r2等)、修改者賬戶名、修改時間、修改的行數(shù)以及說明信息等。

      如果想查看其與指定版本號存在哪些區(qū)別,可以執(zhí)行“svn diff –r3 flname”命令,可以查看“flname”文件當(dāng)前版本和“r3”版本之間的區(qū)別,包括在哪些行數(shù)據(jù)發(fā)生了變化等。

      當(dāng)在本地對項目中的某文件進(jìn)行了修改并存盤后,如果發(fā)現(xiàn)存在錯誤話的,利用版本控制機制可以將其迅速恢復(fù)到修改之前的狀態(tài)。

      執(zhí) 行“svn revert flname”命令,就可以放棄對“flname”文件的所有修改,放棄存盤恢復(fù)到修改之前的狀態(tài)。

      當(dāng)然,這必須在執(zhí)行提交操作之前進(jìn)行。如果執(zhí)行了提交更新操作,則可以恢復(fù)到指定的版本。

      執(zhí) 行“svn cat -r 1 flname > flname”命令,可以將“flname”文件恢復(fù)到“r1”版本狀態(tài)。

      使用Web方式管理版本控制

      如果想基于Web方式訪問倉庫,可以先在目標(biāo)主機上安裝和配置好Apache服務(wù)。在該機上建立名為“Newgc”的目錄,其中包含“devep”文件夾。

      執(zhí)行“svnadmin create/newgc/devep”命令,對其進(jìn)行初始化,創(chuàng)建一個新的項目。

      執(zhí) 行“chown-R apache.apache /newgc/devep/db”命令,允許訪問Apache的用戶擁有針對該項目的是使用權(quán)限。

      執(zhí) 行“mkdir /newgc/devep/dav”,創(chuàng) 建“dav”目錄,便于Apache在其中存儲數(shù)據(jù)。

      執(zhí) 行“chown-R apache.apache /newgc/devep”命令,針對該“dav”目錄設(shè)置公開的訪問權(quán)限。

      執(zhí) 行“yum install mod_dav_svn.x86_64”命令,安裝“mod_dav_svn”模塊。

      執(zhí) 行“/etc/init.d/httpd restart”命令,重啟Apache進(jìn)程。

      執(zhí)行“vim /etc/httpd/conf.d/subversion.conf”命 令,打 開“subversion.conf”配置文件,在其中可以看到一些示例說明信息,這里只是簡單舉例,添加“”,“DAV svn”,“SVNParentPath /newgc”,“”等 行內(nèi)容,之后保存文件。

      猜你喜歡
      命令倉庫用戶
      倉庫里的小偷
      只聽主人的命令
      填滿倉庫的方法
      四行倉庫的悲壯往事
      移防命令下達(dá)后
      關(guān)注用戶
      商用汽車(2016年11期)2016-12-19 01:20:16
      關(guān)注用戶
      商用汽車(2016年6期)2016-06-29 09:18:54
      關(guān)注用戶
      商用汽車(2016年4期)2016-05-09 01:23:12
      這是人民的命令
      消防設(shè)備
      乌兰县| 沙河市| 阳山县| 西青区| 洪泽县| 江陵县| 康马县| 泗洪县| 禄劝| 镶黄旗| 昌平区| 凤山市| 龙南县| 新建县| 巴塘县| 石阡县| 上高县| 边坝县| 汾西县| 楚雄市| 阿拉善左旗| 平潭县| 扶沟县| 中超| 汾西县| 南投县| 沅陵县| 西峡县| 拉萨市| 吉安县| 依兰县| 迁安市| 莎车县| 周宁县| 六枝特区| 绿春县| 枣庄市| 呼伦贝尔市| 五家渠市| 邳州市| 湖口县|