03.15 Git: трёхстороннее слияние; tkinter: события и ввод
- Повторение: интерференция коммитов в git
diff3 и ему подобные
ручное вмешательство при merge или rebase (правка, коммит, continue) — или abort
- формат 3way diff файла
упражнение: merge интерферирующих веток, разрешение конфликтов
- Создайте и закоммитьте файл "snark.txt" с текстом, приведённым ниже на врезке
- Создайте и поместите в рабочую копию (git checkout -b) ветку "snark"
- Во второй строке замените "вокруг" на "кругом", сделайте коммит.
- Создайте и поместите в рабочую копию ветку "snark_alt", начинающуюся от коммита с первоначальным текстом.
- Во второй строке замените "Потрясавший" на "Ужасавший", в последней - "со страху сбивался" на "от ужаса сбился", сделайте коммит (один на оба изменения)
- Верните в рабочую копию ветку "snark"
- Сделайте merge ветки "snark_alt" на ветку "snark" (возникнет конфликт правок во второй строке); объедините вручную правки во второй строке - должно получиться "Ужасавший кругом всю округу". Обратите внимание, что изменение в последней строке не породило конфликта и не требует ручного объединения.
Врезка с текстом:
И Бобер, сам не свой, слушал бешеный вой, Потрясавший вокруг всю округу. А когда в третий раз вой всю душу потряс, Он вздрохнул и ахрюкнул с испугу. Он делил, отнимал, умножал, прибавлял. Тяжела оказалась работа. И опять, и опять начинал он считать, Но со страху сбивался со счета.
Использование mergetool (kdiff3 / [g]vimdiff / …)
упражнение: rebase интерферирующих веток c kdiff3 или gvimdiff
Повторение: события в Tkinter
bind и формат обработчика
Упражнение: две кнопки, при нажатии выводят имя, при нажатии левой кнопкой — нажимают ещё и на соседнюю кнопку
Повторение: Entry
- Использование валидатора
Задача 1: написать tkinter-приложение которое позволяет вводить только целые числа (положительные или отрицательные)
- Интерфейс: окно ввода и одна кнопка "Quit", по которой происодит выод
- Работа: окно разрешает вводить только числа (допустимы пустая строка и "-", == 0 )
- При выходе а стадартый вывод печатается введённое число
Задача 2: написать tkinter-приложение, в котором виджеты влияют друг на друга и обрабатывают события
- Интерфейс: окно ввода, выпадающее меню (опции "One", "Two", "Three"), кнопки "Insert" и "Show", текстовая метка (начальный текст "Default")
- Окно ввода разрешает вводить строки не длиннее 10 символов
- Кнопка "Insert" вставляет в окно ввода (добавляет в конец) текст выбранного пункта выпадающего меню
- Кнопка "Show" устанавливает в текстовую метку текст из окна ввода
При попадании мыши на текстовую метку (событие "<Enter>"), текст метки устанавливается в "Hi Mouse"
При уходе мыши из текстовой метки (событие "<Leave>"), текст метки устанавливается в "Bye Mouse"
Д/З
Модифицировать Задачу 1 так, чтобы допускались также вещественные числа с фиксированной точкой (возможно, поможет re)
Доделать Задачу 2