Jiri


英文原文快照


[目录]

反馈

译者注:该节仅适用于googler,翻译时已省略

预期的行为

更新

  • 获取最新的清单仓库,然后将更新规则应用于所有本地项目。
  • 除非使用[jiri project-config]进行配置,否则始终在所有项目中获取origin远程仓库的变更。
  • 将JIRI_HEAD指针指向清单选定的版本号。
  • 在JIRI_HEAD(detached)位置出checkout新的仓库。
  • 将现有的仓库快进到JIRI_HEAD状态,除非有更多条件适用(见下文)。
  • 如果本地仓库处于被跟踪的分支上,它将使用upstream的变更进行快进合并。如果合并失败,将显示错误给用户。
  • 如果项目在未追踪的分支上,将保持不变,但jiri会显示警告信息。
  • 所有其他的本地分支将保持不变。
  • 如果一个项目从清单中被删除,除非使用-gc选项运行命令,它将不会被删除。
  • 如果一个项目包含未提交的变更,jiri将其不变,不会快进或merge/rebase该分支。
  • 有时项目在清单上被固定为特定的版本,在这种情况下,如果该项目在本地分支上,jiri会根据上述规则更新它们,而不会对这些项目显示警告。
    • 请注意,这可能会导致项目处于除JIRI_HEAD之外的其他版本状态上,进而引发构建失败。在这种情况下,用户可以运行jiri status,它将输出所有发生变更或不处于JIRI_HEAD版本的项目。用户可以在项目中运行git checkout JIRI_HEAD从而手动checkout出JIRI_HEAD版本
  • 如果用户不再想让jiri更新项目,他/她可以使用jiri project-config命令。
  • 始终更新jiri工具到最新版本。

checkout快照

快照文件用于捕获所有项目的当前状态,它可以通过命令jiri snapshot来创建。

  • 可以给update命令传递快照文件或URL来checkout快照。
  • 如果项目发生变化,则不会checkout到快照的版本。
    • 否则将被checkout置DETACHED_HEAD和快照的版本。
  • 如果project-config指定了’ignore’或noUpdate参数,那么该项目将被忽略。
  • 本地分支不会发生rebase操作。

项目配置

  • 如果ignore设置为true,jiri会完全忽略该项目,即不再进行fetch、update、move、clean、delete或rebase操作
  • 如果noUpdate设置为true,那么jiri将不再对该项目进行fetch、update、clean 或rebase操作
  • 对于ignorenoUpdate中的项目,JIRI_HEAD不会被更新。
  • 如果noRebase设置为true,则项目中的本地分支将不会updaterebase
  • 以上这仅适用于updateproject -clean命令。

清理项目

  • 将项目置于JIRI_HEAD位置。
  • 删除未跟踪的文件。
  • 如果使用-clean-all参数,强制删除所有本地分支,包括master分支。

上传

  • 除非使用set-topic = false,否则为每次上传设置主题(默认为User-Branch)。
  • 除非传递“-rebase”参数,否则在上传之前不会rebase变更。
  • 仅在传递“-multipart”参数时,才上传multipart变更。

代码补丁

  • 可以给multipart和单个变更进行补丁。
  • 如果提供主题,补丁将尝试下载整个主题并修补所有受影响的项目,并尝试创建从主题名称衍生的分支。
  • 如果未提供主题,则默认分支将是change/{id}/{patch-set}
  • 除非传递“-rebase”参数,否则不会rebase下载的补丁集。