When replying to a ghost comment, attach the reply to the same place
Summary:
Fixes T10562. I left this behavior sort of ambiguous in the original implementation because I didn't anticipate or stumble across this situation.
It's easy to fix: when you reply to a ghost, just put the reply in the exact same place as the ghost (even if it's a different diff), so they always move/ghost/port/thread together.
Test Plan:
See T10562 for reproduction steps and a "before" picture. Here's the after picture:
{F1168983}
The two comments at the bottom are pre-fix, and exhibit the bug. The comment at the top is post-fix, and appears adjacent to the original correctly.
Reviewers: chad
Reviewed By: chad
Subscribers: eadler
Maniphest Tasks: T10562
Differential Revision: https://secure.phabricator.com/D15458
This commit is contained in:
@@ -305,13 +305,18 @@ abstract class PhabricatorInlineCommentController
|
|||||||
pht('Failed to load comment "%s".', $reply_phid));
|
pht('Failed to load comment "%s".', $reply_phid));
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: It's fine to reply to a comment from a different changeset, so
|
// When replying, force the new comment into the same location as the
|
||||||
// the reply comment may not appear on the same changeset that the new
|
// old comment. If we don't do this, replying to a ghost comment from
|
||||||
// comment appears on. This is expected in the case of ghost comments.
|
// diff A while viewing diff B can end up placing the two comments in
|
||||||
// We currently put the new comment on the visible changeset, not the
|
// different places while viewing diff C, because the porting algorithm
|
||||||
// original comment's changeset.
|
// makes a different decision. Forcing the comments to bind to the same
|
||||||
|
// place makes sure they stick together no matter which diff is being
|
||||||
|
// viewed. See T10562 for discussion.
|
||||||
|
|
||||||
|
$this->changesetID = $reply_comment->getChangesetID();
|
||||||
$this->isNewFile = $reply_comment->getIsNewFile();
|
$this->isNewFile = $reply_comment->getIsNewFile();
|
||||||
|
$this->lineNumber = $reply_comment->getLineNumber();
|
||||||
|
$this->lineLength = $reply_comment->getLineLength();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user