понедельник, 27 мая 2013 г.

Обучающее руководство по работе с SVN

Показ подсказки по командам SVN

svn help

Создание локального репозитория SVN

1. Создание папки репозитория SVN

mkdir versions
cd versions
mkdir svn

2. Создание репозитория внутри папки

svnadmin create /home/dovsyannikov/Work/versions/svn

3. Создание папки проекта

mkdir project
cd project

4. Создание структуры папок для хранения проекта внутри репозитория (на самом деле структура файлов может быть любой)

mkdir brunches
mkdir tags
mkdir trunk

5. Добавление папки с файлами проекта в структуру папок для репозитория

cd trunk
mkdir dir1
touch index.html

6. Первоначальный иморт всей структуры папкок внутрь репозитория SVN

svn import /home/dovsyannikov/Work/versions/project file:///home/dovsyannikov/Work/versions/svn -m "Initial commit"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Изменение структуры папок внутри локального репозитория

Добавление папки внутрь репозитория SVN

svn mkdir file:///home/dovsyannikov/Work/versions/svn/my -m "Created dumb directory"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Удаление папки из структуры внутри локального репозитория SVN

svn rm file:///home/dovsyannikov/Work/versions/svn/my -m "Removed dumb directory"

Просмотр файлов только что записанных в локальный репозиторий SVN

svn ls file:///home/dovsyannikov/Work/versions/svn

Просмотр лога всех внесенны изменений

svn log file:///home/dovsyannikov/Work/versions/svn

Запись (импортирование) файлов проекта в локальный репозиторий SVN

svn import /home/dovsyannikov/Work/versions/project/ file:///home/dovsyannikov/Work/versions/svn/project/trunk -m "Initial import"

Удаление папки с проектом для тестирования

rm -rf /home/dovsyannikov/Work/versions/project

Выгрузка файлов проекта из локального репозитория SVN в локальную папку

mkdir /home/dovsyannikov/Work/versions/project
cd /home/dovsyannikov/Work/versions/project

svn checkout file:///home/dovsyannikov/Work/versions/svn (На самом деле папка внутри репозитория SVN может быть любой, например, cvn/trunk/dir1)

Просмотр папок записанных в папку project из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/project
ls -a

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

svn info file:///home/dovsyannikov/Work/versions/svn

Работа над проектом

Добавим в проект новые файлы

cd /home/dovsyannikov/Work/versions/project/svn/trunk/dir1
touch add.html

Пометим файл на добавление к локальный репозиторий SVN

svn add add.html

Посмотрим статус внесенных изменений

cd /home/dovsyannikov/Work/versions/project/svn/trunk/

svn status

Перенос созданного файла в локальный репозиторий SVN

svn commit -m "Added new file"

Выгрузка файлов проекта особой версии из локального репозитория SVN в локальную папку

Создадим тестовую локальную папку для выгрузки версии 3 файлов из локального репозитория SVN

cd /home/dovsyannikov/Work/versions
mkdir test
cd test

Выгрузим версию ревизии 3 коммита файлов из локального репозитория SVN в созданную папку

svn checkout -r 3 file:///home/dovsyannikov/Work/versions/svn

Посмотрим информацию по выгруженному файлу из ревизии 3

svn info /home/dovsyannikov/Work/versions/test/svn/trunk/dir1/index.html

Создание папки внутри локальной версии репозитория SVN и копирование туда файлов из любой ревизии

Переход в папку проекта

cd /home/dovsyannikov/Work/versions/project/svn/trunk/dir1

Создание в папке проекта папки tags

svn mkdir tags

Копирование папки dir1 в папку tags

svn copy /home/dovsyannikov/Work/versions/project/svn/project/trunk/trunk/dir1 /home/dovsyannikov/Work/versions/project/svn/trunk/dir1/tags

Перенос папки tags с папкой dir1 внутри в локальный репозиторий SVN

svn commit -m "Tagged version"

Выгрузка папки dir1 из папки tags из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/test

svn checkout file:///home/dovsyannikov/Work/versions/svn/trunk/dir1/tags/dir1

Пометка файлов на удаление из локального репозитория SVN

cd /home/dovsyannikov/Work/versions/test/dir1

svn rm index.html

Добавление новых файлов

touch index2.html
touch index3.html

Пометка файлов на добавление в локальный репозиторий SVN

svn add index2.html
svn add index2.html

Переименование файла

svn rename index3.html index4.html

Отмена внесенных изменений

svn revert index.html
svn revert index2.html

Перенос всех внесенных в проекте изменений в локальный репозиторий SVN

svn commit -m "Modified files"

Выгрузка последней ревизии из локального репозитория SVN в локалбную папку с целью обновления файлов в ней

cd /home/dovsyannikov/Work/versions/test/dir1

svn update

Показать разницу между файлами в текущей папке и файлами в локальной версии репозитория SVN

svn diff

Посмотреть какой номер ревизии был последний

svnlook youngest /home/dovsyannikov/Work/versions/svn

Восстановление поврежденных данных в SVN

svnadmin recover /home/dovsyannikov/Work/versions/svn

Перемещение папки локального репозитория SVN в другое место

svnadmin dump /home/dovsyannikov/Work/versions/svn > /tmp/mydumpfile.db (перемещаем базу данных SVN)

svnadmin create /home/dovsyannikov/Work/versions/newsvn (создаем новую папку для локального репозитория SVN)

svnadmin load  /home/dovsyannikov/Work/versions/newsvn < /tmp/mydumpfile.db (перемещаем базу данных SVN в новую папку репозитория)

Работа с удаленным репозиторием SVN через SVN+SSH

svn checkout svn+ssh://url.of.another.computer/home/dovsyannikov/Work/versions/svn/trunk/dir1/tags

Комментариев нет:

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