在 /vobs/some/path 中工作与在 /view/view-tag-name/vobs/some/path 中工作

working in /vobs/some/path versus /view/view-tag-name/vobs/some/path

我必须在工作中使用 ClearCase,基本的工作流程要求我做如下事情:

cleartool setview <view-tag-name>

view-tag-name 是我可能会添加的动态视图。根据我收集到的信息,这打开了一个新的 shell,它允许我访问 /vobs/some/path 中通过已安装的 MVFS 文件系统的文件。然而,在现有 shell 之上的第二个 shell 破坏了我的 Emacs 客户端 - Emacs 守护程序合作。此外,在另一个 SO 回答中,有人说他根本不关心 setview ,所以没有访问:

  1. /vobs/some/path(来自 setview shell)

……他会访问:

  1. /view/view-tag-name/vobs/some/path(不使用 setview shell)

我做了一些实验,似乎所有 cleartool 命令都以相同的方式工作,无论我是在 /vobs/some/path(在 setview shell 中)还是我是否在 /view/view-tag-name/vobs/some/path(普通 shell)。

所以我的问题是:

  1. setview shell 中工作与在 shell 中工作 /view/view-tag-name/vobs/some/path 有什么区别?
  2. 在提及 /view/view-tag-name 目录时使用的正确术语是什么?
  3. 为什么我执行 ct lsview -l -properties -ful view-tag-name 时没有看到对 /view/view-tag-name 目录的任何引用?这个目录不是和视图关联的吗?

what's the difference between working in /vobs/some/path in a setview shell versus working in /view/view-tag-name/vobs/some/path in a plain shell?

不要使用cleartool setview: As I explained beforecleartool setview命令会打开一个subshell,其中的命令应该是运行,这可能会有问题。

/view/view-tag-name/vobs/some/path 中工作意味着您将留在主 shell 中,并保留其所有属性。

what is the proper term to use when referring to the /view/view-tag-name directory?

引用完整路径视图根文件夹(您在其中安装 vob 并根据视图配置规范及其选择规则访问版本)

/vobs/some/path 中,您仍然可以使用 cleartool pwv ("path working view") 查看您所在的视图。

why when I do ct lsview -l -properties -ful view-tag-name I don't see any reference to the /view/view-tag-name directory?

您正在查看视图的 属性,然后将其安装在 /view/view-tag-name(在 Unix 上)或 M:\view-tag-name 上 Windows。
这些属性不假设 运行 视图的使用时间,它们只显示静态元数据(如视图存储或视图类型)

如果您的工作流程是启动 emacs,然后从那里设置到一个视图,那么事情确实会很奇怪。

setview 与 startview 唯一不同的地方是它以 chroot 方式启动 shell。只有 shell 及其后代才能在 /vobs/vobtag/... 中看到源代码 如果您在多个 "setview" shell 中工作(对于您的应用程序的多个版本维护、多个阶段等),您将有多个相同的 shells 通过明显相同的路径访问相同文件的不同版本。

使用 ClearCase 时要注意的一件事是 目录 也是版本化的。因此,如果出现以下情况,在一个视图中添加的文件可能不会出现在另一个视图中:

  1. 它们基于不同版本的父目录;或
  2. 添加到源代码管理的文件的父目录尚未签入。

除非您的构建过程要求 VOB 内容在 /vobs/vobtag 处可见,否则我同意@VonC 关于不使用 setview 的观点。

我真的无法对 VonC 的其他评论添加任何内容。