SVN для чайников. Часть IV.

Работа с SVN свойствами

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

Разделение бинарных и текстовых файлов

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

Что бы все было корректно нужно указать SVN что данный файл это не текстовый файл и к нему нельзя применять методы обработки текстовых файлов. Делается это с помощью свойства svn:mime-type. Петя решил добавить к документации графический файл формата *.png (рис. 74). Для того что бы сказать SVN что этот файл не должен рассматриваться как бинарный, Петя в SVN свойствах файла (рис. 75) добавляет свойство svn:mime-type со значением application/octet-stream (рис. 76). После фиксации изменений в репозитории этот файл будет рассматриваться и обрабатываться как не текстовый файл.

Рис. 74. Состояние рабочей копии Пети после добавления графического файла checkout_0.png
Рис. 74. Состояние рабочей копии Пети после добавления графического файла checkout_0.png

Рис. 75. Вызов диалогового окна SVN свойств файла
Рис. 75. Вызов диалогового окна SVN свойств файла

Рис. 76. Диалоговое окно установки SVN свойства файла svn:mime-type
Рис. 76. Диалоговое окно установки SVN свойства файла svn:mime-type

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

Совет. Некоторые распространенные расширения файлов TortoiseSVN распознает и ставит svn:mime-type автоматически. Но лучше лишний раз проверить, чем потом выяснять, почему после слияния веток или устранения конфликта графический файл вдруг перестал открываться или бинарный файл прошивки процессора вдруг перестал работать.

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

У меня проекты в MPLAB (IDE

У меня проекты в MPLAB (IDE для PIC-ов). И эта самая MPLAB при каждом открытии\закрытии проекта вносит правки в файлы проекта (mcp и mcw), ничего при этом не спрашивая. Если исключить эти файлы из контроля, при чек-ауте их надо будет где-то доставать, что неудобно. А так, приходится после каждого открытия-закрытия делать откат правок или коммит, что тоже неудобно. Как бы это похитрее обойти?


des00 аватар

Добрый день!!! Прошу

Добрый день!!!

Прошу извинить, за столь долгое ожидание ответа. Работы вагон, что разгребать не успеваю :(

Да, бывают такие не адекватные IDE, в вашем случае вижу несколько решений :

1. Решение в стиле чисто хака, правда не знаю как к этому отнесеться MPLAB. Закрыть эти файлы для модификации средствами операционной системы. Если вдруг потребуется модифицировать, то атрибут read-only легко снимается.

2. Для commit использовать скрипты (например bat файлы под виндами), в них поставить автоматический откат на эти файлы.

 

Ссылочки

Статья шикарна, вставьте, пожалуйста ссылки на предыдущие статьи, а ещё лучше соберите в PDF'ку.

Очень хорошая статья.

Очень хорошая статья. Разобрался с SVN-ом быстро. Спасибо

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <p> <span> <s> <strike> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <caption> <tbody> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike>
  • Использовать как разделитель страниц.

Подробнее о форматировании