Відмінності між версіями «Mercurial»

Матеріал з Wiki Welard
Перейти до навігації Перейти до пошуку
(Created page with '== Основы работы == Для этого надо отредактировать конфигурационный файл, который находится в ~/.hgrc ...')
 
 
(Не показані 7 проміжних версій 3 користувачів)
Рядок 14: Рядок 14:
 
  hg clone repo repoclone
 
  hg clone repo repoclone
 
repoclone — абсолютно идентичен repo в плане наполнения, однако в нём уже появился файл .hg/hgrc, в котором записано, что путь по умолчанию (для забирания и отдавания изменений) — это предыдущий repo:
 
repoclone — абсолютно идентичен repo в плане наполнения, однако в нём уже появился файл .hg/hgrc, в котором записано, что путь по умолчанию (для забирания и отдавания изменений) — это предыдущий repo:
 +
 +
Разворачивание с удаленного сервера - клонировать с удаленной машины:
 +
hg clone . ssh://192.168.0.100//home/project/
 +
 
  [paths]
 
  [paths]
 
  default = /home/andrew/repo
 
  default = /home/andrew/repo
−
Теперь, если мы сделаем изменения в обоих репозиториях, мы можем увидеть такую картину:
+
Посмотреть изменения:
−
<pre>piranha@gtv ~/repoclone>hg incoming
+
~/repoclone>hg incoming
−
comparing with /home/piranha/repo
+
~/repoclone>hg outgoing
−
searching for changes
 
−
changeset:  1:99a5a4fc7247
 
−
tag:        tip
 
−
user:        Alexander Solovyov <piranha@gtv>
 
−
date:        Tue Jul 22 14:40:51 2008 +0300
 
−
summary:    Another commit
 
  
−
piranha@gtv ~/repoclone>hg outgoing
 
−
comparing with /home/piranha/repo
 
−
searching for changes
 
−
changeset:  1:7cb00df3cf09
 
−
tag:        tip
 
−
user:        Alexander Solovyov <piranha@gtv>
 
−
date:        Tue Jul 22 14:41:21 2008 +0300
 
−
summary:    commit in clone
 
−
</pre>
 
 
Команды incoming и outgoing показывают соответственно входящие (те, которых ещё нету в локальном репозитории) и исходящие (те, которых не хватает в удалённом репозитории) ревизии. Обратите внимание, что я не указывал путь к удалённому репозиторию — меркуриал в этом случае берёт его из пути по умолчанию (который можно увидеть раньше).
 
Команды incoming и outgoing показывают соответственно входящие (те, которых ещё нету в локальном репозитории) и исходящие (те, которых не хватает в удалённом репозитории) ревизии. Обратите внимание, что я не указывал путь к удалённому репозиторию — меркуриал в этом случае берёт его из пути по умолчанию (который можно увидеть раньше).
−
Merge
 
  
 
Сложившаяся ситуация подразумевает слияние — у нас появились две ветки разработки, значит пора применять merge:
 
Сложившаяся ситуация подразумевает слияние — у нас появились две ветки разработки, значит пора применять merge:
 
== Забираем изменения ==
 
== Забираем изменения ==
−
  piranha@gtv ~/repoclone>hg pull
+
  ~/repoclone>hg pull
−
  pulling from /home/piranha/repo
+
  pulling from /home/andrew/repo
 
  ...
 
  ...
 
  added 1 changesets with 1 changes to 1 files (+1 heads)
 
  added 1 changesets with 1 changes to 1 files (+1 heads)
