软件配置管理(六)常用配置软件配置工具指令
生活随笔
收集整理的這篇文章主要介紹了
软件配置管理(六)常用配置软件配置工具指令
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 軟件配置管理工具的主要功能
- 兩種版本控制模型
- Lock-Modify-Unlock
- Copy-Modify-Merge
- Subversion
- Git
軟件配置管理工具的主要功能
- 版本控制
- 變更管理
- 配置審核
- 配置狀態(tài)統(tǒng)計(jì)
- 問題跟蹤
- 訪問控制和安全控制
兩種版本控制模型
Lock-Modify-Unlock
“加鎖-修改-解鎖”模型
對于版本庫中的一個(gè)文件,同一時(shí)間只允許一個(gè)用戶修改。
- 鎖定可能導(dǎo)致管理問題。一個(gè)用戶可能過長時(shí)間占用文件,導(dǎo)致其他用戶無法修改。
- 鎖定可能導(dǎo)致不必要的線性化開發(fā)。若兩個(gè)用戶修改同一個(gè)文件的不同部分,這種修改是不會造成沖突的,但鎖定模型強(qiáng)制他們串行工作。
- 鎖定可能導(dǎo)致錯(cuò)誤的安全狀態(tài)。對文件的循環(huán)等待可能造成死鎖。
Copy-Modify-Merge
“拷貝-修改-合并模型”
每個(gè)用戶讀取項(xiàng)目版本庫建立一個(gè)私有工作副本,用戶并行工作,修改各自的副本,最終將各用戶的副本合并在一起,形成最終的版本。若副本之間有沖突,需要手動(dòng)選擇保留哪份修改。
復(fù)制-修改-合并模型感覺是有一點(diǎn)混亂,但在實(shí)踐中,通常運(yùn)行的很平穩(wěn),用戶可以并行的工作,不必等待別人,當(dāng)工作在同一個(gè)文件上時(shí),也很少會有重疊發(fā)生,沖突并不頻繁,處理沖突的時(shí)間遠(yuǎn)比等待解鎖花費(fèi)的時(shí)間少。
最后,一切都要?dú)w結(jié)到一條重要的因素: 用戶交流。當(dāng)用戶交流貧乏,語法和語義的沖突就會增加,沒有系統(tǒng)可以強(qiáng)制用戶完美的交流,沒有系統(tǒng)可以檢測語義上的沖突,所以沒有任何證據(jù)能夠承諾鎖定系統(tǒng)可以防止沖突,實(shí)踐中,鎖定除了約束了生產(chǎn)力,并沒有做什么事。
- 如果是不可合并的文件,如二進(jìn)制文件、圖片等,此時(shí)修訂-修改-解鎖模型會更好。
Subversion
| svn add | 將文件、目錄或符號鏈納入版本控制。(只有帶.svn的工程才能使用add) |
| svn checkout | 從版本庫取出一個(gè)工作副本。Checkout 只在第一次鏈接時(shí)操作一次,以后如果進(jìn)行更新操作,請使用(Update)指令進(jìn)行相關(guān)操作 |
| svn commit | 將修改從工作副本發(fā)送到版本庫 |
| svn copy | 拷貝工作副本或版本庫的文件或目錄 |
| svn diff | 顯示兩個(gè)版本或兩個(gè)路徑的區(qū)別 |
| svn export | 導(dǎo)出一個(gè)不帶.svn文件夾的目錄樹 |
| svn import | 將未納入版本控制的文件或目錄樹提交到版本庫。(僅僅是把文件導(dǎo)入到svn服務(wù)器中,而這個(gè)文件本身還只是一個(gè)普通的文件,與svn版本庫沒有關(guān)系) |
| svn info | 顯示本地或遠(yuǎn)程條目的信息 |
| svn list | 顯示版本庫中的目錄內(nèi)容 |
| svn lock | 鎖定版本庫中的路徑,使得其他用戶不能向其提交修改 |
| svn log | 顯示提交日志信息 |
| svn merge | 合并兩個(gè)版本中的內(nèi)容 |
| svn mkdir | 創(chuàng)建納入版本控制的新目錄 |
| svn move | 移動(dòng)一個(gè)文件或目錄 |
| svn resolved | 刪除工作副本中目錄或文件的“沖突”狀態(tài) |
| svn revert | 撤銷所有本地修改 |
| svn status | 打印工作副本中文件和目錄狀態(tài) |
| svn switch | 更新工作副本至同一個(gè)版本庫中另一個(gè)url |
| svn unlock | 解除工作副本或url的鎖定 |
| svn update | 更新本地工作副本 |
Git
| git config | 獲取并設(shè)置儲存庫或全局變量 |
| git clone | 下載一個(gè)項(xiàng)目和它的整個(gè)代碼歷史 |
| git init | 在當(dāng)前目錄新建一個(gè)git代碼庫 |
| git status | 顯示有變更的文件 |
| git diff | 顯示暫存區(qū)和工作的差異 |
| git add | 添加當(dāng)前目錄的所有文件到暫存區(qū) |
| git mv | 改名文件,并放入暫存區(qū) |
| git rm | 刪除工作區(qū)文件,并且將這次刪除放入暫存區(qū) |
| git commit | 提交暫存區(qū)的指定文件到倉庫區(qū) |
| git log | 顯示當(dāng)前分支的版本歷史 |
| git blame | 追溯一個(gè)指定文件的歷史修改記錄。 |
| git reset | 重置暫存區(qū)的指定文件,與上一次commit保持一致,但工作區(qū)不變 |
| git revert | 新建一個(gè)ccmmit,用來撤銷指定commit |
| git checkout | 在暫存區(qū)的本地分支之間切換或新建分支,會覆蓋當(dāng)前工作空間(clone用于獲取您沒有的存儲庫,checkout用于在您已有的存儲庫中的分支之間進(jìn)行切換。) |
| git branch | 列出所有本地分支 |
| git tag | 列出所有tag |
| git merge | 合并指定分支到當(dāng)前分支 |
| git remote | 查看已配置的遠(yuǎn)程倉庫 |
| git fetch | 下載遠(yuǎn)程倉庫的所有變動(dòng) |
| git pull | 取回遠(yuǎn)程倉庫,并與本地分支合并 |
| git push | 上傳本地指定分支到遠(yuǎn)程倉庫 |
| git stash | 暫時(shí)將未提交的變化移除,稍后再移入 |
總結(jié)
以上是生活随笔為你收集整理的软件配置管理(六)常用配置软件配置工具指令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件项目组织管理(二、三)项目管理与信息
- 下一篇: 软件项目组织管理(四)项目集成管理