如何解决.swm文件合并冲突?rebase分支时swm、md文件冲突怎么处理?
.swm与关联md文件合并冲突解决方案
冲突原因
.swm是Swimm文档的元数据配置文件,其中的fileBlob字段是Swimm自动计算的关联代码文件哈希值,当两个分支同时修改了同一份Swimm文档、或是修改了Swimm文档关联的代码文件时,就会出现这类哈希值冲突,示例如下:
<<<<<<< HEAD "fileBlob": "107f49a145f675f6b811b13b5a35b1dbfb018f83", ======= "fileBlob": "ff2f2a6517bb9c5b86e6ff4d805f8b367a2c5dfc", >>>>>>> 191d4efc6 (docs(swimm): update document Table API KnevxspVMVO1XfF6UxPS)
连带自动生成的md文档也会出现内容冲突。
合并操作规则
- 优先使用Swimm CLI自带的冲突解决命令,不需要手动处理哈希值:
直接在项目根目录执行swimm resolve,工具会自动校验两个分支的文档和关联代码匹配度,自动生成正确的合并结果。 - 无Swimm CLI时手动合并规则:
- 若仅单侧分支修改了该Swimm文档,直接保留修改了文档的分支的全部内容即可,比如示例中提交
191d4efc6明确标注了更新Swimm文档,若当前HEAD(dev分支)没有修改同一份文档,直接保留>>>>>>>侧的变更 - 若两侧分支都修改了同一份Swimm文档,先手动合并自动生成的md文件的正文内容,确认所有需要保留的更新都已合并后,执行
swimm update自动更新.swm文件中的所有哈希值即可,不需要手动调整fileBlob字段
- 若仅单侧分支修改了该Swimm文档,直接保留修改了文档的分支的全部内容即可,比如示例中提交
合并结果验证方法
- 执行
swimm verify,所有校验项无报错,说明文档和关联代码的匹配关系正常、哈希值正确 - 打开合并后的md文件,检查正文内容是否包含了两个分支所有需要保留的更新
- 执行
swimm sync确认本地数据和Swimm云端数据同步无异常
注意事项
禁止手动修改.swm文件中的自动生成字段(包括fileBlob、文档ID等),手动修改哈希值会导致Swimm无法识别文档和代码的关联,后续会出现持续校验失败的问题。
内容的提问来源于stack exchange,提问作者Shay Nehmad
相关产品推荐
相关产品推荐

