noname:~$ hg init helloworld // создал папку проекта
noname:~$ cd helloworld
noname:~/helloworld$ hd add // добавил пустоту...
hd: add: No such file or directory
// Вручную создал файл. С помощью gedit отредактировал. Почему-то создался дополнительный левый файл.
noname:~/helloworld$ hg add
adding topic_1.txt
adding topic_1.txt~
// Пробую удалить левый файл:
noname:~/helloworld$ hg remove topic_1.txt~
not removing topic_1.txt~: file has been marked for add (use -f to force removal)
noname:~/helloworld$ hg remove -f topic_1.txt~
noname:~/helloworld$ hg status
A topic_1.txt
? topic_1.txt~
noname:~/helloworld$ hg commit "first commit"
abort: first commit: No such file or directory
// тут я ступил. Надо было hg commit -m 'first commit'
// но об этом я сразу не догадался, поэтому...
noname:~/helloworld$ hg commit
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.gnome
4. /usr/bin/vim.tiny
Choose 1-4 [2]: 2
noname:~/helloworld$ hg commit
nothing changed
noname:~/helloworld$ hg diff
noname:~/helloworld$ hg log
changeset: 0:a6420337bed7
tag: tip
user: Sergey Kupriyanov (Kogrom)
date: Fri Jul 09 21:51:34 2010 +0400
summary: first commit
Коллективное изучение Mercurial
Есть этот стартгид и в основном его использовал:
http://mercurial.selenic.com/guide/
правда тут нет раздела, как установить систему. Так как я устанавливал его уже давно, то не помню как делал, но поиск даёт следующие рекомендации для Debian/Ubuntu:
$ sudo apt-get install mercurial
Далее в стартгуиде написано: откройте ~/.hgrc и добавьте в настройках имя. Однако, такого файла нет... Ладно, создал сам.
Далее примерно так (с комментариями) :
Код:
вот такой первый блин. Методом ненаучного подбора понял, что лучше подглядывать сюда:
http://hgbook.red-bean.com/read/how-did-we-get-here.html
а не в стартгуид.
Примечание модератора:
По просьбе большинства попытки к холивару будут пресекаться.
http://forum.codenet.ru/showpost.php?p=327823&postcount=5
То есть создаю клонированный репозиторий на флешке и обновляю его.
Код:
$ hg clone ~/helloworld "/media/SERGS FLASH/helloworld"
updating working directory
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ~/helloworld
// вношу изменения в проект
$ hg commit -m "Lesson 2"
$ hg push /media/SERGS\ FLASH/helloworld/
pushing to /media/SERGS FLASH/helloworld/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
updating working directory
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ~/helloworld
// вношу изменения в проект
$ hg commit -m "Lesson 2"
$ hg push /media/SERGS\ FLASH/helloworld/
pushing to /media/SERGS FLASH/helloworld/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Вот этот push обновляет репозиторий, но не сами файлы в папке проекта. Для из обновления пришлось выполнить дополнительную команду:
Код:
/media/SERGS FLASH/helloworld$ hg update
Цитата: Kogrom
Вот этот push обновляет репозиторий, но не сами файлы в папке проекта. Для из обновления пришлось выполнить дополнительную команду:
Код:
/media/SERGS FLASH/helloworld$ hg update
Во первых, я тут неверно указал обновляемый репозиторий, но это мелочи. Главное, что в данном случае чаще удобно использовать комбинированную команду.
$ hg pull -u SOURCE
где SOURCE - источник из которого будет обновлён текущий репозиторий. Флаг -u позволит его обновить.
Попробовал создать копию внешнего репозитория. Это оказалось совсем просто. Тупо перекопировал исходник книги http://hgbook.red-bean.com/ с помощью команды:
hg clone http://bitbucket.org/bos/hgbook
после чего благополучно удалил его, ибо лень разбирать как его собирать.
То есть выполнил пункт 7 плана изучения.
Порадовала команда hg serve, создающая сервер с репозиторием. Это позволяет просматривать историю изменений проекта с помощью веб-страниц.