четвер, 4 жовтня 2012 р.

Work with svn


How work with svn:

_filename - точний шлях до файлу над яким хочем провести дію
_repository - адрес до репозіторию де зберигаються файли

Основні команди:
Забираєм дані з сервера:
svn checkout _repository

Забираєм дані з сервера певної ревизії:
svn checkout _repository -r 42


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

Запланировать файл, каталог или символьную ссылку foo для добавления в хранилище.
svn add _filename

Запланировать удаление из хранилища файла, каталога или символьной ссылки foo.
svn delete _filename


svn update
A  newdir/_filename.c
A  newdir/_filename.c
A  newdir/_filename.c
D  newdir/_filename
Updated to revision 32.
При командной работе над проектом обновление рабочей копии необходимо для получения любых изменений, внесенных другими разработчиками проекта с момента вашего последнего обновления. Используйте svn update для синхронизации вашей рабочей копии с последней правкой в хранилище.

Надає можливість переглянути інформацію по проекту, та хто останній комітив...
svn info

Команда svn commit надсилає всі ваші зміни в репозиторій. При фиксации изменений необходимо описать ваши изменения в тексте лог-сообщения.
svn commit -m "[SB]added howto section."
Sending        _filename
Transmitting file data .
Committed revision 3.

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


Для того щоб переглянуті історію 10 комітів "-l -10"
svn log -l -10


Повертаєм файлік якщо ми його видалили або щось не те змінили.
1) svn revert ____.xcodeproj/project.pbxproj
2) svn up _filename
3) svn up -r249 _filename

Створюєм копію бранча:
1) svn co https://subversion.assembla.repository/trunk folderName - робим копію транка для створення бранча
2) svn copy https://subversion.assembla.com/svn/repository/trunk https://subversion.assembla.com/svn/repository/branches/sb_29.04.2013 -m 'Create private branch.' - копіюєм зміни в потрібний нам бранч
3) svn switch https://subversion.assembla.com/svn/ukrmedia-ios/branches/sb_29.04.2013 - Переходим в потріюний нам бранч

Для отриманння змін з транка
svn merge ^/trunk


svn copy http://__Instruct-OR/trunk   http://__/Instruct-OR/branches  m  '[SB] creating a private branch of IOR'
svn checkout http:/__/Instruct-OR/branches

Детальний опис можна знайти тут: http://svnbook.red-bean.com/en/1.5/svn.branchmerge.using.html




Краткий справочник svn (subversion)

svn checkout http://repository.url/svn/name — извлекаем файлы проекта из репозитория, сокращение: svn co;
svn update — получаем обновления из репозитория, сокращение: svn up;
svn update -r rev_num ./file_name — извлекаем ревизию файла с номером rev_num;
svn add ./file_name — добавляем файл в репозиторий (не важно текстовый или бинарный);
svn commit ./file_name — заливаем файл в репозиторий (не важно текстовый или бинарный);
svn rename ./old_file_name ./new_file_name — переименовываем файл в репозитории;
svn remove ./file_name — удаляем файл/директорию из репозитория;
svn status — просматриваем локально измененные файлы, сокращение: svn st;
svn status -u — просматриваем локально измененные и изменившиеся в репозитории файлы, сокращение: svn st -u;
svn diff ./file_name — показывает локальные изменения в файле построчно;
svn diff -r rev_num1:rev_num2 ./file_name — показывает различия между ревизией rev_num1 и rev_num2 файла;
svn revert ./file_name — откатывает локальные изменения файла (выгружает из репозитория последнюю закоммиченную ревизию);
svn revert -R ./ — откатывает все локальные изменения файлов;
svn log ./file_name — список ревизий с комментариями;
svn blame ./file_name — показывает авторов изменений файла построчно, синоним: svn annotate;
svn propset svn:ignore ./file_name . — добавляем файл в список игнорируемых файлов;
svn propset svn:keywords "Id Author Date" ./file_name — установка атрибутов файла;
svn cleanup — снимает блокировки с файлов;
svn unlock http://repository.url/svn/file_name — снять блокировку файла (URL можно узнать с помощью команды svn info ./file_name | grep URL, его и нужно передавать в svn unlock);
svnadmin setlog --bypass-hooks /path/to/repository -r rev_num ./commit_text_file — заменяет текстовое описание коммита, где rev_num — номер ревизии, commit_text_file — путь к файлу, содержащему новый комментарий к коммиту;
svn help command_name — выводит помощь по команде command_name, например, «svn help update»;
svn merge -r rev_to_rollback:rev_good ./file_name — откатываем ревизию номер rev_to_rollback до ревизии rev_good, причем все изменения старше rev_to_rollback сохраняются (Например, у файла есть ревизии 11,12 и 13. Хотим откатить 12-ую ревизию, но так, что бы изменения 13-ой остались в силе. Делаем тогда так: svn merge -r 12:11 ./file_name);
svn copy http://repository.url/svn/name/trunk/ http://repository.url/svn/name/branches/new_branch_name/ — создаем ветку с названием new_branch_name из главной линии разработки;
svn merge --dry-run -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — проверяем, что будет изменено при объединении веток, где rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
svn merge -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ — синхронизирует вашу ветку с главной линией разработки с учетом ревизий: rev_num1 — номер ревизии, когда ваша ветка была «открыта», или это м.б. номер предыдущего объединения (слияния), rev_num2 — версия главной линии разработки, с которой производим объединение. Необходимо отметить, что все изменения будут применены для директории, в которой выполнялась эта команда;
Полную документацию по subversion на русском языке можно посмотреть по ссылке «Управление версиями в subversion».
Если вы нашли ошибку на этой странице, сообщите о ней, пожалуйста, по адресу k.s.scheglov@gmail.com.
Спасибо!

Немає коментарів:

Дописати коментар