Subversion SSH导出问题

时间:2010-01-11 21:34:37

标签: svn ssh export

所以我在远程文件系统上有一个项目(我一直在通过ssh编辑)。现在我需要将项目复制到我的硬盘上。我不再需要对项目进行版本控制,所以这让我认为我应该svn export项目。但是还有一些尚未检查过的文件,我需要在制作副本时保留这些文件。

将此项目复制到本地驱动器的最佳方法是什么?

更新:我不知道怎么做,但我想复制所有文件(使用某种ssh安全复制命令)然后担心svn的东西。

更新:这就是我最终将项目复制到本地驱动器所做的事情:

scp -r username@remotehost:/path/to/dir ./localdir

7 个答案:

答案 0 :(得分:3)

由于你有ssh访问权限,我会使用rsync

rsync -avz --exclude='*/.svn*' user@host:/path/to/checkout /path/to/local/dir

Rsync很适合这个。另请注意,user@host:/path/to/checkoutuser@host:/path/to/checkout/不同。前者复制目录,后者复制目录的内容。

答案 1 :(得分: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断开连接。

答案 2 :(得分:1)

svn将您的项目切换到分支,检查您的本地更改,然后导出分支。您真的希望能够以可重复的方式进行导出,因此即使您不需要本地副本上的版本控制,也要确保它来自存储库导出的完整树。

答案 3 :(得分:0)

也许不是最容易的方式,但肯定是最明显的。我只是svn export当前存储库到另一个目录并手动合并任何本地更改。

答案 4 :(得分:0)

如果您不再需要对项目进行版本控制,为什么不首先检查您未提交的更改,然后执行svn export

答案 5 :(得分:0)

如果您使用TortoiseSVN,您可以从工作文件夹中执行全部导出,也可以复制非提交文件。

答案 6 :(得分:0)

您可以只创建工作副本的副本,然后删除包含subversion修订信息的.svn文件,而不是从存储库导出然后手动移动未签入的文件。

在UNIX(Mac / Linux)上,您可以使用以下命令轻松摆脱这些:

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