结论先说:不要让两方在同一个线上站点上“各改各的”。可行做法是选一个主责方持有发布权,另一方只提交改动清单和文件,由主责方合并发布;如果两方都必须直接动手,就按目录或模板层切分权限,并约定同一时间只有一个写入窗口。
假设某企业官网同时请了两家服务商:A负责整站SEO结构、栏目页模板和站内链接,B负责产品页文案、图片和参数表更新。两边都拿到同一个CMS后台账号,都能直接编辑页面。某周A调整了产品列表页的模板,B同时批量替换了产品页文案。结果B保存时把A刚改的模板区块覆盖回旧版本,A第二天检查时以为改动丢失,又重新发布一次,把B的文案又冲掉一部分。这个循环不是谁水平差,而是同一份内容存在两个写入方。
选择一:只保留一个主责方直接操作线上站点,另一方以“改动包”形式交付。适合模板层和内容层改动频繁交叉的情况。代价是交付链路变长,B的改动要等A排期,响应速度下降。
选择二:两方都保留直接操作权,但按范围隔离。适合改动区域天然分开、且双方都能遵守发布纪律的情况。代价是需要额外维护权限边界和发布日志,一旦有人越界,覆盖风险立刻回来。
判断依据可以看三条:改动是否落在同一批文件或同一批页面字段上;两方是否共用同一套模板和组件;任何一方能否在不知会对方的情况下发布。三条里只要有两条成立,就该优先选第一种。
更稳的切法是按技术层分,而不是按页面分。例如:
这样即使B在后台批量保存,也不会覆盖模板文件。实际动作是:在CMS里给B的账号只开放内容编辑权限,关闭模板和代码编辑权限;如果CMS做不到字段级权限,就改为B提交Excel或文档,由A导入。这个动作做完后,下一次发布时覆盖范围就被限制在内容字段内,A的模板改动不再受影响。
如果确实无法完全隔离,就约定发布窗口:例如每周一、三、五上午由A发布,B的改动在发布前一天提交。同一时间只允许一个写入方。每次发布前,主责方先导出一份当前页面或数据库快照,发布后再对比差异。发现非预期回退时,先停掉另一方的发布权限,再回滚,而不是两边继续互相覆盖。
变更日志不需要复杂工具,一份共享表格即可:日期、操作人、改动的页面或文件、发布前版本标识、发布后检查结果。它的作用不是追责,而是让下一方知道“现在线上是什么状态”,避免基于过期信息再次覆盖。
覆盖发生后,不要只看“谁最后保存”。可区分的原因至少有三类:
分清原因再决定动作:权限重叠就收权限,缓存问题就清缓存并确认发布链路,导入冲突就改为增量更新而不是整表覆盖。把这三类混在一起处理,往往会让两方都做无效返工。
在合同或工作说明里写清三件事:谁持有线上发布权;另一方以什么格式、什么频率交付改动;出现覆盖时由谁在多长时间内回滚并说明原因。如果两方都坚持直接操作,就要求他们共用一份变更日志,并接受“同一时间只有一个写入方”的规则。做不到这一点,同时改同一网站就迟早会互相覆盖,最终受损的是站点本身的稳定性和内容连续性。