private function generateSitelinksChangeOpsWithConflict(SiteLink $fromSiteLink)
 {
     $siteId = $fromSiteLink->getSiteId();
     $toSiteLink = $this->toItem->getSiteLink($siteId);
     $fromPageName = $fromSiteLink->getPageName();
     $toPageName = $toSiteLink->getPageName();
     if ($fromPageName !== $toPageName) {
         $site = $this->getSite($siteId);
         $fromPageName = $site->normalizePageName($fromPageName);
         $toPageName = $site->normalizePageName($toPageName);
     }
     if ($fromPageName === $toPageName) {
         $this->fromChangeOps->add($this->getSiteLinkChangeOpFactory()->newRemoveSiteLinkOp($siteId));
         $this->toChangeOps->add($this->getSiteLinkChangeOpFactory()->newSetSiteLinkOp($siteId, $fromPageName, array_unique(array_merge($fromSiteLink->getBadges(), $toSiteLink->getBadges()))));
     } elseif (!in_array('sitelink', $this->ignoreConflicts)) {
         throw new ChangeOpException("Conflicting sitelinks for {$siteId}");
     }
 }