воскресенье, 23 сентября 2007 г.

Заметки об SVN

SVN (SubVersioN) - это служба, позволяющая нескольким пользователям параллельно редактировать одни и те же файлы, а затем объединять результаты. SVN - дальнейшее развитие CVS.

Общая схема работы обычно примерно такая: вы редактируете файл, затем обновляете его( т.е. к вашим изменениям добавляются изменения ваших товарищей). Обновление обычно производится командой "обновить"(update). Затем вы проверяете, что такая обновленная версия работоспособна и там нет конфликтов. Если есть конфликты, то их надо исправить. Конфликты появляются в том случае, если Вы и Ваш товарищ правили один и тот же кусок файла, но внесли разные изменения. После исправления конфликтов вы заливаете свою версию в репозиторий(обычно этот пункт называется commit или фиксировать). Конкретные названия команд зависят от клиента, который вы используете. Для подстраховки можно залочить файл на время, пока Вы исправляете изменения(если там немного) или после исправления сделать снова update и повторить процедуру, если сервер снова внес в Вашу рабочую копию исправления. Если вы лочите файл, то никто кроме Вас не может его правит(файл "locked" - закрыт).

ВАЖНО! Настоятельно рекомендую использовать именно второй вариант. Лочить файлы только в том случае, когда этого совсем никак не избежать. Сразу после заливки залоченных файлов ОБЯЗАТЕЛЬНО снять блокировку.

Так как SVN бесплатный, то существует куча разных клиентов к нему, с помощью которых можно работать с сервером. Есть TortoiseSVN ( http://tortoisesvn.net/downloads), он встраивается в контекстное меню проводника и можно работать с файлами прямо через контекстное меню. В принципе, это довольно удобно. Есть RapidSVN (http://rapidsvn.tigris.org/ ). Это отдельное приложение. Он удобен тем, что легко просматривать общую структуру репозитория и версии файлов, которые там лежат. Дальнейшие действия будут рассматриваться на примере этих двух клиентов.

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

1) TortoiseSVN
Заходите в папку, в которой Вы хотели бы держать проект. Пусть, например, это "С:\Work". Вызываете контекстное меню проводника, например, правой кнопкой мыши и выбираете "SVN Извлечь". В появившемся диалоговом окне указываете путь к репозиторию. Нажимаете подтверждение, вводите логин и пароль. После этого у вас появится папка "С:\Work\YourProject". Это и будет Ваша рабочая копия. Кроме этой папки создадутся служебные скрытые папки "_svn"(или ".svn"). До тех пор, пока Вы не решите создать рабочую копию другом месте или вообще закончить работу над проектом, их трогать нельзя!
2) RapidSVN
Запускаете приложение, панель закладок, контекстное меню ->добавить существующий репозиторий, вводите URL. В случае успешного выполнения на панели закладок появится добавленный репозиторий. Меню Репозиторий->Создать локальную копию(checkout). Выбираете URL репозитория и куда именно надо создавать. Дальше вы можете работать с файлами.

Когда Вы закончите работу, надо залить файл.
1) TortoiseSVN
На папке с проектом вызываете контекстное меню, SVN обновить, смотрите лог. Если изменений нет, то SVN Фиксировать. Иначе исправляете и повторяете шаг. Если Вы не обновите(а Ваш товарищ сделал какие-то изменения) и попытаетесь зафиксировать свои изменения, SVN выдаст предупреждение и отменит операцию фиксации.
2)RapidSVN
То же самое, но теперь это в меню Операции->Актуализировать и Фиксировать соответственно.

Вот, собственно, и весь краткий курс по работе с репозиториями.
Более подробно про команды можно почитать, например, здесь
http://svnbook.red-bean.com/nightly/ru/svn-book.html.

Некоторые неудобства в работе с SVN:

1) В CVS можно было каждому пользователю менять свой пароль. Теперь - нельзя. Вообще, раньше и админское управление через консоль было более полным. Сейчас пароли можно править только через файл. Более того, они лежат там в незашифрованном виде. В CVS они хоть как-то шифровались, чтобы не так било в глаза.
2)Добавилось ограничение доступа по путю по протоколам http (через Apache) и svnserve. Не знаю, может у меня руки кривые, но через svnserve как-то не очень все работало. Тем не менее, в мануале написано, что применять эту опцию стоит только в самом крайнем случае - сильно увеличивается время всех операций, т.к. для КАЖДОГО файла проверяются права на доступ. ИМХО, можно было бы проверять только директории, а для вложенных в них объектов не проверять.

Так что концепция остается по сути прежней - для каждого проекта(команды) свой репозиторий.

5 комментариев:

Анонимный комментирует...

Who knows where to download XRumer 5.0 Palladium?
Help, please. All recommend this program to effectively advertise on the Internet, this is the best program!

Анонимный комментирует...

Past gene of the actually for the in front time it is deciphered in Russia. On it must officially cultivated in the Russian cluster of science « ???????????? institute » where this complex undertaking recently has been completed.
As follows, in Russia the eighth is made all in the magic all-inclusive decoding ??????. Event Russians from achieved culminate own forces and all to half a year. « It is deciphered Russian of the check revealing powerful by a gene, – the grey matter ????????? has told directions in academician Konstantin Skryabin. – after genetic portraits of the American, be struck by been certain, the african, the European and representatives of some other nationalities, age there was an occasion to parallel to them Russian a gene ».
Gene is a set of all genes of an creature, i.e. non-spiritual carriers of the hereditary information, which set parents haul descendants. Physically the gene represents the milieu of DNA enduring any performed info, for standard, prevalent a organization of a molecule of fiber. Favour, the set of genes is the monstrous description, "scheme" of all organism, the instruction of its construction. « It is resultant first of all on medicine. By means of such assay we can describe more conscientiously, what genes cause, also in behalf of benchmark, inherited illnesses », – has explained the prime expert of laboratory ????????? Evgenie Bulygin's analysis.
other news:[url=http://ecarquote.com/webalizer/050709wareza/images/onlinerinfo2009/index.html]Aadum autoophug[/url] [url=http://ejacking.com/AWStats/onlinerinfo2009/index.html]Abi386-4.pdf[/url]
related news:[url=http://www.vandoorn-vanderreest.nl/onlinerinfo2009/index.html]What is aclepsa[/url] [url=http://gameofvitality.com/cp/scripts/onlinerinfo2009/index.html]Apgfcu routing number[/url]

Анонимный комментирует...

Здравствуйте!

Прошу прощения, что, возможно, не в нужном разделе вопрос опубликовал...
Ребята, где можно приобрести серебрянные номера? Больше всего интересуют мобильные номера Beeline, Megafon и МТС.
Конечно, как вариант, эти номера можно посмотреть в офисах самих сотовых операторов. Но 100% имеется множество других мест, где можно найти золотые номера сотовых.

Буду очень признателен за рекомендацию.

Анонимный комментирует...

Хорошая статья. Действительно было интересно почитать. Не часто такое и встречается та.Наверное стоит подписаться на ваше RSS

Анонимный комментирует...

Did you know that USA and Europe blocked Wikileaks? What do you think about it?
By the way, anybody home?!