大约 20 条命令的 Plastic SCM 版本控制





0/5 (0投票)
描述如何从命令行使用 plastic
是的,尽管大多数用户都通过 Plastic 优秀的图形用户界面来使用它(查看 2.0 版本的界面:codice 博客),但它完全可以通过命令行来使用。
我将要讨论的就是如何通过命令行使用 Plastic!
基本仓库操作
创建或删除 Plastic 代码仓库只需使用以下命令:
cm mkrep
创建新的仓库cm rmrep
删除已存在的仓库
是的,没有命令可以执行诸如检查仓库错误、重新打包等维护任务……这些都不需要!
示例
创建一个新仓库。假设你的服务器在名为 plastic 的机器上,监听 8084 端口(默认端口)。你需要输入:
$ cm mkrep plastic:8084 mynewrep
这将创建一个名为 mynewrep 的新仓库。就是这样!
如果以后要删除它,请输入以下命令:
$ cm rmrep mynewrep@plastic:8084
完成。
单个开发者操作
日常工作中,你需要知道如何创建工作区(你不会每天都这样做,但一生至少需要做一次),将内容添加到仓库,签入和签出元素,以及切换到特定分支。
cm mkwk
创建工作区cm add
将内容添加到仓库cm ci
签入文件和目录cm co
签出文件和目录cm mkbr
创建新的分支cm stb
切换到另一个分支
示例
创建新的工作区
$ cm mkwk myworkspace .
这将在当前目录下创建一个新的工作区
用内容填充工作区并将其添加到版本控制中
在你最近创建的空白工作区内:
$ tar zxf samplecode.tar.gz $ cm co . $ cm add -R . $ cm ci -R .
这将解压一些代码,签出根项目,添加所有内容并签入所有内容。
如果你正在一个新安装的 Plastic 系统上工作,你可能会将所有内容添加到“默认”工作区的 main 分支中。你怎么知道呢?使用 ss
命令查看你的选择器:
$ cm ss
这将显示你当前的选择器,并告诉你正在哪个分支和仓库中工作。
创建新的分支
好的,你正在 main 分支工作,你刚刚将所有项目的代码添加到版本控制中,现在你想创建一个 bug 修复分支。很简单:
$ cm mkbr br:/main/bug_fix001 -c="This is my bugfix branch"
注释是可选的,你刚刚创建了一个新的 bug_fix001 分支,它是 main 分支的子分支。这意味着什么?如果你的当前版本控制系统不支持分支继承……那就扔掉它吧! :-)
bug_fix001 实际上继承自 main,这意味着当它在自身分支中找不到修订版时,它将从 main 获取修订版。让我们来看一个例子。
$ cm stb br:/main/bug_fix001
现在你的工作区已更新,可以处理 bug_fix001 分支了。
$ cm co code/mycode.c
告诉 Plastic 你将要修改 mycode.c 文件。不!签出不是阻塞的,所以不要认为它像 SourceSafe。在 Plastic 中,你必须在实际修改文件之前告诉系统你正在修改文件,但这并不意味着它会阻塞修订……你可以根据需要进行任意数量的并行更改。
好的,修改文件并签入:
$ cm ci code/mycode.c
bug_fix001 分支的内容现在是什么?好的,它只包含 code/mycode.c,项目的其余内容继承自 main。简单吧?
集成者操作
所以,你是一位集成者,对吧?好的,你的工作是从你的同事那里获取更改并将它们集成在一起以创建新的版本。
好的,查看以下命令:
cm merge
从分支、变更集、标签……合并cm ci
签入更改。你已经知道这个了!
第一步是为集成配置你的工作区。你想将更改集成回 main 分支?好的,那么“转到 main”:
$ cm stb br:/main
好了,你完成了!现在,你想集成 bug_fix001。
$ cm merge br:/main/bug_fix001
这将显示要合并的文件和目录列表。
$ cm merge br:/main/bug_fix001 --merge
这将实际执行合并。
Plastic 将解决冲突,修改后的文件将处于签出状态,以便你可以决定是否要提交它们。
如果需要手动合并,则会弹出三方合并工具。
如果你不喜欢内置的三方合并工具(你真是个傻瓜),那么你可以在 client.conf 客户端配置文件中配置另一个工具。
所有更改完成后,签入所有内容:
$ cm fco --format={4} | bcm ci -
你想标记新创建的版本吗?
$ cm mklabel version_00 $ cm label lb:version_00 -R .
总结
好吧,看来我最终只需要 10 个命令而不是 20 个!
如果你需要更多信息,请访问 www.plasticscm.com 或 codice 博客