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

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

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

hg help

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

cd project

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

hg init

Создание нового файла в папке проекта

touch index.html

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


hg add index.html

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


hg status

Запись файлов проекта в локальный репозиторий Hg

hg commit -m "Initial import"

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


hg log

Добавление нового файла в папку проекта

touch index2.html

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

hg add index2.html

Пометка нового файла на удаление из локального репозитория Hg
hg rm index2.html

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

hg revert index2.html

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

hg diff

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

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

hg clone file:///home/dovsyannikov/Work/versions/project

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

Показ подсказки по командам Git
git help

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

cd project

Создание локального репозитория Git в папке проекта
git init

Создание нового файла в папке проекта

touch index.html

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

git add index.html

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

git status

Запись файлов проекта в локальный репозиторий Git


git commit -m "Initial import"

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

git log

Добавление нового файла в папку проекта

touch index2.html

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

git add index2.html

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

git rm index2.html

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

git reset index2.html

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

git diff

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

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

git clone file:///home/dovsyannikov/Work/versions/project

Обновление файлов в локальной папке


git checkout -- file.txt

Работа с удаленным репозиторием GitHub


Зарегистрируйтесь на репозитории GitHub


Создайте новый репозиторий в  GitHub

Перенос проекта во внешний репозиторий GitHub
cd /home/dovsyannikov/Work/versions/project

git remote add origin git@github.com:<username>/my_new_app.git
git push -u origin master

Добавление новых файлов во внутренний и внешний репозиторий


touch index3.html

git add index3.html

git commit -m 'New commit'

git push

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


git pull origin master

git checkout master

Обучающее руководство по работе с 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

пятница, 24 мая 2013 г.

Сранительная таблица основнух команд SVN, Git, Hg



SVN


Git

HG


Создать хранилище файлов в SVN

svn admin create    /path/to/new/svn/repository
git init
hg init


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

svn checkout file:///path/to/new/svn/repository/project/trunk /my/project/local/folder
git clone ssh://user@domain.com/repo.git
hg clone


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

svn status
git status
hg status


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

svn add file.txt
git add . (или git add -p file.txt)
hg add file.txt


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

svn delete file.txt
git rm file.txt
hg remove file.txt


Показать различия между текущей рабочей директорией и той же директорией в хранилище SVN

svn diff
git diff
hg diff


Отправка (добавление) внесенных изменений из локальной папки в хранилище SVN

svn commit -m "Comment Saving recent changes" http://localhost/svn_dir/repository/project_dir
git commit -a
hg commit -m "Comment Saving recent changes"


PUSH - отправить изменения из локальной папки в удаленный репозиторий SVN

svn commit -m "Comment Saving recent changes" http://localhost/svn_dir/repository/project_dir
git push
hg push


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

svn update
git pull
hg pull (или hg update)


LOG - посмотреть кто еще переносил свои изменения в хранилище SVN

svn log
git log
hg log


Тэгирование (копирование) и создание отдельных версий проекта в хранилище

svn checkout http://192.168.0.4/svn/repos/prj1/tags/0.1.0/
git tag -a my_tag_name
--


Отменить внесенные изменения

svn revert
git reset --hard
hg revert -a --no-backup


Разрешить конфликт файлов

svn resolve
git reset –hard
git rebase --skip
--