2010-10-11 123 views
3

是否可以將項目的所有修訂拷貝到本地機器上?基本上,我想要的是能夠將項目W,X,Y和Z從遠程SVN存儲庫中取出,並且可以在我的計算機上訪問它們,理想情況下是在本地運行的SVN副本中。理想情況下,我想用某種GUI工具來做到這一點,因爲我的unix技能有限,而且我無法在工作中準備好訪問* nix盒子。獲取SVN項目的所有版本的本地副本

我沒有直接訪問有問題的服務器,所以我僅限於可以在snv客戶機上完成的方法。

我的第一個目標是在關閉服務器之前備份代碼。我只是通過結賬的方式以基本形式存在,但如果可能的話,我想保留更改歷史記錄。只要服務器啓動就能夠保持同步也很有用,但由於目前不太可能對代碼進行任何額外的編輯,因此是一個較低優先級的目標。

回答

2

Subversion是一個基於'服務器'的版本控制系統。你在問什麼,更適合'分佈式版本控制系統'。使用git-svn,您可能有一個本地副本,同時仍然對中央(Subversion)存儲庫有貢獻。

+0

的確如此。目前我主要關心的是第三方服務器的長期可用性。單向快照足以用於存檔目的。如果有任何不太密集的可用資源,那種雙向鏈接是過度的。 – 2010-10-11 13:09:33

+0

我問你同樣的問題,我做了RUP。這種方法的粒度是多少。第三方存儲庫中有些項目我不想提及。 – 2010-10-11 15:49:02

+0

你的主要目標是什麼?對源代碼管理進行解耦,存檔或本地脫機訪問。 – zellus 2010-10-11 16:07:11

-1

你可以用svnadmin的轉儲備份:

http://svnbook.red-bean.com/en/1.1/re31.html

+0

您無法訪問數據,它只是轉儲 – CharlesB 2010-10-11 13:40:36

+0

您可以輕鬆地將數據加載到本地存儲庫。而且它似乎無論如何都是有備份的。 – 2010-10-11 13:56:59

+0

如果您可以向第三方請求轉儲,那麼您(或他們)可以使用捆綁的'svndumpfilter'腳本將其減少到您感興趣的存儲庫部分。請注意,這不是(上次我嘗試)與'--deltas'轉儲一起工作,只有'--incremental'。 – Rup 2010-10-11 18:08:34

1

還有svnsync;一旦您設置了預提交鉤子來啓用修訂版本屬性更改,就可以使用它鏡像到本地存儲庫。

這僅使用客戶端操作;至少如果你能說服你的管理員給你一個存儲庫轉儲,那麼svnadmin dump/load方法可能更好。

+0

設置pre-commit鉤子涉及什麼?理想情況下,我想在公司SVN服務器上使用存儲庫,但對其進行的任何配置更改都需要通過我們的IT部門。 – 2010-10-11 13:59:25

+0

另外,svnsync是否允許控制它獲得的範圍?第三方存儲庫中有很多項目,我不想抓取其副本。 – 2010-10-11 14:51:18

+0

對於鉤子,創建存儲庫以使用'svnadmin create'同步,然後查看那裏的'hooks'目錄;採取'pre-revprop-change.tmpl'並在Windows上將其重命名爲'.bat',或者剝離該擴展名並使其可在Linux上執行 - 即只是輕微更改文件。文件中的註釋可以很好地解釋它,儘管對於同步存儲庫,您可能只想用'exit 0'(即true)替換它。選擇性同步:不要這麼認爲,對不起 - 或者至少我從來沒有這樣做過,我也沒有看到有關初始化或同步的任何參數。所以對你來說可能不是最好的解決方案。 – Rup 2010-10-11 18:06:41

4

如果您的目標僅僅是遠程回購結賬http://rsvndump.sourceforge.net/的備份。你只需要用戶訪問就可以獲得這個轉儲,而且你不需要特殊的權限。需要提醒的是,它是一個命令行工具。

+0

,看起來比我目前看到的更接近我想要的東西。我需要爲4個urls提供轉儲(base/app1,base/app2,base/lib1和base/lib2)。你知道這個工具是讓我指定多個URL,還是可以將轉儲合併到一個本地存儲庫中並使修訂數據全部匹配(即對於影響幾個單獨轉儲的檢入)。 – 2010-10-12 14:34:33

+0

不,我不知道在同一個命令中給出4個URL的任何選項。我沒有嘗試將所有4個URL個人轉儲到一個存儲庫中。但我的直覺認爲它會起作用。請保持我們張貼,如果它的工作。 – 2010-10-12 16:11:32