Янв
11
2010

Начало работы с SVN (checkout, update, status, ignore, log)

Возникла необходимость научить свеого друга пользоваться svn. И я ему начал писать  письмо с кратким экскурсом по основным командам. Полчился, на мой взгляд, неплохой пост для краткого ввдения в то, как начать пользоваться svn. Далее и привожу этот экскрус по основным консольным командам svn. Я затронул вот такие моменты: checkout, update, status, ignore, log

При работе с SVN тебе дают просто ссылку (у нас например просто в примечаниях к проекту она указывается и всё) на репозиторий или какой-то конкретный путь в репозитории. Например

http://example.com/svn/projectname/some/path

Тут projectname – это название репозитория, а some/path – это уже путь внутри репозитория.

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

svn checkout

Ну вобщем раз у тебя есть ссылка, то ты должен забрать данные из репозитория. Для этого воспользуйся командой «svn co» Почитай «svn help co»

Причём заметь: для примера требуемые файлы находятся не сразу в папке some/path, а в еще одной (например, html). Т.е. возможно тебе не захочется, чтобы в твоей файловой системе по пути к main.html была лишняя папка. тогда ты можешь просто делать чекаут другого немного пути: http://example.com/svn/projectname/some/path/html

Ну и checkout ты будешь делать так:
svn ci http://example.com/svn/projectname/some/path/html/ .

Кстати обрати внимание на второй параметр у svn co ;)

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

Идём далее.

svn:ignore

В svn не принято хранить всякие «шлаковые» файлы. Например при работе над проектом в zend автоматически в папке проекта создаются файлы .settings, .buildpath и тд. В этимх файлах хранятся настройки среды разработки для тебя лично. И другим людям, кто будет забирать данные из этого же репозитория эти файлы не нужны, а скорее будут мешать. Так же не принято в svn хранить конфигурационные файлы проекта, которые индивидуальны для разных копий. Ну например файл с конфигурацией с доступом к базе данных.

Вобщем таких файлов быть не должно в svn. для этого ты должен проставить на них игнор. Выглядит это примерно так:

svn pedit svn:ignore . — для выставления игноров на текущую папку
svn pedit svn:ignore ./folder/ — для выставления игноров на папку folder, которая находится в текущей папке.

Тут pedit – это команда для редактирования опций (properties edit) (глянб также pget, pset, pdel), а svn:ignore – это опция, которую мы редактируем (есть и другие). И далее следует параметр – это для какой папки будем указывать опцию. Точка – это текущая папка.

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

svn status

И проверяешь командой
svn status
Если всё хорошо, то файлов, на которые ты выставил игноры ты не увидишь.

svn commit

Теперь осталось зафиксироваться (закоммитить) изменения на сервере. для этого выполняй:

svn ci -m «проставил игноры на ненужные файлы и папки»

ну вот и всё с игнорами.

когда что-то поредактировал и хочешь слиться с сервером делай коммит. и пиши пояснительные сообщения, чтобы было понятно что ты делал. лучше сразу привыкай к такому стилю.
svn ci -m «сверстал верхнюю менюшку»

Так же ты просто можешь написать svn ci и тогда тебе откроется текстовый файл на редактирование, где в верхней части ты можешь написать своё пояснение (тут кстати можно и в несколько строчек писать). Затем закрываешь файл и происходит коммит.

svn update

Если кто-то другой сделал изменения и тебе надо их получить, то пиши svn up

svn log

Так же ты можешь посмотреть лог (т.е. кем и когда были сделаны коммиты и что было написано в сообщении (-m «блабла»))
svn log -l 5

Тут флаг -l используется для установки ограничения (limit) на количество записей, которые ты хочешь посмотреть. Лучше всегд используй лимит. Иначе ты будешь получать список всех ревизий. А если их будет 100 или 1000? )

Ну вот вроде бы и всё. Вопросы? )

tags: ,
posted in svn by yas

Follow comments via the RSS Feed | Оставить комментарий | Trackback URL

6 Comments to "Начало работы с SVN (checkout, update, status, ignore, log)"

  1. lest wrote:

    Если нужно, то могу написать что-то подобное про Git.

  2. yas wrote:

    эмм, ну для меня это актуально, ты же знаешь ;)

  3. alex wrote:

    Не совсем понял такой момент.
    Вот я скачал репу, добавил/изменил файл. Как мне его на сервер обратно отослать?

  4. alex wrote:

    Точнее вопрос, как чтобы он автоматом подхватил новые файлы\директории, а не по одному добавлять ?

  5. yas wrote:

    пиши:

    svn add . --force

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

    svn add source/ --force

  6. duBackup wrote:

    Отлично, но наверное, сегодня дочитать не успею, добавил в избранное.

Leave Your Comment