别名是短名称,用于唯一地标识源代码控制系统中的项。别名是 4 位的长整型数字并括在括号中,它们显示在所引用的项的左边。例如:
$ scm status
工作空间:(6377)“My Workspace”<->(7487)“Stream”
组件:(6429)“Flux Capacitor”
基线:(8471)6815“v20091102”
传出:
变更集:
(8459)--@ 98314“Degauss Flux Capacitor”- <无注释>
在以上示例中,每个括在括号中的数字(6377、7487、6429、8471 和 8459)都是别名。
每个子命令都有一组返回码。如果该子命令成功,那么将返回 0。如果发生错误或问题(例如发生冲突,或者本地沙箱与远程工作空间不同步),那么将返回非零值。
下列示例假定您已通过 lscm login 登录到存储库。因此,您只需要为每个子命令提供 -r 存储库昵称。例如:
$ lscm login -r https://your.repository.com:9443/jazz -n nickname -u echughes -c 密码(echughes @ https://your.repository.com:9443/jazz): 已登录到 https://your.repository.com:9443/jazz
另外,还可以通过昵称来引用存储库 https://your.repository.com:9443/jazz。例如,将 -r 昵称 传递给子命令以代替 URL、用户名和密码。
在开始一个项目之前,您必须要有存储库的用户名、密码和 URL。您还应该是团队区域的成员。
如果您不知道与您进行协作的流的名称,那么可以使用 lscm list streams -r 昵称 来列示您有权访问的流。例如:
$ lscm -a y list streams -r l DeLorian Upgrades Home Energy Converter Doc Brown's playpen
在确定要在其中进行工作的流之后,可以创建远程工作空间以包含您所作的变更。例如:
$ lscm create workspace -r l myNewWorkspace -s "DeLorian Upgrades" 已成功地创建工作空间(8551)“myNewWorkspace”
添加 -s 参数指定应该与工作空间进行协作的流。新工作空间将该流用作缺省流向目标,并且将该流的状态作为其初始状态。
要装入远程工作空间,请执行下列操作:
$ lscm load myNewWorkspace -r l 正在下载 /flux.capacitor/requirements.txt(0 B) 正在下载 /flux.capacitor/diagrams/design.cad(0 B)
在源代码控制 CLI 中,您可以遵循典型的工作流程,例如修改文件、检入文件、接受新变更并交付变更。
CLI 的检入和交付操作与 Eclipse 客户机中的那些操作相同。检入操作将变更从本地磁盘推送到远程工作空间;交付操作将变更从远程工作空间推送到流。
在以下 CLI 示例中,您修改多个文件并通过运行 status 来确定已修改的内容:
$ lscm status
工作空间:(8551)“myNewWorkspace”<->(8552)“DeLorian Upgrades”
组件:(8553)“Flux Capacitor”
基线:(8554)1“初始基线”
未解决:
-c /flux.capacitor/requirements.txt
传出:
变更集:
(8555)--$“初始 CAD”
status 命令将扫描所有共享目录以查找变更,这可能会耗时大量时间。如果您只想查看远程工作空间与流的比较,那么可以运行 lscm status -n,这将忽略本地磁盘扫描。
要落实变更,请使用 lscm checkin:
$ lscm checkin flux.capacitor/
正在落实...
工作空间:(8551)“myNewWorkspace”<->(8552)“DeLorian Upgrades”
组件:(8553)“Flux Capacitor”
传出:
变更集:
(8556)--@ <无注释>
此示例隐式地创建新变更集。在落实期间接收到文件和文件夹的变更集将列示在输出中。
创建变更集之后,可以使其与工作项相关联并添加注释。请指定工作项,请使用 lscm changeset associate。要设置注释,请使用 lscm changeset comment。
您可以通过运行 lscm status 来定期查看流中的状态:
$ lscm status -C
工作空间:(8551)“myNewWorkspace”<->(8552)“stream19_test_max_results_1256765247692134”
组件:(8553)“Flux Capacitor”
基线:(8554)1“初始基线”
传出:
变更集:
(8556)--@
变更:
---c /flux.capacitor/requirements.txt
传入:
变更集:
(8615)--$“初始布局”
变更:
---c /flux.capacitor/diagrams/design.cad
-C 标志显示变更集的内容。
在以上示例中,存在以 design.cad 为目标的单一传入变更。您可以接受此变更,这是因为,它未修改变更集中的任何文件。
运行 lscm accept:
$ lscm accept -v
存储库:https://localhost:9443/jazz/
工作空间:(8551)“myNewWorkspace”
组件:(8553)“Flux Capacitor”
变更集:
(8615)ADMIN --$“初始布局”
变更:
--c /flux.capacitor/diagrams/design.cad
有时候,传入变更会修改您已修改的文件。
在以下示例中,您修改 flux.capacitor/requirements.txt 以包括某次计划会议的备忘录,检入该文件,然后运行 status:
$ lscm status -C
工作空间:(8551)“myNewWorkspace”<->(8552)“stream19_test_max_results_1256765247692134”
组件:(8553)“Flux Capacitor”
基线:(8554)1“初始基线”
传出:
变更集:
(8617)-#@“Update from November planning meeting”
变更:
-#-c /flux.capacitor/requirements.txt
传入:
变更集:
(8616)-#$“Results of initial trials”
变更:
-#-c /flux.capacitor/requirements.txt
发生冲突。您修改的文件还被另一位将变更交付到流的用户修改。此冲突由参与文件和参与变更集前面的 # 指示。接受别名为 8616 的变更集时,将发生冲突。
$ lscm accept 8616 -v -i
存储库:https://localhost:9443/jazz/
工作空间:(8551)“myNewWorkspace”
组件:(8553)“Flux Capacitor”
变更集:
(8616)ADMIN -#$“Results of initial trials”
变更:
!-c /flux.capacitor/requirements.txt
下列工作空间在接受后仍包含冲突:
myNewWorkspace
请运行“scm resolve”、“scm conflicts”或“scm status”以获取有关解决冲突的帮助。
-i 在文件中插入冲突标记。这些标记与其他源代码控制系统所使用的标记类似。
变更列表中的 ! 表示该文件现在包含冲突。
您可以通过运行 scm conflicts 来获取当前已装入的组件中的冲突列表。
此文件包含原位置冲突标记,这些标记表明存在问题:
- Must not need any more than 1.5 gigawatts of power - Determine minimum necessary speed <<<<<<< 我的 - Twin Pines parking lot? ======= - Initial trials suggest 60kmh >>>>>>> 建议的
<<<<<<< 我的与等号之间的行来自工作空间中的变更集。等号与 >>>>>>> 建议的之间的行来自传入变更集。您可以通过运行 lscm conflicts -m flux.capacitor/requirements.txt 获取原始文件。如果要获取传入版本,那么可以运行 lscm conflicts -p flux.capacitor/requirements.txt。-m 是 mine 的短格式,-p 是 proposed 的短格式。
使用建议来解决变更。从文件中清除冲突标记:
- Must not need any more than 1.5 gigawatts of power - Determine minimum necessary speed Initial trials suggest 60kmh
通过运行 lscm resolve 落实变更并通知存储库:已使用检入的版本来解决冲突:
lscm resolve -c flux.capacitor/requirements.txt
没有任何输出表示已解决冲突。
-c 表示应该使用检入的版本来解决冲突。另外,还可以通过 -p 使用建议版本来解决冲突。
现在,您可以进一步进行变更,也可以通过 lscm deliver 来交付变更集:
$ lscm deliver 正在将变更从“myNewWorkspace”交付到“DeLorian Updates” 没有要流动的基线。
要确定哪些用户修改了文件中的某些行,请运行 lscm annotate:
$ lscm annotate flux.capacitor/requirements.txt 1 Marty(8556)2009-11-04 - Must not need any more than 1.5 gigawatts of power 2 Marty(8556)2009-11-04 - Determine minimum necessary speed 3 Doc (8616)2009-11-04 Results of initial t - Initial trials suggest 60kmh
注释输出由 6 列组成:
要对文件的不同版本进行比较,请使用 scm diff,此命令将生成标准补丁。
要删除未落实的变更,请使用 scm undo。
本节描述一些高级命令,这些命令主要由那些为其他用户配置 Rational Team Concert 源代码控制的管理员使用。大多数用户只创建工作空间以及从现有的流装入工作空间。
组件是源树的分组,它将源代码的逻辑分组放到一起。
随着项目增大,您有时候需要添加新的源树。如果保留变更对于现有组件而言没有意义,那么需要添加新组件:
$ lscm create component "Flux Capacitor" "DeLorian Upgrades" -r l 已成功地创建组件(8553)“Flux Capacitor”。
在以上示例中,您在流 DeLorian Upgrades 中创建了一个新组件。将工作空间与该流进行协作的用户将看到作为传入变更的组件添加变更。当他们接受传入变更时,用户将接收到该组件中的内容。
如果用户想要将新文件添加到为了实现该目的而创建的组件中,那么可以使用 share 子命令来执行此任务。Rational Team Concert 源代码控制只允许在工作空间中共享目录和文件夹。用户必须将新组件添加到远程工作空间中:
$ lscm workspace add-component -r l myNewWorkspace 8553 已成功地添加组件(8553)“Flux Capacitor”。
在以上示例中,别名 8553 引用上一示例中新创建的组件。
现在,新组件已在工作空间中,因此用户必须在工作空间中共享(share)源树:
$ lscm share -r l myNewWorkspace 8553 flux.capacitor 正在上载文件... 共享成功
在以上示例中,此操作将目录 flux.capacitor 的内容上载到远程工作空间 myNewWorkspace 并将其添加到 8553 指定的组件,该组件就是上一步骤中的 Flux Capacitor。