SVN CHECKOUT和SVN UPDATE命令有什么区别

本文最后更新于 2024年5月16日。

正如我所看到的,最大的区别是checkout 出会创build一个工作副本,而update将更改现有的工作副本。

svn checkout复制指定修订版本(默认HEAD)中存储库中给定目录的所有版本化文件,并将其复制到本地机器。 它还会生成所有隐藏的.svn目录以及它们中的元数据,这些数据使这些文件成为工作副本。

svn export从指定目录中的给定目录拷贝所有版本化的文件(默认为HEAD),并将它们复制到本地机器上,但生成一个标准的目录层次结构。 (它不会生成可以更新或检入的工作副本)。

svn update将更改应用于_现有的_工作副本。 如果这样做,发现冲突,用户会收到警报,必须先解决此问题才能提交任何更改。 当使用svn commit ,要求svn commit的工作副本是最新的(即与HEAD相同的版本)。

更新将更新您检出的版本到最新版本(或指定的其他版本)在存储库。 如果您对工作副本进行了更改,那么在更新之后,他们仍然会在那里。 如果文件已被添加或删除到存储库,这将反映在您的工作副本。 如果你的本地副本和版本库中都有更改,SVN会尝试合并所有的更改,如果这样做不起作用,它会标记你手动解决的冲突。

Subversion使用隐藏的元数据目录来启用它提供的function。 这些.svn目录就是把一个目录变成一个Subversion的工作副本 – 没有这些,这只是一个目录,Subversion不能做太多工作。

UPDATE是通过Subversion工作副本执行的操作; 没有.svn目录,没有更新。 CHECKOUT是创build工作副本的操作。

svn update只会带来从用户版本到最新可用版本的文件差异。 如果没有差别没有行动。

但签出创build一个新的文件夹,并带来该分支的所有文件。 如果我们经常更换我们工作的分支,那么结账是一个很好的工作方式。 更新是当我们有一个中继线,需要获得该中继线上的其他人完成的更新。

在使用SVN的过程中,checkout和update之间的显着区别在于:只能使用checkout命令一次来build立本地目录和版本库之间的关系(在版本控制下),并从根目录库复制所有文件到本地工作目录。 之后,使用checkout来更新本地目录下的副本会产生如下错误:

svn:E175002: 无法连接到 URL“https:// ********” 的存储库 。

svn:E175002: OPTIONS请求在响应中返回了无效的XML :****。

更新本地目录中当前版本的唯一方法是使用svn update命令。