在Subversion版本库中运行svn update之前,如何知道要更新/删除/创建哪些文件

本文概述

  • A.显示更新状态
  • B.空转合并
有时, 由于错误的提交, 从SVN存储库更新生产中的项目之前的安全感, 你将需要或希望在发布更新之前查看要提交, 更新的文件或目录, 以便验证是否你需要备份服务器中包含敏感信息的某些文件。
在本文中, 我们将与你分享两种方法, 以列出在不实际更新工作副本的情况下执行svn update时将更新的文件。
A.显示更新状态 要在执行svn update命令后列出要在工作副本中添加, 更新或删除的文件, 可以将svn status命令与– show-updates标志一起使用:
svn status --show-updates

或使用简短的语法:
REM First short syntaxsvn status -uREM Or even shortersvn st -u

如果可用, 此命令将提供cli中的文件列表, 其中包含一些符号和修订, 例如以下输出:
在Subversion版本库中运行svn update之前,如何知道要更新/删除/创建哪些文件

文章图片
第一列的符号表示使用以下符号添加, 删除或以其他方式更改了项目:
  • ” -表示没有修改。
  • 计划添加” A” 项目。
  • ‘ D’ -项目已计划删除。
  • ‘ M’ -项目已被修改。
  • ‘ R’ -项目已在你的工作副本中替换。这意味着已计划删除该文件, 然后已计划将其替换为同名新文件。
  • ‘ C’ -项目的内容(相对于属性)与从存储库收到的更新冲突。
  • ‘ X’ -由于存在外部定义, 因此存在该项目。
  • ‘ I’ -项目被忽略(例如, 使用svn:ignore属性)。
  • ‘ ?’ -该项目不受版本控制。
  • ‘ !’ -缺少项目(例如, 你在不使用svn的情况下将其移动或删除了)。这也表明目录不完整(签出或更新被中断)。
  • ‘ ?’ -项目版本化为一种对象(文件, 目录, 链接), 但已被另一种对象取代。
第二列说明文件或目录属性的状态:
  • ” -无修改。
  • ‘ M’ -此项的属性已被修改。
  • ‘ C’ -该项目的属性与从存储库收到的属性更新冲突。
仅当工作副本目录被锁定时, 才会填充第三列:
  • ” -项目未锁定。
  • ‘ L’ -项目已锁定。
仅当计划将历史记录与历史记录相加时, 才会填充第四列:
  • ” -没有预定的提交历史记录。
  • ‘ +’ -预定提交的历史记录。
仅当相对于其父项切换项目时, 才会填充第五列:
  • ” -项目是其父目录的子级。
  • ‘ S’ -项目已切换。
第六列填充了锁定信息:
  • ” -使用– show-updates(-u)时, 这表示文件未锁定。如果未使用– show-updates(-u), 则仅表示该文件未锁定在此工作副本中。
  • ‘ K’ -文件已锁定在此工作副本中。
  • ‘ O’ -文件被另一个用户或另一个工作副本锁定。仅在使用– show-updates(-u)时显示。
  • ‘ T’ -文件已在此工作副本中锁定, 但是该锁定已” 被盗” 并且无效。该文件当前已锁定在存储库中。仅在使用– show-updates(-u)时显示。
  • ‘ B’ -文件已在此工作副本中锁定, 但是该锁定已被” 破坏” 并且无效。该文件不再被锁定。仅在使用– show-updates(-u)时显示。
仅当该项目是树冲突的受害者时, 才会填充第七列:
  • ” -项目不是树木冲突的受害者。
  • ‘ C’ -项目是树木冲突的受害者。
第八列始终为空白。过时的信息显示在第九列中(仅当你传递– show-updates(-u)选项时):
  • ” -工作副本中的项目是最新的。
  • ‘ *’ -服务器上存在该项目的较新版本。
B.空转合并 或者, 如果你的工作中没有缺少的子树, 则可以使用以下命令列出要添加, 删除或更新的文件:
svn merge --dry-run -r BASE:HEAD .

此方法不会列出有关文件的详细描述, 而是列出文件的列表以及有关项目将发生的简短描述。
【在Subversion版本库中运行svn update之前,如何知道要更新/删除/创建哪些文件】编码愉快!

    推荐阅读