Установка и настройка svn, apache, trac для windows. часть 2

Использование Subversion

Для создания корневого каталога для проекта или просто репозитория достаточно выполнить несколько несложных команд:

$ cd /home/svn$ mkdir repositories$ cd repositories$ svnadmin create techdocs$ chmod 700 techdocs

Приведённая последовательность команд создаёт поддиректорию repositories в служебной директории svn каталога /home. Команда svnadmin create techdocs создаёт проект (точнее его корневой каталог) для совместного использования — techdocs.

Теперь можно запустить сервер Subversion для созданного хранилища:

$ svnserve --daemon --root /home/svn/repositories

Теперь можно подключиться к репозиторию, создав локальную копию его содержимого:

$ svn checkout --username john svn://someserver.repo.org/techdocs checkoutAuthentication realm: <svn://someserver.repo.org:3580> The Sysadmin RepositoryPassword for 'john': <password>

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

$ cd checkout$ vi doc1.txt$ svn add doc1.txt

Для фиксирования сделанных изменений необходимо сделать коммит локального проекта в удалённое хранилище. Т. е. иными словами — синхронизацию проекта с записью истории изменений:

$ svn commit -m "Initial checkin; added doc1.txt"

При этом, если не указывать опцию -m явно (для добавления комментария для коммита), то Subversion автоматически запустит текстовый редактор для редактирования сопровождающего сообщения. Перечислять все новые и изменённые файлы нет смысла (хотя такая возможность есть), поскольку Subversion сделает это самостоятельно — в этом его основная задача.

Для того, чтобы получить актуальную копию проекта нужно выполнить внутри проекта команду:

$ svn update

При этом все файлы локальной копии будут объединены с файлами из удалённого хранилища согласно актуальным изменениям. А также при условии отсутствия конфликтов. Файлы, имеющие конфликты, будут иметь метку «conflicted». Такие файлы не регистрируются для синхронизации с главным хранилищем до устранения всех конфликтов. Когда конфликты решены, следует сообщить об этом системе:

$ svn resolved doc1.txt

Также есть возможность узнать у Subversion, какие файлы, кем и в какое время модифицировались. Для этого нужно дать команду:

$ svn blame doc2.txt

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

Если же нужно узнать об изменениях в рамках конкретного периода времени. Например с 27 июля 2018 г., то нужно воспользоваться следующей командой:

$ svn diff -r "{2018-07-27}" foo.с

Compatibility concerns

Local Client Compatibility

Subversion working copies are sometimes accessed using several different clients, e.g. TortoiseSVN, AnkhSVN, and the SVN command line client. Because the working copy format has changed with this release, 1.7 clients cannot access an earlier working copy without first upgrading it. Pre-1.7 clients cannot access 1.7 working copies at all and there is no downgrade option.

Migrating to 1.7 working copies must be considered a one-way operation. If you need to use multiple clients on the same working copy then be sure that you can update all the clients before upgrading the working copy.

Client Server Compatibility

Older clients and servers interoperate transparently with 1.7 servers and clients. That is to say, you can use a 1.7 client with an older server, and you can use a 1.7 server with older clients. However, some of the new 1.7 features may not be available unless both client and server are the latest version. There are also cases where a new feature will work but will run less efficiently if the client is new and the server old.

New Feature Compatibility Table

New Feature Minimum Client1 Minimum Server Minimum Repository Notes
1Reminder: when using the repository access method, the Subversion program is both the client and the server.
1.7 1.7 any Permutations of older client/server combinations will continue to function at the pre-1.7 feature level.
1.7 any any 1.6 working copies cannot be used with 1.7 and will not be upgraded to the new 1.7 format automatically.

CentOS-6-amd64

Установка apache

yum install httpd

Сделаем, чтоб он запускался при загрузке системы

chkconfig httpd on

Запускаем

service httpd status

Установка и настройка SVN

Установка:

yum install mod_dav_svn subversion

Создадим директорию, которая и будет репозиторием

mkdir -p /svn/repo && cd /svn/repo

В ней создадим репозитарий myrepo и выставим правильного владельца его директории

svnadmin create myrepo
chown -R apache.apache myrepo