Рядок 50: Рядок 38:
 
  (branch merge, don't forget to commit)
 
  (branch merge, don't forget to commit)
 
  hg ci -m "merge"
 
  hg ci -m "merge"
−
Можно через WEB:
+
== Отдача обратно ==
 +
hg push
 +
 
 +
== Работа через WEB ==
 
  http://mercurial.selenic.com/wiki/HgWebDirStepByStep
 
  http://mercurial.selenic.com/wiki/HgWebDirStepByStep
  
−
== Отдача обратно ==
+
== Работа через ssh ==  
−
  hg push
+
клиентская часть
 +
сгенерируйте ppk file через PuTTYgen key.ppk
 +
 
 +
hg через ssh без ввода пароля.
 +
%USERPROFILE%\mercurial.ini
 +
[ui]
 +
username = Igor Kremin <[email protected]>
 +
#ssh = /usr/bin/ssh -i /home/me/.ssh/id_rsa-xyz -p 1234
 +
ssh="C:\path-to-plink\PLINK.EXE" -ssh -l <username> -i "c:\path-to-ssh-key\key.ppk"
 +
Частный случай
 +
 
 +
ssh="C:\path-to-plink\PLINK.EXE" -ssh -l <username> -P #### -i "c:\path-to-ssh-key\key.ppk"
 +
ssh = plink.exe -ssh -C -l username -P #### -i "C:/Program Files/PuTTY/Key Files/KyleKey.ppk"
 +
 
 +
== Работа через ssh == серверная часть
 +
файл должен содержать публичный ключ
 +
  /<home-directory>/.ssh/authorized_keys

Поточна версія на 13:52, 15 грудня 2013

Основы работы

Для этого надо отредактировать конфигурационный файл, который находится в ~/.hgrc в случае *nix, и в %USERPROFILE%\mercurial.ini в случае Windows. Надо туда добавить пару строчек:

[ui]
username = Alexander Solovyov <piranha@gtv>

Всё начинается с того, что мы создаём репозиторий:

hg init repo

Начать можно с добавления файлов и коммита первой ревизии:

cd repo
echo "something" > read.me
hg add
hg ci -m "Initial revision"

Клонировать его:

hg clone repo repoclone

repoclone — абсолютно идентичен repo в плане наполнения, однако в нём уже появился файл .hg/hgrc, в котором записано, что путь по умолчанию (для забирания и отдавания изменений) — это предыдущий repo:

Разворачивание с удаленного сервера - клонировать с удаленной машины:

hg clone . ssh://192.168.0.100//home/project/
[paths]
default = /home/andrew/repo

Посмотреть изменения:

~/repoclone>hg incoming
~/repoclone>hg outgoing

Команды incoming и outgoing показывают соответственно входящие (те, которых ещё нету в локальном репозитории) и исходящие (те, которых не хватает в удалённом репозитории) ревизии. Обратите внимание, что я не указывал путь к удалённому репозиторию — меркуриал в этом случае берёт его из пути по умолчанию (который можно увидеть раньше).

Сложившаяся ситуация подразумевает слияние — у нас появились две ветки разработки, значит пора применять merge:

Забираем изменения

~/repoclone>hg pull
pulling from /home/andrew/repo
...
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)

Cлияние

piranha@gtv ~/repoclone>hg merge
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
hg ci -m "merge"

Отдача обратно

hg push

Работа через WEB

http://mercurial.selenic.com/wiki/HgWebDirStepByStep

Работа через ssh

клиентская часть сгенерируйте ppk file через PuTTYgen key.ppk

hg через ssh без ввода пароля. %USERPROFILE%\mercurial.ini

[ui]
username = Igor Kremin <[email protected]>
#ssh = /usr/bin/ssh -i /home/me/.ssh/id_rsa-xyz -p 1234
ssh="C:\path-to-plink\PLINK.EXE" -ssh -l <username> -i "c:\path-to-ssh-key\key.ppk"

Частный случай

ssh="C:\path-to-plink\PLINK.EXE" -ssh -l <username> -P #### -i "c:\path-to-ssh-key\key.ppk"

ssh = plink.exe -ssh -C -l username -P #### -i "C:/Program Files/PuTTY/Key Files/KyleKey.ppk"

== Работа через ssh == серверная часть файл должен содержать публичный ключ

/<home-directory>/.ssh/authorized_keys