голосование
BASH
PHP
Javascript
HTML
Firebird
Программы
Майнинг
Хостинг
PostgreSQL
Железо
Мобильные технологии
Ресурсы
GIT
SEO
Oracle
Python
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Команды меркуриала hg

Теперь о командах Меркуриала. Я покажу вам список блатных команд. Есть мануалы в которых описаны команды, которые вы очень редко будете использовать. Для начала нужно осмотреться. Установите hg - меркуриал. Я покажу вам установку на дебианоподобные операционные системы.


#установка hg на debian, ubuntu
sudo apt-get install mercurial

# файл помощи
hg -h

# описание одной команды
hg add -h

hg version
#Mercurial Distributed SCM (version 4.0)

Запустим в тестовом проекте hg. Теперь создадим несколько файлов для теста.


# создание репозитория, если вы внутри репозитория, то выполняйте эту команду
hg init

# создание репозитория project, если вы внутри репозитория, 
# то выйдите на уровень выше cd ..
hg init project

# создаем файл
echo "test mercurial" > README.me

#если у вас линукс, то установите утилиту tree
sudo apt-get install tree

.hg
├── 00changelog.i
├── requires
└── store

# проверка состояния
hg status
#вывод: ? README.me

Теперь нужно добавить файлы в индекс. Индекс - это файлы добавленные для последующего фиксирования. Если случится коммит, то файлы из индекса попадут в коммит. Перед коммитом всегда проверяют файлы в индексе. Перед коммитом нужно сохранить настройки пользователя: имя пользователя + email. Без этих настроек не получится сделать коммит.


# добавляем файлы в репозиторий
hg add
#вывод: A README.me

# добавляет неотслеживаемые файлы и помечает отсутствующие файлы как удаленные
hg addremove

echo "[ui]" > ~/.hgrc
echo "username = Ivan Ivanov " >> ~/.hgrc

#создание первого коммита
hg commit -m "first revision"

#создание коммита. вам придётся делать описание коммиту своими руками
hg commit

#временное сохранение изменений, аналог git stash:
hg shelve

#вывести список сохраненных изменений
hg shelve --list

#вернуть изменения в рабочий каталог
hg unshelve

#для сохранений можно задать собственные имена
hg shelve --name 
hg unshelve 

Теперь осмотр файлов. Лог - это просмотр коммитов. Комманда hg log выдаст список коммитов. Самый первый коммит который вы увидите - это самый последний коммит. Поледний коммит - самый свежий коммит. Например, changeset: 7:b43f03eb72cc - 7 - это номер коммита, b43f03eb72cc - хеш сумма. По ней вы будете просматривать изменения и откатываться к нужному состоянию. Можно использовать номер коммита или хеш-сумму.

Осмотрим логи


#просмотр логов
hg log

#просмотр логов с подробностями
hg log -v

#просмотр логов c демонстрацией кода
hg log -p

#просмотр несколких коммитов
hg log -r 0:2

#показывает изменение последнего коммита
hg tip

#показ с мельчайшими подробностями
hg tip -vp

#последние изменения с подробностями
hg log -p -r -1

#смена визуального стиля вывода
hg log --style coal
hg log --style gitweb
hg log --style monoblue
hg log --style paper
hg log --style spartan

#просмотр изменений с подробностями
hg export b9a405b8937e
hg log -r b9a405b8937e -p

#чтение файла
hg cat command.sh

#чтение файла из 8 ревизии
hg cat -r 8 command.sh

#чтение файла между 2 ревизиями
hg cat -r 9:8 command.sh

Просмотр изменений не в индексе. Если вы уже добавили файл в индекс, то смотрите при помощи команды hg status


#просмотр изменений
hg diff

#просмотр изменений выбранного файла
hg diff command.sh

echo 'select * from table1;' > text1.txt

#вывод
diff -r 2b2ac0459d10 text1.txt
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/text1.txt Fri May 03 20:41:56 2019 +0300
@@ -0,0 +1,1 @@
+select * from table1;

Команда hg remove - помечает файлы как запланированные для удаления из репозитория. Файлы на диске не будут удалены до тех пор, пока вы не зафиксируете изменения. Ради понимания переключайтесь с одного коммита на другой hg update 0, затем hg update 1. Вы должны в коммитах создать разные по имени файлы.


#удаление файла
hg remove

#перебегаем на самый первый коммит
hg update 0
#вывод
.
└── README.me

#возвращаемся на последний коммит
hg update 1
#вывод
.
├── file6.txt
├── README.me
├── text1.txt
├── text2.txt
├── text3.txt
├── text4.txt
└── text5.txt

Теперь немного о работе с ветками. Нужно уметь создавать ветки hg branch my и переключаться между ветками hg update my.


#обновление до новой головной ревизии
hg update

#рабочий каталог проверяется на наличие незафиксированных изменений
hg update -c

#сброс индекса, файлы с кодом не удаляются
hg update --clean

#отменить незафиксированное слияние (потеря изменения), применять при мержах
hg update --clean my

#Для объединения двух голов
hg merge

#если вы находитесь на ветке default и у вас есть изменения в ветке my,  
#то вы можете принять изменения из ветки my
hg merge my

#коммит после merge
hg commit -m 'Merged changes'

#текущая ветка
hg branch
#default

#создание новой ветки
hg branch my

#список всех веток
hg branches

#Отзыв набора изменений
hg backout

#Отзыв последней ревизии (tip)
hg backout -m 'back out second change' tip

#Отзыв ревизии, не являющейся последней
hg backout --merge -m 'back out second change' 1

#откат выбранного файла до фиксированного изменения
hg revert command.sh

#откат всех файлов до зафиксированного состояния
hg revert --all
hg revert -a
просмотры: 131, уровень: лёгкий уровень, рейтинг: 0, дата: 2019-05-04 16:51:50
проголосовать:

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






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP