2010-01-11 51 views
1

所以我有一個項目在遠程文件系統上(我一直在通過SSH進行編輯)。現在我需要將該項目複製到我的硬盤上。我不再需要對該項目進行版本控制,所以這讓我覺得我應該在項目中使用svn export。但是還有一些文件尚未被檢查,當我複製時需要保留這些文件。Subversion SSH導出問題

將該項目複製到本地驅動器的最佳方法是什麼?

更新:我不知道該怎麼做,但我想複製所有的文件(使用某種形式的ssh安全複製命令),然後擔心svn的東西。

更新:這是我最後做的項目複製到本地驅動器:

scp -r [email protected]:/path/to/dir ./localdir 
+0

您可能會發現以下類似問題的答案有用:http://stackoverflow.com/questions/1810491/possible-to-svn-export-and-include-unversioned-files – 2010-01-11 21:42:03

回答

0

也許不是最簡單的方式,但肯定是最明顯的。我只是svn export當前存儲庫到另一個目錄並手動合併在任何本地更改。

0

如果您不再需要對項目進行版本控制,爲什麼不先簡單地檢查未提交的更改,然後執行svn export

0

如果使用TortoiseSVN,則可以從工作文件夾執行全部導出,並複製未提交的文件。

2

讓你的工作副本的方式。現在,你需要遞歸刪除所有來自你的根目錄開始的.svn迪爾斯項目:

如果你是在Linux上,你可以使用以下命令:

rm -rf `find . -type d -name .svn` 

如果您使用的是Windows ,這應該工作:

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G" 

請確保在嘗試這些命令之前進行備份!但我已經使用這兩種方法成功斷開與svn的連接。

1

svn將您的項目切換到分支,檢查您的本地更改,然後導出分支。您確實希望能夠以可重複的方式執行導出,因此即使您不需要對本地副本進行版本控制,也請確保它來自存儲庫導出的完整樹。

0

不是從存儲庫導出,而是手動移動未檢入的文件,您可以複製工作副本,然後刪除包含subversion版本信息的.svn文件。

在UNIX(於Mac/Linux)的你可以用這個命令擺脫這些容易:

find /path/to/copied/project -name .svn -delete 
3

既然你有ssh訪問,我會使用rsync

rsync -avz --exclude='*/.svn*' [email protected]:/path/to/checkout /path/to/local/dir 

Rsync對此很好。還請注意,[email protected]:/path/to/checkout[email protected]:/path/to/checkout/是不同的。前者複製目錄,後者複製目錄的內容。

+0

這看起來很有前途,但我正在運行進入很多錯誤試圖做到這一點。 – Andrew 2010-01-11 22:04:21

+0

什麼樣的錯誤? '-a'標誌有時會給你帶來無害的權限錯誤。 – 2010-01-11 22:22:19

+0

剛在我的機器上測試和驗證的命令,它爲我工作。需要更多信息來幫助進一步。 – 2010-01-11 22:25:32