Отправка изменений, сделанных в вашей рабочей копии, называется фиксацией. Но перед фиксацией вы должны убедиться, что рабочая копия находится в актуальном состоянии. Можно либо сразу использовать → , либо можно сначала вызвать → для просмотра файлов, которые были изменены локально или на сервере.
Если ваша рабочая копия в актуальном состоянии, и конфликты отсутствуют, то вы готовы к фиксации ваших изменений. Выберите любой файл и/или папку, которые вы хотите зафиксировать, и вызовите → .
Диалог фиксации покажет все изменённые файлы, включая добавленные, удалённые и неверсированные. Если вы не хотите фиксировать какой-то изменённый файл, просто разотметьте его. Если вы хотите включить неверсированный файл, тогда пометьте его для добавления к фиксации.
Элементы, переключенные на другие пути в хранилище, отмечаются маркером (s). Возможно, вы переключили что-то, пока работали в ответвлении, и забыли переключить обратно в основной ствол. Этот маркер - предупредительный сигнал!
Когда вы фиксируете файлы, диалог фиксации отображает только выбранные вами файлы. Когда вы фиксируете папки, диалог фиксации самостоятельно отберёт изменённые файлы. Если вы забудете о созданном вами новом файле, при фиксации папки он всё равно будет обнаружен. Фиксация папки не означает, что каждый файл будет помечен как изменённый, это просто способ облегчить вам жизнь путём выполнения в помощь вам большего объёма работы.
Если вы изменили файлы, которые были включены из другого хранилища с использованием svn:externals, то эти изменения не могут быть включены в эту же атомарную фиксацию. Если это случиться, появится предупредительный символ под списком файлов, и подсказка объяснит, что эти внешние файлы должны быть зафиксированы отдельно.
Если вы считаете, что в диалоге фиксации показывается слишком много неверсированных файлов (вроде генерируемых компилятором или резервных копий редактора), есть несколько способов с этим справиться. Вы можете:
добавить файл (или шаблон его имени) в список игнорируемых файлов на странице настроек. Это затронет все ваши рабочие копии.
добавить файл в список svn:ignore, используя → . Это затронет только папку, для которой вы устанавливаете свойство svn:ignore. Вы можете изменить свойство svn:ignore для папки при помощи диалога свойств Subversion.
Для дополнительной информации прочтите «Игнорирование файлов и папок».
Двойной щелчок на любом изменённом файле в диалоге фиксации запускает внешнюю утилиту сравнения для показа произведённых изменений. Как видно на рисунке, в контекстном меню доступны и другие возможности. Вы также можете перетащить файлы отсюда в другое приложение, такое как текстовый редактор или IDE.
Вы можете отмечать или разотмечать элементы при помощи щелчка на флажке, находящегося слева от этого элемента. Для папок возможно использование Shift-отметки для того, чтобы применить действие рекурсивно.
Отображаемые в нижней панели столбцы можно настроить. Если щёлкнуть правой кнопкой на заголовке любого столбца, появится контекстное меню, позволяющее выбрать отображаемые столбцы. Вы также можете изменить ширину столбца при помощи указателя перемещения, который появляется при прохождении указателя мыши через границу столбца. Эти настройки сохраняются, так что вы увидите заголовки в том же виде и в следующий раз.
По умолчанию, при фиксации изменений все удерживаемые вами блокировки файлов снимаются после успешного завершения операции. Если вы желаете оставить эти блокировки, убедитесь, что флажок Сохранить блокировки отмечен. Значение, используемое по умолчанию для этого флажка, берётся из параметра no_unlock конфигурационного файла Subversion. Прочтите «Общие настройки», чтобы узнать, как редактировать конфигурационный файл Subversion.
Вы можете перетаскивать файлы в диалог фиксации из других мест, при условии, что рабочие копии были извлечены из того же хранилища. Например, у вас может быть огромная рабочая копия с несколькими открытыми окнами проводника для просмотра далеко отстоящих друг от друга папок в иерархии. Если вы хотите избежать фиксации из папки верхнего уровня (с длительным проходом по папкам для обнаружения изменений), вы можете открыть диалог фиксации для одной папки и перетащить в него элементы из других окон для включения в ту же атомарную фиксацию.
Вы можете перетащить в диалог фиксации неверсированные файлы из рабочей копии, и они будут автоматически добавлены под управление версиями.
Иногда файлы переименовываются вне Subversion, и тогда в списке файлов каждый из них присутствует как два: один отсутствующий, другой - неверсированный. Чтобы избежать потери истории файла, необходимо известить Subversion о том, что они связаны. Просто выберите оба файла: и со старым именем (отсутствующий), и с новым именем (неверсированный) и выполните → , чтобы обозначить эту пару файлов как переименование.
Диалог фиксации поддерживает группы изменений Subversion, предназначенных для группировки связанных файлов. Об этой возможности рассказывает «Группы изменений».
Иногда у вас есть версированные файлы, которые часто изменяются, но которые вы не хотели бы фиксировать на самом деле. Иногда это говорит о дефекте в вашем процессе сборки - почему эти файлы версированы? А не лучше использовать файлы шаблонов? Но иногда это неизбежно. Классическая причина - среда разработки изменяет пометку даты-времени файла проекта при каждой сборке. Файл проекта должен быть версированным, поскольку включает настройки для сборки, но его не нужно фиксировать только из-за того, что пометка даты-времени изменилась.
Чтобы помочь в затруднительных случаях вроде этого, была зарезервирована специальная группа изменений, называемая ignore-on-commit. Любой файл, добавленный в эту группу, не будет автоматически отмечаться в диалоге фиксации. Вы по-прежнему можете зафиксировать изменения в этом файле, но вы должны выбрать его в диалоге фиксации вручную.
Убедитесь, что ввели сообщение журнала, описывающее фиксируемые изменения. Впоследствии, при просмотре сообщений журнала проекта, это поможет вам увидеть, что и когда происходило. Сообщение может быть настолько длинным или коротким, как вы пожелаете; во многих проектах есть рекомендации о том, что должно быть в него включено, какой должен использоваться язык, а иногда в них даже задаётся строгий формат сообщения.
Вы можете применять простое форматирование в сообщениях журнала, используя соглашения, похожие на употребляемые в электропочте. Чтобы текст выглядел по-другому, можно использовать *текст* для жирного начертания, _текст_ для подчёркивания и ^текст^ для курсива.
В TortoiseSVN включена проверка правописания, чтобы помочь вам в написании грамотных сообщений журнала. Она выделяет любое неправильно написанное слово. Воспользуйтесь контекстным меню для доступа к предлагаемым исправлениям. Конечно, проверка правописания не знает каждый технический термин, который вы можете использовать, так что правильно написанные слова иногда могут показываться как ошибочные. Но не беспокойтесь - вы можете тут же добавить их в ваш персональный словарь при помощи контекстного меню.
Окно сообщения журнала включает также средство автозавершения имён файлов и функций. Оно использует регулярные выражения для извлечения имён классов и функций из (текста) фиксируемых файлов, а также самих имён файлов. Если слово, которое вы вводите, соответствует чему-либо в списке (после того, как вы набрали хотя бы 3 символа, или нажали Ctrl+пробел), появляется выпадающий список, позволяющий выбрать полное имя. Регулярные выражения, поставляемые вместе с TortoiseSVN, содержатся в папке bin установки TortoiseSVN. Вы можете задать собственные регулярные выражения и сохранить их в файле %APPDATA%\TortoiseSVN\autolist.txt. Конечно же, ваш частный список не будет перезаписан при обновлении установки TortoiseSVN. Если вы малознакомы с регулярными выражениями, взгляните на введение по адресу http://en.wikipedia.org/wiki/Regular_expression[2], а также на доступные в Сети документацию и учебный курс по адресу http://www.regular-expressions.info/.
Вы можете повторно использовать введённые ранее сообщения журнала: достаточно щёлкнуть на кнопку и появится список из нескольких последних введённых вами для этой рабочей копии сообщений. Количество сохраняемых сообщений может быть указано в диалоге настроек TortoiseSVN.
Вы можете очистить все сохранённые сообщения фиксации со страницы Сохранённые данные настроек TortoiseSVN, или же вы можете убирать отдельные сообщения непосредственно в диалоге Предыдущие сообщения журнала при помощи клавиши Delete.
Есть несколько специальных свойств для папок, которые предоставляют возможность более тонко настроить формат сообщений журнала и задать язык, используемый модулем проверки правописания. Прочтите раздел «Установки проекта» для дополнительной информации.
Если у вас подключена и действует система отслеживания ошибок, вы можете указать одну или несколько проблем в поле ввода ID ошибки / N проблемы. Если вводится сразу несколько проблем, то они должны быть разделены запятыми. Или, если вы используете основанную на регулярных выражениях поддержку системы отслеживания ошибок, просто добавьте упоминания проблем как часть сообщения журнала. Больше узнать об этом можно, прочитав «Интеграция с системами отслеживания ошибок/проблем».
После нажатия на появится диалог, отображающий ход выполнения фиксации.
Различные действия, производимые при фиксации, в окне выполнения обозначаются разным цветом:
Фиксация изменений.
Фиксация новых добавлений.
Фиксация удалений или перемещений.
Все другие элементы.
Это используемая по умолчанию цветовая схема, но вы можете настроить эти цвета в диалоге настроек. Для дополнительной информации смотрите «Настройки цветов в TortoiseSVN».
[2] Есть статья об этом и в русском разделе Википедии: http://ru.wikipedia.org/wiki/Регулярные_выражения - прим. переводчика