Получение информации о статусе

При работе с рабочей копией, вам часто надо понять, какие файлы вы изменили/добавили/удалили или переименовали, или же какие из файлов были изменены и зафиксированы другими.

Пометки на значках

Рисунок 4.12. Проводник с пометками на значках

Проводник с пометками на значках


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

В свежеизвлечённой рабочей копии все пометки выглядят как зеленая галочка. Это означает, что статус Subversion - нормальный.

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

Если в процессе обновления возник конфликт, тогда пометка меняется на желтый восклицательный знак.

Если вы установили для файла свойство svn:needs-lock, Subversion помечает этот файл как доступный только для чтения, пока вы не получите блокировку для этого файла. Эта пометка на файлах означает, что вы должны заблокировать файл перед тем, как начнёте его редактировать.

Если вы владеете блокировкой на файл, и его статус в Subversion нормальный, эта пометка напомнит вам, что вы должны разблокировать файл, если вы его не используете, чтобы и другие могли зафиксировать свои изменения в этом файле.

Эта пометка показывает, что некоторые файлы или папки внутри текущей папки запланированы для удаления из-под управления версиями, или же что файл, находящийся под управлением версиями, в папке отсутствует.

Символ плюс сообщает о том, что файл или папка запланированы для добавления под управление версиями.

Минус говорит о том, что файл или папка игнорируется системой управления версиями. Это необязательная пометка.

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

Фактически вы можете обнаружить, что не все из этих пометок используются в вашей системе. Это происходит из-за того, что число пометок, доступных в Windows, сильно ограничено, и если вы используете также и старую версию TortoiseCVS, тогда доступных позиций для размещения пометок будет недостаточно. TortoiseSVN попытается быть «Добропорядочным Гражданином (TM)» и ограничивает использование собственных пометок, оставляя эту возможность и другим программам.

Сейчас когда есть много Tortoise клиентов кругом (TortoiseCVS, TortoiseHg, ...) ограничение значков стало настоящей проблемой. Чтобы справиться с этим проект TortoiseSVN предоставил общеиспользуемый набор значков, загружаемый как DLL, который может быть использован всеми клиентами Tortoise. Проверьте поставщика вашего клиента, использует ли он это :-)

Для описания соответствия пометок на значках статусам Subversion и других технических подробностей, прочтите «Пометки на значках».

Подробный статус

Рисунок 4.13. Страница свойств Проводника, вкладка Subversion

Страница свойств Проводника, вкладка Subversion


Иногда вам необходима более детальная информация о файле/папке, нежели пометка на значке. Вы можете получить всю информацию, предоставляемую Subversion, в диалоге свойств Проводника. Просто выберите из контекстного меню для нужного файла или папки Меню WindowsСвойства (обратите внимание: это обычный пункт 'Свойства' в контекстном меню Проводника, а не тот, который в подменю TortoiseSVN!). В диалоге свойств TortoiseSVN добавляет новую вкладку свойств для файлов/папок, находящихся под управлением Subversion, где вы можете посмотреть всю существенную информацию о выбранном файле/папке.

Локальный и удалённый статус

Рисунок 4.14. Проверка на наличие изменений

Проверка на наличие изменений


Часто очень полезно знать, какие файлы вы изменили и какие файлы были изменены и зафиксированы другими. Для этого может пригодиться команда TortoiseSVNПроверить на наличие изменений.... Появившийся диалог покажет вам каждый файл, который вы каким-либо образом изменили в вашей рабочей копии, а также неверсированные файлы, которые у вас могут быть.

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

Диалог использует различные цвета для обозначения статуса.

Голубой

Локально изменённые элементы.

Пурпурный

Добавленные элементы. Элементы, которые были добавлены с историей, имеют знак + в столбце Статус текста, и подсказка показывает, откуда был скопирован элемент.

Темно-красный

Удалённые или отсутствующие элементы.

Зеленый

Элементы, изменённые локально и в хранилище. Изменения будут объединены при обновлении. Это может привести к конфликту при обновлении.

Ярко-красный

Элементы, изменённые локально и удалённые в хранилище, или измененные в хранилище и удалённые локально. Эта ситуация вызовет конфликт при обновлении.

Чёрный

Неизменённые и неверсированные элементы.

Это используемая по умолчанию цветовая схема, но вы можете настроить эти цвета в диалоге настроек. Для дополнительной информации смотрите «Настройки цветов в TortoiseSVN».

Оверелейные значки также используются для обозначения других состояний. Нижеприведённый скриншот демонстрирует все возможные оверлеи, которые отображаются при необходимости.