Настраиваем веб-сервер для работы с svn. В файле /etc/httpd/conf.d/subversion.conf должно содержаться следующее:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /myrepo>
DAV svn
SVNPath /svn/repo/myrepo
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth
Require valid-user
#   </LimitExcept>
</Location>

Создаем файл web-авторизации и задаем пользователя и пароль:

htpasswd -mbc /etc/svn-auth svn-adm ВАШ_ПАРОЛЬ_ТУТ

Проверяем — IP-адрес_сервера/myrepo набираем в браузере

Если не можете подключиться из браузера по адресу IP-адрес_сервера/myrepo, то проверьте iptables

iptables -nL

возможно увидите правила:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

сбросьте их:

iptables -F

Полезная информация и примеры для работы с SVN в CentOS здесь

working copy metadata storage improvements

Subversion 1.7 features a complete re-write of the working copy metadata management system of Subversion, code named WC-NG. You can find out more about this new format in the .

Centralized Metadata Storage

A key feature of the changes introduced in Subversion 1.7 is the centralization of working copy metadata storage into a single location. Instead of a directory in every directory in the working copy, Subversion 1.7 working copies have just one directory — in the root of the working copy. This directory includes (among other things) an SQLite-backed database which contains all of the metadata Subversion needs for that working copy.

Even though the data is stored in a structured format, the relationships between the data are complex. We highly discourage external tools from modifying the data held in this database, as such modification is likely to result in working copy corruption.

Upcoming Releases ¶

The following is a preliminary timetable for the next few
upcoming releases. Dates, feature deliverables, and even version
numbers found in this list are all subject to change (and become
increasingly more speculative the further out we attempt to
project). Fortunately, the same dynamics that allow features to
fall out of releases or for release dates to slip also allow for
feature and release acceleration. That’s the nature of
open-source, community-driven software projects (and we think it’s
a great thing). So if you don’t like what you see here, do
something about it: your
contributions are always welcome!

Date Release Deliverables / Notes
2019-10 Release 1.13.0
2020-04 Release 1.14.0 LTS

Third party libraries

When there are third party libraries stored in the working copy directly, i.e., not via the property, then updating those is not quite easy.

Just copying over the new version will work of course, but if the new version has files removed, those files will still be in your working copy.

In version 1.8 TortoiseSVN offers an easier way to do this: just right-drag the folder with the new version of the library to the version stored in your working copy, then select SVN vendor branch here from the context menu.

TortoiseSVN then scans both directories, copies all new files, removes files that are not present anymore in the new version.

Using Subversion to download MediaWiki

Download

$IP stands for the Installation Path (or «directory») of your MediaWiki installation, the same directory that holds LocalSettings.php, index.php etc..

You can download from any branch and module (before MediaWiki 1.18.2) in MediaWiki SVN.

  • Modules: The two modules important to web applications are phase3 (the main application) and extensions (extension code).
  • Branches: Named release branches use the naming scheme REL$1_$2, where $1 is the MediaWiki version, $2 is a major version and $3 is a minor revision. For example, version 1.6.3 is branch , the latest 1.6 is , 1.5.8 is , and the latest (untagged) would be .

To download from the latest 1.35 release (recommended), use Git, not Subversion. To get MediaWiki 1.18.1 (not recommended) enter the following command from the command-line in the directory you wish to download to:

svn checkout http://svn.wikimedia.org/svnroot/mediawiki/branches/REL1_35/phase3

Alternately, you can download the last development version left behind in subversion using the following command:

svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

To get the latest skins directory (as of MediaWiki 1.18.1) including the Vector skin, use this line:

svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/skins

To check out an extension like Extension:TitleKey to your folder «$IP/extensions/TitleKey»:

cd $IP/extensions
svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/TitleKey TitleKey

Using TortoiseSVN

  • Go to Windows Explorer (hit WIN+E or right-click on the Start button and click Explore), and create a new folder in a location of your choice. You may want to name it something like «MediaWiki Repository.»
  • Right click on that folder and TortoiseSVN -> Create repository here.
  • Right click on that folder again and click SVN Checkout; DO NOT CLICK «IMPORT».
  • For the «URL of repository,» put http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/
  • The checkout directory should automatically populate to the mediawiki subfolder of your repository folder.
  • Click OK.

Upgrading and downgrading

Upgrading between releases with SVN is simple. If you have direct access to the command-line on the server, you can enter the commands below directly; alternatively, you can maintain a copy on a local machine and upload updated versions to the server.

