合并的主题不再被顶起

似乎有一个 bug 潜入了 3.6.0.beta2-latest (e2eb9fe93f),这在我上周进行的更新中并不存在。

如果需要,这是差异:

合并主题时存在一个问题。

以前,我合并进来的主题会被置顶。

现在不再发生这种情况,两个主题都从视野中消失了。

这是我 21 分钟前合并的原始主题:

转到 /latest,可以看到已关闭的主题,但找不到我合并进来的主题 :person_shrugging:

同样,转到 Travel 分类,也找不到被置顶的主题 :person_shrugging:

如果我转到我合并进来的主题,然后点击 Reset Bump Date,它就会神奇地出现在 /latest 中,并带有合并进来的最后一个帖子的正确时间戳。


如果我合并并勾选“保留时间顺序”框,此问题似乎不会发生。

我已经尝试过使用管理员和版主账户,每次使用这两种账户类型都可以重现此问题。

1 个赞

我怀疑这与此有关 :thinking:

2 个赞

为了通过场景来阐明此处的问题。

  • 用户创建了一个名为“Topic XYZ”的新主题
  • 管理员将该新主题合并到一个名为“ABC Topic”的现有主题中
    – 这是为了防止重复主题的标准维护操作
  • “Topic XYZ”现在已从公众视野中消失,因为它已被取消列出并合并
  • “ABC Topic”在 /latest(或其他近期位置)中不可见,因为它没有被置顶
  • 没有用户意识到曾经创建了一个新主题/帖子(或者因为合并而技术上成为旧主题的回复),因为它被移动到一个可能已经存在一年的主题中,并且没有被置顶

不确定我是否解释清楚了 :blush:

2 个赞

是的,我认为你很好地描述了问题。

@christo 我认为我们需要考虑几种不同的组合:

鉴于我们将主题 A(一个帖子)合并到主题 B,有以下情况需要考虑:

    1. 主题 A 的帖子比主题 B 的最后一个帖子新
    • a. 选择保持时间顺序
    • b. 未选择保持时间顺序
    1. 主题 A 的帖子比主题 B 的最后一个帖子旧
    • c. 选择保持时间顺序
    • d. 未选择保持时间顺序

我认为除了 2(c) 之外,所有情况下的预期行为都是主题被顶起。

在除 2(c) 之外的所有情况下,主题 A 的帖子将附加到主题 B 的末尾,所以我认为合并应该根据合并发生的时间来设置顶起日期。

不过,我不太确定在 2(d) 的情况下,如果管理员稍后执行“重置顶起日期”,会发生什么。我认为它应该将顶起日期更新为主题中最新创建帖子的日期(例如,倒数第二个帖子)。

@martin 你和我一直在考虑其他场景下的顶起日期逻辑——以上对你来说有意义吗?

2 个赞

是的,仅根据我本周安装的更新之前的行为一直如此。

同样,我们现在遇到的问题是,新主题/帖子会凭空消失,因为它们不再会顶起它们被合并到的主题——而过去它们一直都会。

我同意。

1 个赞

是的,我认为这说得通 :+1:

2 个赞

是的,看起来这是我在上面链接的提交中引入的一个 bug。我本想修复一个问题,即当合并了比目标主题中最新帖子更早的第一个帖子时,bumped_at 日期有时会被推迟。但看起来我也破坏了第一个帖子更新的情况。

我正在处理一个修复程序,解决后我会在此更新。

1 个赞

这是修复此问题的 PR。一旦获得批准和合并,我会再次更新。

3 个赞

感谢你的快速修复 @christo :person_bowing:

3 个赞

好的,此修复已合并。应该能按预期正常工作了。

2 个赞