我在比较SVN和Git。
我知道'svn checkout‘和'git clone’是一样的,因为两者都包含原始存储库的历史。
在Git中,一旦'git clone‘完成,我就不再需要'git clone’来获取原始存储库的历史记录,因为我可以'git fetch‘和'git merge’,这比'git clone‘更轻更快。因此,'git fetch‘和'git merge’可以将我的存储库作为原始存储库的完美备份。
但是SVN呢?‘'svn checkout’是非常昂贵的工作,因为它处理整个存储库。所以,在我想要的时候做“svn结账”不是一个好的选择。'svn update‘比'svn checkout’要轻得多,因为'svn update‘只提供更新的东西。
我想知道'svn update‘是否包含原始存储库的历史。如果是这样的话,'svn update‘可以保留我的签出存储库作为原始存储库的备份。如果没有,就没有简单的方法来保持我的签出存储库作为原始存储库的备份。
请给我一个好的答案^^
发布于 2013-01-22 20:20:04
SVN只在本地保存工作副本。这意味着svn checkout仅创建当前HEAD的工作副本( svn update将现有工作副本更新到当前HEAD),但提交历史仍保留在服务器上(例如,如果执行svn log,则从服务器加载提交历史)。
另一方面,Git保存整个存储库--不仅是工作副本(git中的“工作树”),还包括整个提交历史记录。
如果您想将您的SVN工作副本恢复到一个较旧的版本,您可以使用svn update -r[revision number]来执行此操作,但是SVN会再次从服务器中提取指定的修订版。
发布于 2013-01-22 20:18:41
您最初的印象是错误的:svn checkout与git clone不同。
svn checkout仅获取最新版本,而svn update仅更新为最新版本。要以任何方式访问项目的历史记录,您必须与服务器联系。
发布于 2013-01-22 20:12:28
为了保留存储库的备份,而不是签出它,我强烈建议您考虑使用svnadmin dump或svnadmin hotcopy
https://stackoverflow.com/questions/14458231
复制相似问题