Оверелеи показаны для следующих состояний:

  • Глубина извлечения empty обозначает только сам элемент.

  • Глубина извлечения files обозначает только сам элемент и все дочерние файлы без дочерних папок.

  • Глубина извлечения immediates обозначает только сам элемент и все дочерние файлы и папки, но без элементов дочерних папок.

  • Вложенные элементы, т.е. рабочие копии внутри рабочей копии.

  • Внешние элементы, т.е. все элементы добавленные с использованием свойства svn:externals.

  • Элементы, которые были восстановлены после фиксации. Более подробно см. «Фиксировать только части файлов».

  • Элементы, у которых изменены свойства, но только свойство svn:mergeinfo. Если изменено любое другое свойство, то оверлей не используется.

Элементы, которые были переключены на другой путь хранилища, отмечены маркером (s). Может быть вы переключили что-то пока работали в ответвлении и забыли переключить обрано на trunk. Это предупреждающий знак для вас! Контекстное меню позволяется вам переключить это обратно на нормальной путь.

Из контекстного меню диалога вы можете отобразить изменения как различия между файлами. Просмотреть локальные изменения, которые вы сделали, можно при помощи Контекстное менюСравнить с рабочей копией. Просмотреть изменения в хранилище, сделанные другими, можно используя Контекстное менюПоказать различия как объединенные различия.

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

Неверсированные и игнорируемые файлы могут быть отправлены отсюда в корзину при помощи команды Контекстное менюУдалить. Если вы желаете удалить файлы навсегда (минуя корзину) держите нажатой клавишу Shift при щелчке на Удалить.

Если вы хотите проверить файл подробно, то вы можете перетянуть его отсюда в другое приложение, такое как текстовый редактор или IDE. Или можете сохранить копию просто перетянув его в папку в проводнике.

Столбцы можно настроить. Если щёлкнуть правой кнопкой на заголовке любого столбца, появится контекстное меню, позволяющее выбрать отображаемые столбцы. Вы также можете изменить ширину столбца при помощи указателя перемещения, который появляется при прохождении указателя мыши через границу столбца. Эти настройки сохраняются, так что вы увидите заголовки в том же виде и в следующий раз.

Если вы работаете над несколькими несвязанными задачами одновременно, вы можете сгруппировать файлы в группы изменений. Прочтите «Группы изменений» для более подробной информации.

В нижней части окна показывается сводка о диапазоне ревизий хранилища, встречающихся в вашей рабочей копии. Это ревизии фиксаций , а не ревизии обновлений; они отображают диапазон ревизий, в которых эти файлы были последний раз зафиксированы, а не ревизий, до которых они были обновлены. Обратите внимание: показанный диапазон относится только к показанным элементам, а не ко всей рабочей копии. Если вам нужны эти же данные для всей рабочей копии, необходимо отметить флажок Показать файлы без изменений.

Подсказка

Если вам нужен плоский вид вашей рабочей копии, т.е. отображение всех файлов и папок со всех уровней иерархии, тогда диалог Проверка на наличие изменений - простейший путь этого добиться. Просто пометьте флажок Показать файлы без изменений для отображения всех файлов в вашей рабочей копии.

Исправление внешних переименований

Иногда файлы переименовываются вне Subversion, и тогда в списке файлов каждый из них присутствует как два: один отсутствующий, другой - неверсированный. Чтобы избежать потери истории файла, необходимо известить Subversion о том, что они связаны. Просто выберите оба файла: и со старым именем (отсутствующий), и с новым именем (неверсированный) и выполните Контекстное менюПоправить переименование, чтобы обозначить эту пару файлов как переименование.

Исправление внешних копирований

Если вы скопировали файл, но забыли, что это надо было сделать при помощи команды Subversion, вы можете исправить такое копирование, чтобы новый файл не потерял свою историю. Просто выберите оба файла: и со старым именем (нормальный или изменённый), и с новым именем (неверсированный) и используйте Контекстное менюПоправить копирование, чтобы обозначить эту пару файлов как копирование.

Просмотр различий

Часто возникает необходимость просмотреть содержимое ваших файлов, чтобы понять, что же было изменено. Вы можете достичь этого путём выбора пункта Различия в контекстном меню TortoiseSVN для нужного файла с изменениями. Это запустит внешнюю программу просмотра различий, которая сравнит текущий файл с нетронутой копией (BASE, Базовой ревизией), которая была сохранена после последнего извлечения или обновления.

Подсказка

Даже для файлов не из рабочей копии, или когда у вас файл представлен в нескольких версиях, вы всё равно можете посмотреть различия:

Отметьте два файла, которые вы хотите сравнить, в Проводнике (например, используя Ctrl и мышку) и выберите из контекстного меню TortoiseSVN команду Различия. Файл, отмеченный последним (тот, который в фокусе, т.е. в прямоугольнике из точек), будет считаться более поздним.