To upgrade MediaWiki, simply use the command below in the root of the installation directory. Note that this will upgrade to the latest version of the current major version. If you are using MediaWiki 1.6, this will upgrade to any version 1.6.x, but not to 1.7:

svn update

To upgrade to another release branch (version 1.7 in the example below) or to switch between individually-selected version tags, you can use the «switch» command (substituting the appropriate versions):

svn checkout http://svn.wikimedia.org/svnroot/mediawiki/tags/REL1_6_2/phase3
svn switch http://svn.wikimedia.org/svnroot/mediawiki/tags/REL1_7_3/phase3

Шаг 4. Настройка Apache.

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

Откройте в любом текстовом редакторе файл «%PROGRAMFILES%\CollabNet\Subversion Server\httpd\conf\httpd.conf«, где «%PROGRAMFILES%\CollabNet\Subversion Server\» — это путь установки svn-серверов. В конце файла httpd.conf найдите следующие строки:

DAV svn
SVNParentPath C:\svn_repository

и замените на такие:

DAV svn
SVNPath C:\svn_repository

AuthType Basic
AuthName "Subversion repository"
AuthUserFile C:\svn_repository\conf\appswd
Require valid-user

Здесь с:\svn_repository — путь к репозиторию svn. Измените в соответствии с Вашими настройками.

Теперь нужно создать файл паролей Apache. Для этого откройте командную строку Windows («Win+R» — «cmd.exe«) и выполните следующие команды:

cd "%PROGRAMFILES%\CollabNet\Subversion Server\httpd\bin"
htpasswd -cmb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_1 ПАРОЛЬ
htpasswd -mb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_2 ПАРОЛЬ
...
htpasswd -mb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_N ПАРОЛЬ

Внимание! Параметр -cm нужно указывать только при первом создании пользователя, т.к. он перезаписывает имеющийся файл

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

В качестве ЛОГИН_ПОЛЬЗОВАТЕЛЯ нужно указать все логины пользователей, указанные в файле passwd. Пароли также должны быть идентичны.

Настройка SVN over Apache 2 была успешно завершена. Теперь нужно перезапустить сервер командами консоли Windows:

net stop CollabNetSubversionApache
net start CollabNetSubversionApache

Протестировать сервер можно так: http://127.0.0.1:ПОРТ/ в любом веб-браузере. Будет запрошен логин и пароль для доступа к репозиторию.

Получаем доступ к репозиторию

В качестве примера я буду рассматривать получение доступа к нашему репозиторию, который располагается на
Распишем все операции по шагам.

1. Регистрация на GitHub’e.

Профиль на GitHub.com

2. Генерируем ключ для доступа по SSH.
Вот тут хочешь-не хочешь, а надо запускать консоль. После установки msysgit у Вас на рабочем столе появился новый ярлык – Git Bush – вот с помощью него и запускаем консоль.

  1. Набираем в консоли следующую команду
  2. На экране появится запрос “Enter file in which to save the key”. Пока оставим значение по умолчанию. Жмем Enter.
  3. Нас попросят ввести пароль. Эту часть тоже пропускаем – впоследствии пароль можно будет установить, а пока – учимся. Жмем опять Enter.
  4. Сгенерируются два файла один из которых – публичный ключ для доступа.

Если Вы все делали с настройками по умолчанию то файлы будут располагаться в директории:

Заходим в директорию, открываем с помощью “Блокнота” файл ida_rsa.pub и копируем все его содержимое в буфер обмена.

3. Заносим публичный ключ доступа в профиль.

Для записи публичного ключа в профиль:

  1. Заходим в свой профиль github и жмем ссылку Account Settings (сверху)
  2. Выбираем пункт “SSH Public Keys”
  3. Жмем ссылку “Add another public key”

Перед вами появится форма добавления нового публичного ключа. Вставляем из буфере весь скопированный ранее текст (из файла ida_rsa.pub) только в поле key – поле Title оставляем пустым.

На этом работа с публичными ключами закончена.

4. Просимся в проект.

Шаг 1. Установка сервера.

После скачивания файла CollabNetSubversion-server-1.6.9-1.win32.exe (18,44 МБ), запускайте его и следуйте указаниям мастера. Мастер выполнит несколько шагов. Рассмотрим все шаги мастера по порядку:

Приветствие мастера. Сразу жмите «Next«.
Предложение прочитать онлайновый ReadMe. Жмите «Next«.
Выберите компоненты, которые нужно установить: svnserve (собственно svn-сервер (устанавливать обязательно)) и Apache (устанавливайте только если хотите разрешить доступ к своим репозиториям из Интернета через обычные браузеры). Выбрав нужные компоненты, переходите к следующему шагу.
На этом шаге предлагается выбрать порт для svn-сервера (настоятельно рекомендуется использовать стандартный 3690) и указать путь, где будут храниться репозитории (рекомендуется стандартное значение c:\svn_repository). Флажок в строке «Install svnserve to run as Windows service» позволит автоматически запускаться svn-серверу при запуске Windows (рекомендуется не снимать отсюда флажок)

Внимание! Этого шага не будет, если на шаге 3 Вы не выбрали компонент svnserve.
Теперь предлагается настроить Apache если Вы его выбрали на третьем шаге мастера установки.

Host/Server name — имя сервера. Рекомендуется оставить localhost.

Host Port — порт, на котором будет находиться Apache

Рекомендуется либо стандартный 80, либо 8080.

Install Apache to run as Windows service — позволяет Apache запускаться вместе с Windows.

Repository Path — путь к svn-репозиторию. Укажите то же значение, что Вы указывали на шаге 4. Рекомендуется стандартное значение C:\svn_repository.

Repository Location Prefix — префикс, по которому будет доступен svn-репозиторий. Пример: http://localhost:80/svn/. Если Вы будете использовать установленный Apache только для репозиториев svn, установите в этом поле лишь слэш ««, в противном случае оставьте стандартное значение /svn.

Выберите каталог для установки набора серверов и нажмите «Install«.
На этом шаге предлагается включить уведомления о новых версиях программы. Рекомендуется снять все флажки.
Нажмите «Finish«. Установка завершена.

Настройка uWsgi

Поскольку на этапе конфигурирования мы выбрали для инсталляции cSvn CGI-скрипта каталог /var/www/htdocs/csvn/, файл /etc/uwsgi/csvn.ini должен ваглядеть следующим образом:

/etc/uwsgi/csvn.ini:

Здесь переменная cgi устанавливает полное имя CGI-скрипта cSvn.

Для запуска uWsgi демона на системах с BSD-like инициализацией, такой как Slackware, необходимо создать start/stop скрипт следующего вида:

/ets/rc.d/rc.csvn-uwsgi:

Дать ему права на выполнение

и добавить следующие строчки в файлы /etc/rc.d/rc.M, /etc/rc.d/rc.6, соответственно:

/etc/rc.d/rc.M:

/etc/rc.d/rc.6:

Заключительная настройка

Все необходимые файлы для работы на стороне web-клиента находятся в каталоге /var/www/htdocs/csvn/.csvn/. Редактируя файл /.csvn/html/header.html и меняя значения переменных в файле /etc/csvnrc, пользователь может сменить favicon.ico, поменять тему подсветки синтаксиса, выбрать изображения для собственных репозиториев, задать ключевые слова для поисковых систем, а также выполнить множество других настроек своего сервера.

Внешний вид интерфейса определяется единственным CSS-файлом и поэтому, пользователь может поменять тему web-интерфейса так, как ему будет необходимо.

Работа с утилитой Log Viewer

