⑴ java開發工具中的代碼管理工具有那些
Code Review中文應該譯作「代碼審查」或是「代碼評審」,這是一個流程,當開發人員寫好代碼後,需要讓別人來review一下他的代碼,這是一種有效發現BUG的方法。由此,我們可以審查代碼的風格、邏輯、思路……,找出問題,以及改進代碼。因為這是代碼剛剛出爐的時候,所以,這也是代碼重構,代碼調整,代碼修改的最佳時候。所以,Code Review是編碼實現中最最重要的一個環節。長時間以來,Code Review需要有一些有效的工具來支持,這樣我們就可以更容易,更有效率地來進行代碼審查工作。下面是5個開源的代碼審查工具,他們可以幫助你更容易地進行這項活動。1. Review board:
Review board 是一個 基於web 的工具,主要設計給 django 和python的用戶。 Review board 可以幫助我們追蹤待決代碼的改動,並可以讓Code-Review更為容易和簡練。盡管Review board 最初被設計在VMware項目中使用,但現在其足夠地通用。當前,其支持這些代碼版本管理軟體: SVN, CVS, Perforce, Git, Bazaar, 和Mercurial.Yahoo 是review-board的其中一個用戶。「Review board 已經改變了代碼評審的方式,其可以強迫高質量的代碼標准和風格,並可以成為程序員編程的指導者。每一次,當你訪問search.yahoo.com 時,其代碼都是使用 Review board工具Review過的。 We』re great fans of your work!」– Yahoo! Web Search 2. Codestriker:
Codestriker 也是一個基於Web的應用,其主要使用 GCI-Perl 腳本支持在線的代碼審查。Codestriker 可以集成於CVS, Subversion, ClearCase, Perforce 和Visual SourceSafe。並有一些插件可以提供支持其它的源碼管理工具。David Sitsky 是 Codestriker 的作者,並也是最活躍的開發人員之一。 Jason Remillard 是另一個活路的開發者,並給這個項目提供了最深遠最有意義的貢獻。大量的程序員貢獻他們的代碼給 Codestriker 項目,導致了這個項目空前的繁榮。 3. Groogle:
Groogle 是一個基於WEB的代碼評審工具。 Groogle 支持和 Subversion 集成。它主要提供如下的功能:各式各樣語言的語法高亮。
支持整個版本樹的比較。
支持當個文件不同版本的diff功能,並有一個圖形的版本樹。
郵件通知所有的Reivew的人當前的狀態。
認證機制。 4. Rietveld:
Rietveld 由Guido van Rossum 開發(他是Python的創造者,現在是Google的員工),這個工具是基於Mondrian 工具,作者一開始是為了Google 開發的,並且,它在很多方面和Review board 很像。它也是一個基於Web的應用,並可以Google App Engine 當主機。它使用了目前最流行的Web開發框架 django 並支持 Subversion 。當前,任何一個使用 Google Code 的項目都可以使用 Rietveld 並且使用 python Subversion 伺服器。當然,它同樣支持其它的Subversion伺服器。 5. JCR
JCR 或者叫做 JCodeReview 也是一個基於WEB界面的最初設計給Reivew Java 語言的一個工具。當然,現在,它可以被用於其它的非Java的代碼。JCR 主要想協助:審查者。所有的代碼更改都會被高亮,以及大多數語言的語法高亮。Code extracts 可以顯示代碼評審意見。如果你正在Review Java的代碼,你可以點擊代碼中的類名來查看相關的類的聲明。
項目所有者。可以 輕松創建並配置需要Review的項目,並不需要集成任何的軟體配置管理系統(SCM)。
流程信仰者。 所有的評語都會被記錄在資料庫中,並且會有狀態報告,以及各種各樣的統計。
架構師和開發者。 這個系統也可以讓我們查看屬於單個文件的評語,這樣有利於我們重構代碼。
⑵ 配置管理工具除了版本控制的工具(如SVN)外,還有其他類型的工具嗎
Puppet不是通常意義上的軟體
配置管理
工具,我們通常所說的配置管理工具是指對
軟體代碼
、文檔的版本進行管理的工具,而puppet是一個管理操作系統配置參數項的工具,完全不是一個概念
目前配置管理工具最常用的當然是免費的SVN了,除此之外免費的工具還有CVS(SVN的前身)比較常用,收費的工具有
ClearCase
、VSS、Firefly等,另外還有些分布式配置管理工具(如GIT)用的人不是太多
基本上SVN、CVS、ClearCase(簡稱CC)、VSS這4款工具覆蓋了至少90%以上
⑶ 版本控制軟體的常用的版本控制軟體簡介
VSS是美國微軟公司的產品,目前常用的版本為6.0版。VSS是配置管理的一種很好的入門級的工具。
易學易用是VSS的強項,VSS採用標準的windows操作界面,只要對微軟的產品熟悉,就能很快上手。VSS的安裝和配置非常簡單,對於該產品,不需要外部的培訓(可以為公司省去一筆不菲的費用)。只要參考微軟完備的隨機文檔,就可以很快的用到實際的工程當中。
VSS的配置管理的功能比較基本,提供文件的版本跟蹤功能,對於build和基線的管理,VSS的打標簽的功能可以提供支持。VSS提供share(共 享)、branch(分支)和合並(merge)的功能,對於團隊的開發進行支持。VSS不提供對流程的管理功能,如對變更的流程進行控制。
VSS不能提供對異地團隊開發的支持。此外VSS只能在windows平台上運行,不能運行在其他操作系統上。 有軟體提供商提供VSS插件,可以同時解決VSS跨平台和遠程連接兩個問題,例如SourceAnywhere for VSS, SourceOffSite等。
VSS的安全性不高,對於VSS的用戶,可以在文件夾上設置不可讀,可讀,可讀/寫,可完全控制四級許可權。但由於VSS的文件夾是要完全共享給用戶後,用戶才能進入,所以用戶對VSS的文件夾都可以刪除。這一點也是VSS的一個比較大的缺點。
VSS沒有採用對許可證進行收費的方式,只要安裝了VSS,對用戶的數目是沒有限制的。因此使用VSS的費用是較低的。
微軟不再對VSS提供技術支持。 CVS是開發源代碼的配置管理工具,其源代碼和安裝文件都可以免費下載。
CVS是源於unix的版本控制工具,對於CVS的安裝和使用最好對unix的系統有所了解能更容易學習,CVS的伺服器管理需要進行各種命令行操作。目前,CVS的客戶端有winCVS的圖形化界面,伺服器端也有CVSNT的版本,易用性正在提高。
CVS的功能除具備VSS的功能外,還具有:
它的客戶機/伺服器存取方法使得開發者可以從任何網際網路的接入點存取最新的代碼;它的無限制的版本管理檢出(checkout:注1)的模式避免了通常的 因為排它檢出模式而引起的人工沖突;它的客戶端工具可以在絕大多數的平台上使用。同樣,CVS也不提供對變更流程的自動管理功能。
一般來說,CVS的許可權設置單一,通常只能通過CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers文 件,同時還要設置CVS REPOS的物理目錄許可權來完成許可權設置,無法完成復雜的許可權控制;但是CVS通過CVS ROOT目錄下的腳本,提供了相應功 能擴充的介面,不但可以完成精細的許可權控制,還能完成更加個性化的功能。
CVS是開發源碼軟體,無需支付購買費用。
同樣因為CVS是開發源碼軟體,沒有生產廠家為其提供技術的支持。如發現問題,通常只能靠自己查找網上的資料進行解決。 StarTeam是Borland公司的配置管理工具,StarTeam屬於高端的工具,在易用性,功能和安全性等方面都很不錯。
StarTeam的用戶界面同VSS的類似,它的所有的操作都可通過圖形用戶界面來完成,同時,對於習慣使用命令方式的用戶,StarTeam也提供命令集進行支持。同時,StarTeam的隨機文檔也非常詳細。
除了具備VSS,CVS所具有功能外,StarTeam還提供了對基於資料庫的變更管理功能,是相應工具中獨樹一幟的。StarTeam還提供了流程定製 的工具,用戶可跟據自己的需求靈活的定製流程。與VSS和CVS不同,VSS和CVS是基於文件系統的配置管理工具,而StarTeam是基於資料庫的。 StarTeam的用戶可根據項目的規模,選取多種資料庫系統。
STARTEAM無需通過物理路徑的許可權設置,而是通過自己的資料庫管理,實現了類似WINDOWSNT的域用戶管理和目錄文件ACL控制。 StarTeam完全是域獨立的。這個優勢可以為用戶模型提供靈活性,而不會影響到現有的安全設置。StarTeam的訪問控制非常靈活並且系統。您可以 對工程,視圖,文件夾一直向下到每一個小的item設置許可權。對於高級別的視圖(view),訪問控制可以與用戶組、用戶、項目甚至視圖等鏈接起來。
StarTeam是按license來收費的,比起VSS,CVS來,企業在啟動StarTeam進行配置管理需要投入一定資金。
Borland公司將對用戶進行培訓,並協作用戶建立配置管理系統。並對用戶提供技術升級等完善的支持。 ClearCase是Rational公司的產品,也是目前使用較多的配置管理工具。
ClearCase的安裝和維護遠比StarTeam復雜,要成為一個合格的ClearCase的系統管理員,需要接受專門的培訓。ClearCase提供命令行和圖形界面的操作方式,但從ClearCase的圖形界面不能實現命令行的所有功能。
ClearCase提供VSS,CVS,StarTeam所支持的功能,但不提供變更管理的功能。Rational另提供了ClearQuest工具提供 對變更管理的功能,與StarTeam不同,ClearCase後台的資料庫是專有的結構。ClearCase對於windows和unix平台都提供支 持。ClearCase通過多點復制支持多個伺服器和多個點的可擴展性,並擅長設置復雜的開發過程。
ClearCase的許可權設置功能與StarTeam相比,StarTeam有獨立的安全管理機制,ClearCase沒有專用的安全性管理機制,依賴於操作系統。
要選用ClearCase,需要考慮的費用除購買license的費用外,還有必不可少的技術服務費用,沒有Rational公司的專門的技術服務,很難 發揮出ClearCase的威力。如現在網上雖有ClearCase的破解軟體,但嘗試應用的公司大多失敗的緣故。另外,對於web訪問的支持,對於變更 管理的支持功能都要另行購買相應的軟體。
Rational公司已被IBM公司收購,所以有可靠的售後服務保證。 SVN全名Subversion,即版本控制系統。
SVN與CVS一樣,是一個跨平台的軟體,支持大多數常見的操作系統。作為一個開源的版本控制系統,Subversion 管理著隨時間改變的數據。 這些數據放置在一個中央資料檔案庫中。 這個檔案庫很像一個普通的文件伺服器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。Subversion 是一個通用的系統, 可用來管理任何類型的文件, 其中包括了程序源碼。
SubVersion:實現服務系統的軟體。
TortoiseSVN:是SVN客戶端程序,為windows外殼程序集成到windows資源管理器和文件管理系統的Subversion客戶端。
SVNService.exe:是專為 SubVersion 開發的一個用來作為 Win32 服務掛接的入口程序。
AnkhSVN:是一個專為Visual Studio提供SVN的插件。 SourceAnywhere系列是由加拿大公司Dynamsoft開發的,有三個產品,SourceAnywhere for VSS, SourceAnywhere Standalone, SourceAnywhere Hosted.
SourceAnywhere for VSS是微軟推薦的遠程和跨平台訪問VSS的工具。SourceAnywhere Standalone界面風格與VSS相似,但它是基於SQL Server的,且有其它一些安全和遠程訪問機制,可以廣域網中使用;支持把數據從VSS庫中導入SourceAnywhere。SourceAnywhere Hosted是SourceAnywhere Standalone的託管服務SaaS。 Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理.
Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。盡管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟體項目中也使用了 Git。例如 最近就遷移到 Git 上來了,很多 Freedesktop 的項目也遷移到了 Git 上。
⑷ 管理代碼的工具
Rational ClearCase:
Rational 公司是全球最大的軟體CASE 工具提供商,現已被IBM收購。也許是受到其拳頭產品、可視化建模第一工具Rose 的影響,它開發的配置管理工具ClearCase 也是深受用戶的喜愛,是現在應用面最廣的企業級、跨平台的配置管理工具之一。
ClearCase提供了比較全面的配置管理支持,其中包括版本控制、工作空間管理、Build管理等,而且開發人員無需針對其改變現有的環境、工具和工作方式。
其最大的缺點就在於其價格不菲,每個客戶端用戶許可證大約需要幾千美金,所以在國內應用群體有限。
1) 版本控制
ClearCase不僅可以對文件、目錄、鏈接進行版本控制,同時還提供了先進的版本分支和歸本功能用於支持並行開發。另外,它還支持廣泛的文件類型。
2)工作空間管理
可以為開發人員提供私人存儲區,同時可以實現成員之間的信息共享,從而為每一位開發人員提供一致、靈活、可重用的工作空間域。
3) Build管理
對ClearCase 控制的數據,既可以使用定製腳本,也可使用本機提供的make 程序。
其最大的缺點就在於其價格不菲,每個客戶端用戶許可證大約需要幾千美金,所以在國內應用群體有限。
Hansky Firefly:
做為Hansky公司軟體開發管理套件中重要一員的Firefly,可以輕松管理、維護整個企業的軟體資產,包括程序代碼和相關文檔。Firefly是一個功能完善、運行速度極快的軟體配置管理系統,可以支持不同的操作系統和多種集成開發環境,因此它能在整個企業中的不同團隊,不同項目中得以應用。
Firefly基於真正的客戶機/伺服器體系結構,不依賴於任何特殊的網路文件系統,可以平滑地運行在不同的LAN、WAN 環境中。它的安裝配置過程簡單易用,Firefly 可以自動、安全地保存代碼的每一次變化內容,避免代碼被無意中覆蓋、修改。項目管理人員使用Firefly可以有效地組織開發力量進行並行開發和管理項目中各階段點的各種資源,使得產品發布易於管理;並可以快速地回溯到任一歷史版本。系統管理員使用Firefly的內置工具可以方便的進行存儲庫的備份和恢復,而不依賴於任何第三方工具。
WinCVS:
CVS 是Concurrent Versions System 的縮寫,它是開放源代碼軟體世界的一個偉大傑作,由於其簡單易用、功能強大,跨平台,支持並發版本控制,而且免費,它在全球中小型軟體企業中得到了廣泛使用。
其最大的遺憾就是缺少相應的技術支持,許多問題的解決需要自已尋找資料,甚至是讀源代碼。
Merant PVCS:
MERANT 公司的PVCS 能夠提供對軟體配置管理的基本支持,通過使用其圖形界面或類似SCCS 的命令,能夠基本滿足小型項目開發的配置管理需求。PVCS 雖然功能上也基本能夠滿足需求,但是其性能表現一直較差,逐漸地被市場所冷落。
Microsoft Visual Source Safe:
Visual Source Safe,即VSS,是微軟公司為Visual Studio配套開發的一個小型的配置管理工具,准確來說,它僅能夠稱得上是一個小型的版本控制軟體。VSS的優點在於其與Visual Studio實現了無縫集成,使用簡單。提供了歷史版本記錄、修改控制、文件比較、日誌等基本功能。
但其缺點也是十分明顯的,只支持Windows平台,不支持並行開發,通過Check out - Modify - Check in的管理方式,一個時間只允許一個人修改代碼,而且速度慢、伸縮性差,不支持異地開發。甚至於微軟本身也不採用其做為配置管理工具,而是使用一個名為SLM 的內部工具。
⑸ 什麼叫版本管理工具;SVN、GIT是什麼
git和svn區別總結
1.git是分布式的,svn是集中式的
這是GIT和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。好處是跟其他同事不會有太多的沖突,自己寫的代碼放在自己電腦上,一段時間後再提交、合並,也可以不用聯網在本地提交;
2.git把內容按元數據方式存儲,而svn是按文件
所有的資源控 制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因 為,.git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標簽,分支,版本記錄等。
3.git的內容完整性要優於svn
GIT的內容存儲使用的是SHA-1哈希演算法。這能確保代碼內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。
4.git 不需聯網,svn 需要聯網操作
git下載下來後,在本地不必聯網就可以看到所有的log,很方便學習;
svn卻需要聯網,沒有網路代碼沒辦法提交.
svn 的一些優勢 !!!
1.svn支持空目錄
2.svn有更好的Windows平台支持
3.svn支持特權訪問控制svn lock,在處理很難合並的文件時非常有用
4.svn支持二進制文件,更容易處理大文件(不需要把老版本拷來拷去)
5.提交文件相對簡單,因為沒有pull/push操作,本地修改通過svn update自動的執行了同步代碼的功能。
⑹ Git和SVN,代碼管理哪個更好
代碼版本管理系統的歷史
代碼版本管理系統大致可以分為三個時代:
第一代:本地式
這代主要的特點提供本地代碼版本控制,比如SCCS(1972)、 PVCS(1985)等。
這代主要實現了基本的代碼版本管理,但缺點是無法讓多人同時對一個版本庫進行修改。這個也和當時軟體規模不夠大有關,也沒有這樣的需求。
第二代:客戶端-伺服器式
這代主要的特點是提供集中式伺服器端代碼版本控制,比如 CVS(1986), ClearCase(1992), Visual SourceSafe(1994), Perforce(1995), Subversion(2000) 等。
這代主要是實現了中心伺服器端的代碼版本管理,特點是可以讓多人同時對一個代碼版本庫進行同步和修改,但缺點也相當明顯:
在無法連接伺服器的情況下,無法查看日誌以及提交和比較代碼版本(慢速網路和遠程異地工作的程序員的痛),以及當服務或者網路出現問題的時候很多人員就會無法工作。
不支持local branch,導致branch創建管理復雜,並且一旦創建就很難修改(快速迭代開發中的程序員的痛)
由於只有一個中心端伺服器,一旦發生災難性問題,那麼所有日誌都會丟失,所以需要經常做備份(備份需要不小的成本)
如果軟體代碼量過於龐大,一般會出現速度緩慢的情況,因為每次的日誌查詢、不同版本之間的代碼比較和代碼提交等操作都需要和伺服器通信,造成伺服器端的負載過大。
第三代:分布式
這代主要的特點是提供分布式代碼版本控制,比如Git(2005), Mercurial(2005)等。
這代結合了第一代和第二代的優點並實現了分布式的代碼版本管理。
這代的優點:分布式管理,在沒有和伺服器有連接的情況下仍然可以查看日誌,提交代碼,創建分支;支持local branch,可以快速方便的實現各種分支管理;支持分布式,從而可以實現分塊管理,以及負載分流管理。
缺點是有一定的學習曲線,比如分布方式下的代碼同步,local branch的理解與運用,分布式代碼管理的理解與運用等。詳細的比較可以參考:這里。
二、大型分布式團隊
曾經有這樣一個分布式團隊,他們在多個城市都有小分隊,並且正在開發一個大型項目,見下圖
總結:
分布式代碼版本管理系統並不一定適合所有團隊,比如中小團隊可能更關心的只是成本更低,簡單易用,那麼SVN等這類集中式版本管理工具還是更為適合。但是不管團隊最終選用什麼代碼版本管理工具,只要適合自己的團隊的開發流程和工作方式,並且代碼管理順暢就可以了。
⑺ 版本控制工具共有哪些各有什麼區別
常見的版本控制軟體有Visual SourceSafe,SourceAnywhere,Concurrent Version System(簡稱CVS),StarTeam和Subversion(簡稱SVN)。具體區別可以參考文章:常見版本控制軟體匯總
⑻ 誰能推薦一款代碼管理工具
推薦Sublime Text 2 + Gist的組合。
能夠打造出一個能夠很方便的進行創建、搜索插入、更新以及版本控制的代碼片段管理器。
⑼ cvs,svn,git,github,maven這些都是版本管理工具嗎
maven不是項目管理工具,maven出現的目的是為了解決當前jar依賴,沖突的問題。項目管理由cvs到svn到git一步步完善,svn和git差不多,只是git在代碼沖突上有更好的處理
⑽ 請問什麼是代碼管理工具
即版本控制工具。
比較有名的有CVS、Source Safe、Clear Case等。
版本控制主要是協助在多人團隊中控制代碼,防止代碼管理混亂、代碼沖突,對代碼擁有者進行許可權控制等,是規范化軟體開發不可或缺的重要工具