def merge_into(self, to_ch):
        # move trackers
        to_ch_trackers = set(to_ch.trackers.values_list('id', flat=True))

        for user in self.trackers.all():
            if user.id not in to_ch_trackers:
                ChangelogTrack.objects.create(user=user, changelog=to_ch)
                action = 'moved-during-merge'
                action_description = 'User was moved from {0}/{1} to changelog:{2}'.format(
                    self.namespace,
                    self.name,
                    to_ch.id)
                UserHistoryLog.write(user, '', action, action_description)

        # move issues
        for issue in self.issues.all():
            issue.changelog = to_ch
            issue.save(update_fields=('changelog',))

        # remove itself
        Changelog.objects.filter(pk=self.pk).delete()

        # add synonym
        to_ch.add_synonym(self.source)