2013-03-25 137 views
0

我有什麼應該是一個svn回購。在我的電腦本地文件夾中。我不知道是否有可能,但我想轉換它,所以它只使用git。我不再有.svn文件夾中訪問的svn服務器和所有有轉換本地svn回購給git

all-wcprops 
entries 
format 
prop-base 
props 
text-base 
tmp 

我曾嘗試做svn log但它開始尋求憑據。我也嘗試通過做一些類似svnadmin verify /folder的驗證來驗證它是svn回購,但它所說的全部是svnadmin: Can't open file 'format': No such file or directory。我需要的只是提交歷史。

+2

AFAIK歷史記錄存儲在中央SVN服務器上,如果您無法訪問它,則不再有歷史記錄。這就是爲什麼DVCS比SVN更好的原因之一,所有開發人員都有完整歷史記錄的副本,可以在發生某種故障時用作備份。 – 2013-03-25 20:32:10

+0

[This question](http://stackoverflow.com/questions/13574743/does-the-svn-1-7-working-copy-format-store-the-entire-history-of-the-repo)表示爲許多。所以,看起來,鑑於您無法訪問中央倉庫,您不再有提交歷史記錄,並且必須從git開始。 – ajp15243 2013-03-25 20:38:41

+0

術語明智,你實際上有一個svn _working copy_。這與存儲庫完全不同。該存儲庫是存儲在svn服務器上的。您正在查找的信息在工作副本中不可用。 – ThatBlairGuy 2013-03-25 21:16:14

回答

1

如果你不介意失去歷史(我在我的評論中提到,如果你沒有訪問中央服務器,你沒有訪問歷史記錄),你可以在同一個文件夾中初始化一個git repo,除了行.svn/之外,還可以添加一個.gitignore文件包含你通常在SVN中忽略的所有文件/文件夾,忽略.svn文件夾,然後添加/提交所有內容。

帶命令行的git,這看起來像:

cd path/to/repo 
git init 
touch .gitignore 
#EDIT THE .gitignore FILE HERE 
git add . 
git commit -m "Initial commit" 

如果以後要清理掉.svn目錄,你可以使用werd的答案或clone the repo to another folder的鏈接。

3

如果這是存儲庫(不是本地工作空間),請使用git svn clone將其篡改爲新創建的git存儲庫。通過星期天檢查結果5種方式,將SVN拖到一張漂亮舒適的CD/DVD上以便妥善保管。

請注意,git svn clone可能需要很長時間,因爲它會依次要求SVN重新創建曾經存在的每個單一修訂版本,然後將其作爲提交進行集成。 SVN在挖掘舊東西時效率低下,並且由git svn處理也不是精確的恆星。對於一個不那麼大的遠程SVN回購,它可能需要一兩天。連接斷開後,我不得不重啓幾次。我不記得是否正確的咒語是git svn clone再次或git svn rebase,或其他(是的,它是可怕的看到一個空的克隆庫,但下載的東西在那裏)。

+1

不幸的是,它聽起來像一個本地工作區,而不是回購本身。 – ajp15243 2013-03-25 20:48:37