2010-02-16 65 views
4

我有一個URL Subversion版本庫和Ubuntu的命令行我只想通過鍵入下載,你會在水銀做倉庫的副本上:SVN與Mercurial中的「hg clone」或Git中的「git clone」有相同之處嗎?

hg clone http://svn.somerepository.com/somerepository/trunk/docs/ 
  1. 你怎麼「克隆「SVN中的存儲庫?

  2. 此外,我只是想獲得低於docs文件夾一切 - 我不想在軀幹開始 - 你會怎麼做這樣的事情:

    SVN克隆http://svn.somerepository.com/somerepository/trunk/文檔/

+0

mercurial可以用hgsubversion「克隆」svn repos。 – tonfa

回答

11

要執行什麼SVN-土地被稱爲子樹「退房」。

svn co http://svn.somerepository.com/somerepository/trunk/docs/ 

注SVN和分佈式系統,如水銀或Git的之間的主要區別是,SVN的「退房」命令只能下載一個的最新版本的每個文件的副本,而與hg clone你會真正結了也是存儲庫整個歷史的本地副本。這對你工作的方式有一些影響。例如,您需要與服務器建立網絡連接以檢索日誌,執行差異等。

2
svn co svn://www.example.com/path/to/repository/... 

在其 「合」 的簡稱, 「結帳」。

+0

結帳不是克隆。 –

+1

@calmh我認爲這個問題來自工作流的立場,而不是「如何獲取整個存儲庫歷史記錄的副本」。 –

+0

@Nick大概給出接受的答案。我被「資料庫的副本」談話所愚弄。 –

4
  1. 不能克隆庫,而無需IT管理員進行訪問(即做svnadmin命令的能力)。
  2. 你肯定能檢查出有svn co http://....../docs
+0

你可以使用svnsync克隆一個沒有管理員訪問權限的版本庫,但這幾乎可以肯定不是OP想要的版本,因爲這樣的版本在提交回真正的版本庫時毫無用處。這是分佈式(git,hg,...)和集中式(svn,cvs,...)之間的根本區別。 – bendin

+0

@bendin謝謝......我不熟悉'svnsync'和'clone'的這種用法。 –

5

如果您只需要抓取當前版本,則只需要獲取svn checkout即可。

如果需要存儲庫的完整副本(包括所有以前的版本),則可以使用svnsync。它可以複製一個完整的存儲庫並增量下載新的提交。但我不認爲它可以限制在子目錄中。