Subversion - SVN checkout和SVN更新命令有什么区别?

Emi*_*lio 44 svn tortoisesvn

据我所知,"SVN checkout"命令将从Subversion存储库执行文件的初始获取,并将它们本地存入您的工作目录/副本,并且"SVN update"命令将从以下文件中获取文件的更改如果其他人做出更改,则存储库.

在我看来,虽然"更新"只是"结账"的一个特例,也就是说,当结账发生时,它获取所有文件,因为当地没有任何文件,因此所有文件都"已更改",并且在幕后这些命令大致相同的事情.我假设命令单独存在只是作为一种简化手段?

或者,命令之间是否存在其他差异,例如,"SVN更新"获取文件是否获取新文件(存储库中存在的工作副本中没有的文件)或仅更新现有文件?

kar*_*rts 44

正如我所看到的,最大的区别在于checkout 创建了一个工作副本,同时update降低了对现有工作副本的更改.

  • 恕我直言,这不回答这个问题,因为这个区别已经包含在问题中.很明显,这两个命令具有不同的语义,但它们在技术上有何不同*?难道他们不是有效地做同样的事情,一开始只有一个,而后一个时间点是另一个吗? (6认同)

Edd*_*Edd 14

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

svn export从给定版本的存储库中的给定目录复制所有版本化文件(默认HEAD),并将它们复制到本地计算机,但生成标准目录层次结构.(它产生可以被更新或重新签入工作副本).

svn update将更改应用于现有工作副本.如果发生冲突,则会发现用户已收到警报,并且必须先解决此问题,然后才能提交任何更改.使用svn commit时要求提交的工作副本是最新的(即与HEAD相同的修订版).


svi*_*nto 10

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