Утилита Log Viewer, запускаемая после нажатия на кнопку «Show log…«, либо при нажатии правой кнопкой по свободному месту в локальной рабочей копии — «TortoiseSVN» — «Show log«. По умолчанию утилита показывает последние 50 ревизий и их описаний (если во время коммита они были введены). Все основные действия выполняются из контекстного меню ревизии:

  • «Compare with woking copy» — сравнить текущую (выделенную) ревизию с локальной рабочей копией. Список изменений будет показан в Tortoise Merge.
  • «Show changes as unified diff» — показать изменения выделенных ревизий как унифицированный патч-файл (unified diff). Если выделена только одна ревизия, то она будет сравниваться с предыдущей (например, выделена ревизия 87, она будет сравниваться с 86).
  • «Compare with previous revision» — показать изменения выделенной и предыдующей ревизии. Будет отображено окно с различающимися файлами, двойной щелчок по файлу откроет его в Tortoise Merge для просмотра изменений.
  • «Compare and blame with previous revision» — то же, что и предыдущее, но здесь отображается кто и когда внёс какое-либо изменение в файл построчно.
  • «Browse repository» — открывает описанный выше Repository Browser для прямой работы с репозиторием.
  • «Create branch/tag from revision» — позволяет создать ветку или тег из выделенной ревизии (см. выше).
  • «Update item to revision» — обновляет до выделенной ревизии.
  • «Revert to this revision» — позволяет откатиться до выделенной ревизии.
  • «Revert changes from this revision» — позволяет откатить все изменения, сделанные в выделенной ревизии.
  • «Merge revisions to…» — позволяет объединить несколько ревизий в рабочую копию.
  • «Checkout…» — скачать выделенную ревизию (см. выше).
  • «Export…» — извлечь выделенную ревизию без служебных каталогов.
  • «Edit author» — редактировать имя автора выделенной ревизии (нужны права администратора).
  • «Edit log message» — позволяет редактировать текст описания выделенной ревизии (нужны права администратора).
  • «Show revision properties» — показать свойства выделенной ревизии.
  • «Copy to clipboard» — скопировать номер выделенной ревизии, автора, описание и список изменённых файлов в буфер обмена Windows.
  • «Search log messages» — запустить поиск в описаниях ревизий.

Кнопка «Show all» покажет все ревизии, а «Show range…» позволит задать диапазон ревизий, которые будут отображаться в окне Log Viewer.

Кнопка «Statistics» отображает различную статистическую информацию: наиболее активный и наименее активный автор, количество изменений в репозитории в неделю, общее количество изменений и т.д.

Работа со своим первым репозиорием Git

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

Итак, выбираем директорию на жестком диске где мы будем хранить все файлы. Далее действуем следующим образом:

1. Вызываем контекстное меню и выбираем пункт “TortoiseGit — Settings“:

В появившемся окне переходим сразу к пункту “Git – Config” и записываем свое имя и адрес электронной почты. Эти данные должны в точности совпадать с теми, что записаны в Вашем аккаунте на github, иначе ваш ключ просто не подойдет.

2. Клонируем репозиторий. Для этого заходим на страницу проекта, и копируем в буфер адрес:

Теперь жмем правой кнопкой мыши на директории, в которой будем хранить исходники и в меню выбираем “Git Clone..“:

В открывшемся окне в поле URL вставляем скопированный адрес и жмем “Ok”:

Начнется процесс клонирования репозитория.

Всё вышесказанное можно было бы заменить всего двумя командами в консоли:

После клонирования репозитория Вы автоматически переключитесь на нашу главную ветку (master). Так как каждый из нас занят определенной работой в проекте, то у каждого своя ветвь в репозитории, поэтому и Вам придется создавать свой branch. Делается это достаточно просто.

3. Создаем свою ветку. Для этого жмем правую кнопку мыши на директории в которую мы клонировали репозиторий и выбираем в меню “TortoiseGit — Create Branch“:

В открывшемся оке задаем название новой ветки и указываем на основании какой ветки репозитория мы будем создавать новую. Жмем “Ок”, подтверждая создание ветки. Теперь переключаемся на свой новый branch.

Выбираем в меню “TortoiseGit – Switch/Checkout…“:

В открывшемся окне выбираем нашу новую ветку и жмем “Ок”. Убеждаемся, что мы успешно переключились:

По сути, все что касалось создания нового branch’a в консоли решилось бы всего одной командой:

4. Программируем. Теперь, когда мы все настроили – открываем необходимый проект в Delphi, вносим свои коррективы, изменяем модули и т.д. В общем ведем нормальную плодотворную работу с проектом.

5. Вносим изменения в репозиторий. После того как внесены какие-то изменения нам необходимо их закрепить в Git. И здесь опять же проявляется отличие этой системы контроля версий от того же SVN. Дело в том, что Commit в Git не сбрасывается сразу на сервер. Для того, чтобы внести изменения в удаленный репозиторий используется команда PUSH. В общем виде работа может быть построена следующим образом:

1. Вносятся изменения в проект

2. Изменения закрепляются в вашем локальном репозитории, используя команду Commit в меню или, используя консоль:

