2011-05-03 213 views

回答

21

SCM一般意味着Software Configuration Management,其中包括CMRM(變更管理到版本管理),包括版本控制。

SVN只是一個VCS: Version Control Tool

所以一個更完整,覆蓋更全面的開發生命週期,而通用:Team Fundation Server或RTC - Rational Team Concert - 都是SCM的例子。

8

SCM是一個通用術語,並不代表什麼意思。我聽說它的含義是「軟件配置管理」,「軟件變更管理」和「源代碼管理」,可能還有其他的。據我所知,這基本上是市場營銷。

如果您認爲它的含義與後面的短語相似,那麼SVN(Subversion的縮寫),git和Mercurial都是特定類型的SCM系統。 Git和Mercurial大致相當。有一些細微的差異,但個人喜好是真正重要的大部分。兩者都是所謂的分佈式版本控制系統,這意味着不能依賴任何中心位置。每個使用它們的人都可以獨立工作,並且他們或多或少地獨立同步一切。

Subversion是集中式的。它旨在解決相同類型的問題,但是通過強制所有活動通過每個人都使用的位置來實現。這使得很多事情更容易管理,但代價是相當大的靈活性。再次,個人喜好決定你更喜歡哪一種。

+0

相對於git/hg來說,看到SVN是如何「以靈活性爲代價讓事情變得更容易」這個術語來描述是非常奇怪的 - 集中式系統遠比年代久遠,因此分佈式系統使事情變得不同在很大程度上更好)在過去的5年。 – 2011-05-03 16:25:57

+1

我同意你 - 我個人使用git。我並不打算暗示那裏的任何一種年表。我確實認爲分佈式系統已經大大改善了事情,但我認爲他們需要更多的思考才能得到正確的結果也是事實。 SVN使事情以正確的方式變得容易;這只是與git或hg相比,svn中的正確方式並不像git/hg中的正確方式那麼好。我不確定最後一句在頁面上的意義是否與我腦海中的意義一樣。 – deong 2011-05-03 16:36:24

9

SCM是軟件配置管理,SVN是版本控制系統工具,它是SCM的一個子集。 VCS也被稱爲版本控制和Git,Mercurial也是VCS工具(分佈式VCS更具體)。

SVN,Git,Mercurial等是版本控制工具,SCM中的一個進程。 SCM還包括構建管理,缺陷跟蹤等。

4

我試過Git和Mercurial(並且目前使用Mercurial)。從我看到的Git看起來更快一點,也許更多功能,但這是一個學習曲線的代價。當我一開始嘗試他們的時候,我沒有其他的同事可以依靠信息,發現Git的學習曲線比Mercurial的要好得多。我還發現Mercurial從Windows(這是我的主要開發平臺)使用起來更容易。

Mercurial支持Git,相反也可能是真的,所以你可以嘗試任何一種,如果你發現需要,可以稍後切換。

2

SVN(Subversion)是一種提供版本控制功能的工具。開發人員使用此工具檢查其代碼。使用這個功能,我們可以追蹤軟件開發過程中對文件/代碼所做的更改。

軟件配置管理是一種用於追蹤和控制軟件開發變化的實踐。它包括構建,打包和部署軟件所需的所有流程。