Plastic SCM 测试环境搭建指南
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
当您修改 segment_plastic.go 文件时,可能需要在实际的 Plastic SCM 环境中测试变更。本文档将帮助您快速掌握 Plastic SCM 的基本使用。
贡献指南 中有关于 开发容器与 Codespaces 的章节,您也可以在这些环境中配置 Plastic SCM。
服务器搭建
您可以在官方安装指南中找到完整说明,以下是简要步骤:
在 Debian 或开发容器中安装
首先添加软件源:
sudo apt-get update
sudo apt-get install -y apt-transport-https
wget -qO - https://www.plasticscm.com/plasticrepo/stable/debian/Release.key | \
gpg --dearmor | sudo tee /usr/share/keyrings/plasticscm-stable.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/plasticscm-stable.gpg] \
https://www.plasticscm.com/plasticrepo/stable/debian ./" | \
sudo tee /etc/apt/sources.list.d/plasticscm-stable.list
sudo apt-get update
然后安装服务器:安装结束时可能出现错误,详见下文说明
sudo apt-get install -y plasticscm-server-core
在配置安装包时可能出现错误,此时服务未注册为系统服务。 请忽略此报错!
服务器配置
通过以下命令进行配置:
sudo /opt/plasticscm5/server/plasticd configure \
--language=en \
--workingmode=NameWorkingMode \
--port=8087 \
--sslport=8088
恭喜! 服务器配置完成。更多信息请参考官方配置指南。
启动服务器
若安装无报错,服务已自动注册,可通过以下命令启动:
sudo service plasticd start
若未注册,需手动启动(例如在开发容器中):
sudo /opt/plasticscm5/server/plasticd start
此操作会阻塞当前终端直到服务进程结束,您可能需要另开终端继续操作。
至此 Plastic SCM 服务器应已成功启动。
客户端配置
Plastic SCM 与 Git 类似,提供 CLI(及可选的图形界面)
在 Debian 或开发容器中安装
在 Debian 或开发容器中安装 Plastic SCM CLI 的步骤如下:
sudo apt-get install -y plasticscm-client-core
客户端连接配置
运行以下命令连接服务器并创建账户:
cm configure \
--language=en \
--workingmode=NameWorkingMode \
--server=localhost \
--port=8087
恭喜! 客户端应已成功连接至服务器。更多配置详情请参考官方配置指南。
可通过以下命令测试连接并查看许可信息:
cm li
功能测试
现在进入实战环节!服务器已自动创建名为 default 的仓库,包含 /main 分支。
Plastic SCM 命令行工具为:cm
如需查看支持的命令:
cm showcommands --all
创建工作区
使用 Plastic 前需创建本地工作区:
cd ~
mkdir dev
cd dev
cm wk create workspace workspace rep:default
cd workspace
cm status
添加文件
首先创建本地私有文件:
echo "test" > myfile.txt
cm status --all
将文件添加至本地变更:
cm add myfile.txt
cm status
测试提示: Private(私有)和 Added(已添加)文件都应计入 plastic 段的 Added 属性统计。
提交变更
在本地添加、修改、移动或删除文件后,需要提交变更以创建新变更集。运行以下命令提交所有本地变更:
cm status | cm ci . -c "my first commit"
撤销本地变更
若需要放弃或无法提交本地变更,可使用撤销命令。此命令将撤销所有本地变更:
cm status | cm undo .
修改/移动/删除文件
这些操作均在文件层面进行。可运行 cm status 命令查看 Plastic SCM 对操作的追踪记录。使用前文所述的提交方法提交变更。
测试提示: 这些变更都应计入 plastic 段对应属性(Modified/Moved/Deleted)的统计。
分支操作
前文介绍了 Plastic SCM 客户端的基本操作。接下来将深入讲解分支/标签的使用及合并操作。
创建新分支
基于 /main 分支最新变更集创建新分支:
cm br /main/new-branch
提示:查看全部分支使用
cm find branches
为当前变更集设置标签
工作区始终对应特定变更集(见 cm status)。可为当前变更集设置标签以便快速定位或文档记录:
cm label mk "BL0001"
提示:查看全部标签使用
cm find labels
切换工作区分支
切换至目标分支:
cm switch /main/new-branch
cm status
测试提示: 分支名称应反映在 plastic 段的 Selector 属性中
切换到指定变更集
每次提交生成唯一变更集编号。切换至指定变更集:
cm switch cs:1
测试提示: 变更集编号应反映在 Selector 属性中的 plastic 段
切换到标签
切换至指定标签:
cm switch BL00001
测试提示: 标签名称应反映在 plastic 片段的 Selector 属性中
合并分支
需先切换到目标分支,然后合并源分支:
cm switch /main
cm merge /main/new-branch --merge
cm status
提示:此操作仅在本地准备合并,需提交变更才能完成合并!
测试提示: 待处理合并应反映在 plastic 段的 MergePending 属性中
精选合并 (Cherry-pick)
普通合并会合并分支所有变更,而精选合并仅合并单个变更集的变更:
cm merge cs:8 --merge --cherrypicking
提示:此操作仅在本地准备合并,需提交变更才能完成合并!
测试提示: 待处理的精选合并应在 plastic 段的 MergePending 属性中体现
合并冲突
合并时可能遇到多种冲突类型
双子冲突 (Evil Twin)
当源分支和目标分支添加了同名文件时触发
cm br mk /main/sub-branch
cm switch /main/sub-branch
echo "1" > twin.txt
cm add twin.txt
cm ci twin.txt
cm switch /main
echo "2" > twin.txt
cm add twin.txt
cm ci twin.txt
cm merge /main/sub-branch --merge
提示:系统将立即要求解决此冲突
双向修改冲突
当源分支和目标分支修改了同一文件时触发
cm switch /main
echo "base" > file.txt
cm add file.txt
cm ci file.txt
cm br mk /main/test
echo "on main" > file.txt
cm ci file.txt
cm switch /main/test
echo "on test" > file.txt
cm ci file.txt
cm switch /main
cm merge /main/test --merge
提示:这会尝试打开 gtkmergetool,但在开发容器内会失败!
修改过的文件 vs. 已删除的文件
这种情况发生在合并时,文件在合并的一方被修改,而在另一方被删除
cm switch /main
echo "base" > deleteme.txt
cm add deleteme.txt
cm ci deleteme.txt
cm br mk /main/del
rm deleteme.txt
cm ci --all
cm switch /main/del
echo "on del" > deleteme.txt
cm ci deleteme.txt
cm switch /main
cm merge /main/del --merge
提示:这将提示你直接解决合并冲突