3. Когда Вам необходимо/удобно/требуется закрепить все изменения на сервере выполняем push в свою ветку (brunch). Команда консоли выглядит так:

Здесь стоит, наверное рассмотреть весь процесс на деле. К примеру, мы решили добавить в проект простой текстовый файл с описанием чего либо. Создаем файл, записываем в него данные и добавляем файл в индекс.

Для этого выбираем новый файл, вызываем меню и выбираем “Add…”:

По рисунку можно видеть, что я вношу в индекс новый файл text.txt. Жмем “Ok”.

После того как файл добавлен, можно сразу же сделать Commit – кнопка Commit появится в окне с выводом консоли. Жмем её и откроется окно для внесения Commit’a:

Заполняем поле с описанием, жмем “Ок”  и коммит готов. Если хотите сразу отправить эти изменения в репозиторий, то в окне с выводом консоли появится также кнопка PUSH. Если же Вас не устраивает таскать по 1 файлику туда-сюда или изменения столь незначительны, что их нет смысла отправлять на сервер, то просто продолжаете дальше кодить, а push выполним позднее.

Чтобы выполнить команду push можете поступить следующим образом:

1. Зажимаем Shift и вызываем контекстное меню. В меню должны появится дополнительные команды:

Выбираем команду Push. Перед Вами откроется окно следующего содержания:

Все, что от Вас требуется на данном этапе – нажать на кнопку (на рисунке она выделена красным) найти в списке удаленную ветку в которую вы делаете push и два раза нажать Ok. Все изменения, произведенные Вами в локальном репозитории отправятся в Сеть.

Использование систем контроля версий Получение справочной информации Subversion (SVN)

Справочная информация по командам svn может быть получена обращением к самой утилите svn через команду svn help. Введя эту команду в консоли, вы получите полный список всех команд поддерживаемых текущей версией утилиты svn. Для получения информации по конкретной команде надо добавить ее после help. Например:

Subversion (SVN)

Продумаем размещение и выберем имя для директории будущего репозитория SVN. При этом подумайте о правах доступа, если репозиторий будет разделяемый. Для простоты я
сделаю репозиторий в своем домашнем каталоге /home/knz с именем 0-svn-repository. Имя начинающееся с нуля предоставит дополнительный приоритет для данной директории для
многих типов сортировок при выводе списка директорий и такая директория не затеряется в окружении многих других директорий домашнего каталога.

Находясь в домашней директории выполним команду.

svnadmin create 0-svn-repository

Репозиторий создан. Пустой репозиторий имеет нулевой номер ревизии. Теперь в него можно добавлять проекты для управления. Дальнейшая последовательность действий может быть такая.

  1. Создадим где-нибудь начальный оригинал будущего проекта.
  2. Выполним импорт этого оригинала проекта в репозиторий SVN с помощью команды svn import.
  3. Оригинал проекта теперь стратегического смысла не имеет и его можно удалить.
  4. Создаем рабочую копию проекта из репозитория SVN с помощью команды svn checkout.
  5. Работаем с рабочей копией, вносим в нее изменения. Чтобы зафиксировать изменения необходимо передать их в репозиторий SVN с помощью команды svn commit. При
    этом, в репозитории проекта, будет создана очередная по счету ревизия.

Игнорирование файлов SVN
Сделать файл list с именами или масками, разделённые переводом строки
$ svn propset ‘svn:ignore’ -F list

Feedback/Contributing

For feedback on the book or this website, contact
svnbook-dev@red-bean.com
.
If you have spotted errors in the book (O’Reilly’s hardcopy or
otherwise), please do the following things:

  1. Check our issue/ticket tracker to see if someone else has already reported the
    same problem. If so, there’s nothing else to do, unless you wish
    to contribute a patch which fixes the problem (see below).
  2. Check the XML sources to see if the problem still exists. You can
    grab these using Subversion itself, by checking out the trunk of our
    Subversion repository at
    https://svn.code.sf.net/p/svnbook/source/trunk/.
    If the problem is present in the latest book sources, please
    report the problem to the mailing list above or file
    a new
    ticket.
  3. If the problem is in the published second edition book, check O’Reilly’s
    errata
    page for the book, and report the error there if it hasn’t
    already been reported.
Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий