02.21 Использование pip и venv, редактирование истории в git
pip и venv
- Pip и ensurepip
Работа с pip — установка, удаление, список
- Замечание о бедности зависимостей
Поиск через pypisearch или pip-search
Работа с venv
- структура каталога
- Что такое activate
Работа с pipenv
Использование стороннего пакета на примере ipsedixit
- Установка
- Использование в программе
- Документация vs исходный код
вручную модифицировать модуль так, чтобы он также работал с файлом LecturesCMC/PythonIntro2021/Homework_AnnaTolstoy/anna_.txt
Задача_1: Написать программу fipsedixit.py, которая работает точно так же, как bin/ipsedixit, но распознаёт второй параметр — caesar, tacitus или путь к файлу со словами
- Модифицировать модуль ipsedixit и копировать оттуда код нельзя
$ python3 fipsedixit.py 2 /home/george/src/anna_.txt Первая эта их ссора произошла оттого, что появляется та самая Кити, в последнее время он видел в себе ресурсов. Она же, вот ты же хозяйничаешь с работниками? Наше дело мужицкое. Мы до всего доходят. Уж какой муж... Долли была рада, когда Анна еще сидела за письменным столом, тихо оделся и вышел, Вронский остался позади. Ты тоже едешь? $ python3 fipsedixit.py 2 tacitus Sed parum valebat suspicio in servo, et quaestionibus ancillarum elusa erat. Ergo confessionem alicuius quaeri placet, cui rerum quoque novarum crimen adfingeretur. Et visus idoneus maternae necis patrator Anicetus, classi apud Misenum praefectus et pueritiae Neronis educator ac mutuis odiis Agrippinae invisus. Ergo navem posse componi docet, cuius pars ipso in Oceano praeter viros armaque classibus valent. Forma navium eo differt, quod utrimque prora et mutabili remigio, quando hinc vel illinc adpellerent; multae pontibus stratae, super quas tormenta veherentur, simul aptae ferendis equis aut diversos pastus pererrantibus.
Редактирование истории
- Создание ветки от выбранного коммита
- на занятии ветка нужна, чтобы держать в репозитории и исходную историю, и отредактированную
просмотра веток с помощью qgit (git-cola, gitk — вот он есть часто), на самый крайний случай — git log --graph)
- Редактирование истории
Поправить последний коммит: git commit --amend (или --amen ♱)
Изменить прошлое: git rebase -i
pick, edit, squash
продолжение (git rebase --continue) после edit
- переупорядочение коммитов
Задача_2: редактирование истории на параллельной ветке
- дан стихотворный текст из восьми строк (номера строк в текст не входят):
занесите текст в git в файле jabber.txt в виде четырех коммитов, в каждом по две строчки (1-я и 2-я; 3-я и 4-я; и т.п.)
создайте ветку (git checkout -b) с именем histedit, начинающуюся с коммита со строчками 7 и 8, он же HEAD
отредактируйте историю на ветке histedit (git rebase -i), а именно:
объедините (squash) коммиты со строчками 1-2 и 3-4, так чтобы получился коммит с четырьмя строчками (1-4)
отредактируйте (edit) коммит со строчками 7-8: замените строчку 7 с "И хрюкотали зелюки," на "Дрожжали в лужасе грозды"
в результате на ветке histedit должна получиться история из трех коммитов, а в итоговом тексте заменена строчка 7
содержание коммитов в истории удобно контролировать при помощи команды git log --patch
исправьте, новым коммитом, в файле jabber.txt строчку 5 с "Варкалось. Хливкие шорьки" на "Сверкалось. Скойкие сюды"
ещё раз отредактируйте историю на ветке histedit: поменяйте местами два последних коммита
- итоговый текст должен выглядеть так (винегрет из двух переводов):
Д/З
- Доделать задачи