Почему мой восстановленный файл все еще отображается как отредактированный в Code Collaborator?

У меня есть файл на проверке в Code Collaborator (CC), который мы назовем "SomeFile.h". В первой ревизии я добавил несколько строк нового кода. Во второй ревизии все изменения были перемещены в другой файл, и Somefile.h был возвращен, поэтому SomeFile.h не должен показывать никаких изменений в последней ревизии.

Сводная страница обзора CC показывает это для SomeFile.h:

Статус SomeFile.h

Я ожидал увидеть символ "Файл был возвращен" из приведенной ниже таблицы в руководстве по обзору сводного экрана CC, в котором, по-видимому, нет отображаемого символа:

Сводная экранная кнопка обзора CC

Кроме того, если я нажимаю на файл и просматриваю разницу, мои старые изменения все равно отображаются, создавая впечатление, что файл не был восстановлен. Я пытался отправить список изменений как с неизменным SomeFile.h, так и без него, но это не имело никакого эффекта.

Почему файл, который не имеет изменений по сравнению с текущей зарегистрированной версией, по-прежнему отображается с изменениями первой ревизии и без символа "Восстановленный"?

Моя система управления версиями - Perforce, версия сервера - P4D/LINUX26X86_64/2016.2/1468155. Версия Code Collaborator - 9.2.9200.

2 ответа

Я не очень знаком с Code Collaborator, но я собираюсь предположить, что когда вы "отменили" изменения в Perforce (обратите внимание, что слово "revert" в Perforce относится к совершенно другой операции, поэтому использование слова таким образом это немного сбивает с толку) это было отражено в Perforce как обычное редактирование, поэтому оно не будет отображаться в CC как специальная операция "возврата". Я также собираюсь предположить, что когда вы видите старые изменения в diff, они находятся в предыдущей версии файла, так что ваши изменения действительно удаляются с текущей версии.

В Perforce есть встроенная операция "отменить", которая хранится в метаданных в отличие от редактирования, однако это новая функция (добавлена ​​на сервере 2016.2), которая, насколько мне известно, не поддерживается другими клиентами, кроме чем командная строка. Само по себе CC, вероятно, не будет отображать собственную отмену Perforce в качестве возврата, если она не была обновлена ​​недавно. (Если вы пользователь командной строки, это очень удобно - история файлов покажет, какие именно изменения были отменены, и вы можете настроить команду "интегрировать" так, чтобы она учитывала операцию отмены, так что вы можете сделать заново отменить объединить, а не рассматривать отмену как простое редактирование, которое добавляет новые изменения).

Документация CodeCollaborator (в частности, символы, которые вы показали на скриншоте) устарела.

Скриншот, который вы показали здесь:

Восстановленный файл CodeCollaborator

Из возвращенного файла. Маленькая синяя стрелка, поднимающаяся снизу слева до верхнего левого, - это "перевернутый" символ в CodeCollaborator.

Причина, по которой этот файл все еще присутствует в вашем обзоре, заключается в том, что кто-то прокомментировал его. В частности, кто-то имеет "Принято" в разделе "Общие" этого файла (обозначено зеленым кружком с белой галочкой в ​​нем).

Любой файл, содержащий комментарии, остается видимым в обзоре, даже после восстановления. Это, по-видимому, предотвращает потерю части обсуждения в обзоре из-за того, что файл, в котором состоялось обсуждение, был возвращен. (Это было бы обычным явлением, если рецензент поднял проблему, рекомендовав, например, переименовать файл.)

В зависимости от ваших пользовательских настроек возвращенные файлы, у которых нет комментариев, могут быть полностью скрыты. Так что это может быть поведение, которое вы привыкли видеть иначе.

Что касается того, почему он по-прежнему показывает различия, включающие ваши изменения, то это, кажется, дизайнерское решение со стороны CodeCollaborator. Файл был возвращен, как указано на главной странице обзора, поэтому его содержание больше не имеет значения в контексте последнего изменения.

Я согласен, что это потенциально сбивает с толку, поскольку легко пропустить синюю стрелку и думать, что изменения все еще присутствуют. Это означает, что любые комментарии к этому файлу, которые обычно делаются, когда он находится в "измененном" состоянии, останутся в контексте изменений, которые были изначально там. Для CodeCollaborator было бы неоправданно отображать "Этот файл был возвращен" или что-то подобное вместо diff, но это не совсем так, как он был спроектирован.

Другие вопросы по тегам