Репозитории
План рассказа
- Орг. Комментарии к домашним работам
- Орг. Конспекты? Кто-нибудь?
- Как получить зачёт если не ходить на занятия (есть желающие?)
- Откуда возникла потребность в репозитории = Зачем нужны репозитории? (Версии/архивы/бэкапы, changelog для себя/пользователей/начальства, обмен исходниками)
- Репозиториев бывает много разных: cvs (условно самый древний), svn (доделанный до ума cvs, очень популярен), git (используется для ядра Linux и потому очень популярен среди юниксоидов), mercurial (очень похож на git, но без некоторых лишних сложностей), bzr, darcs, arch, ... имя им легион. Я буду рассказывать про mercurial.
- Основные части репозитория: история, рабочая директория; что такое история, зачем нужны комментарии
- Самые частые самые главные действия в репозитории: add, commit (= checkin); push, pull; clone, init
- Что такое merge. Пример как это делать руками. fetch.
- Что делать, если конфликт случился при push?
- Хелпы и документация по mercurial. На следующих лекциях иногда будут маленькие рассказы о некоторых фичах hg.
Контрольная работа
Представьте себя интерпретатором питона. Что бы вы ответили на такие вопросы? (т.е.: заполните пустые строки)
Задание
Создайте пару ключей для ssh, если вы этого ещё не сделали. См. материалы 2-го занятия курса UNIX.
Получите права доступа к репозиторию. Для этого я написал скрипт под названием py2010-pubkey. Зайдите на kodomo, и запустите команду py2010-pubkey ~/.ssh/authorized_keys
Создайте папку для того, что у вас будет связано с питоном1. В эту папку склонируйте репозиторий ssh://hg@kodomo.fbb.msu.ru/py2010-mercurial и выполните задания в файле README.
- Подождите 5 минут, вытяните новые изменения в репозиторий и почитайте: историю и файл README
* (для маньяков, которые всё уже сделали и им нечего делать). Создайте (где угодно у себя в домашней директории) репозиторий hg. Сделайте в нём несколько пробных изменений. Сделайте его клон. Создайте конфликт между двумя копиями репозитория. Разрешите его. Посмотрите, как после этого выглядит история.
Неважно, где она будет лежать. Я не буду заходить к вам в домашние директории. (1)