Slide 1

Slide 1 text

陳佑⽵竹 Mouson 2019.03.23 台⽇日技術交流聚會@ 天瓏書局 Three Tips

Slide 2

Slide 2 text

About Me • 陳佑⽵竹,朋友都叫我墨墨嗓 (Mouson)。專注於資訊科技整 合、應⽤用、開發⽅方法及研究的T 型⼈人,現任 PHP 資訊系統分析 師/⼈人夫/⼀一隻臘腸狗的爸爸/通⽤用 設計(ユニヴァーサルデザイン) 推廣。平時喜好⽻羽球、登⼭山及 ⼿手沖咖啡。 • [email protected] • https://fb.me/mouson

Slide 3

Slide 3 text

Three Tips

Slide 4

Slide 4 text

Three Tips bisect

Slide 5

Slide 5 text

Three Tips rerere bisect

Slide 6

Slide 6 text

Three Tips rerere worktree bisect

Slide 7

Slide 7 text

Use binary search to find the commit that introduced a bug bisect Ref: https://git-scm.com/docs/git-bisect

Slide 8

Slide 8 text

v2.3

Slide 9

Slide 9 text

? ? ? ? ? ? ? HEAD Some feature was a failure after merge v2.3

Slide 10

Slide 10 text

? ? ? ? ? ? ? HEAD Some feature was a failure after merge v2.3 git bisect start HEAD v2.3

Slide 11

Slide 11 text

Use git bisect search failure commit v2.3 ? ? ? ? ? ? ? HEAD git bisect start HEAD v2.3

Slide 12

Slide 12 text

Use git bisect search failure commit v2.3 ? ? ? ? ? ? ? HEAD git bisect start HEAD v2.3

Slide 13

Slide 13 text

Use git bisect search failure commit v2.3 ? ? ? ? ? ? ? HEAD BAD git bisect start HEAD v2.3

Slide 14

Slide 14 text

Use git bisect search failure commit v2.3 ? ? ? ? ? ? ? HEAD BAD

Slide 15

Slide 15 text

Use git bisect search failure commit v2.3 ? ? ? ? ? ? ? HEAD BAD git bisect bad

Slide 16

Slide 16 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD git bisect bad

Slide 17

Slide 17 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD git bisect bad

Slide 18

Slide 18 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD

Slide 19

Slide 19 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD

Slide 20

Slide 20 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD

Slide 21

Slide 21 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD git bisect good

Slide 22

Slide 22 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD git bisect good

Slide 23

Slide 23 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD GOOD git bisect good

Slide 24

Slide 24 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD GOOD

Slide 25

Slide 25 text

Use git bisect search failure commit v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD GOOD X

Slide 26

Slide 26 text

use git blame find detail v2.3 ? ? ? BAD ? ? ? HEAD BAD BAD BAD GOOD GOOD X

Slide 27

Slide 27 text

Demo https://goo.gl/xGJxta UnitTest can be successfully executed in v2.0, but failed in the current version.

Slide 28

Slide 28 text

Demo Manuel: 1. git bisect start HEAD v2.0 2. phpunit / git bisect bad 3. phpunit / git bisect good 4. phpunit / git bisect good 5. git bisect reset https://goo.gl/xGJxta

Slide 29

Slide 29 text

Demo Auto: 1. git bisect start HEAD v2.0 2. git bisect run ./vendor/bin/phpunit https://goo.gl/xGJxta

Slide 30

Slide 30 text

Reuse recorded resolution of conflicted merges rerere https://git-scm.com/docs/git-rerere

Slide 31

Slide 31 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 32

Slide 32 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!! I have a Apple Pen !!!

Slide 33

Slide 33 text

GIT Rerere Demo 1. enable rerere feature git config --global rerere.enabled true https://goo.gl/8wj1he

Slide 34

Slide 34 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 35

Slide 35 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 36

Slide 36 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 37

Slide 37 text

Local GIT Rerere Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 38

Slide 38 text

Manage multiple working trees worktree https://git-scm.com/docs/git-worktree

Slide 39

Slide 39 text

Local GIT worktree Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 40

Slide 40 text

Local GIT worktree Sample I have a World!!! feature master I have a Apple !!! I have a Pen !!!

Slide 41

Slide 41 text

Local GIT worktree Sample I have a World!!! I have a Apple !!! master I have a Pen !!! feature 1. Rebase

Slide 42

Slide 42 text

Local GIT worktree Sample I have a World!!! I have a Apple !!! master feature I have a Apple Pen !!! 1. Rebase

Slide 43

Slide 43 text

Local GIT worktree Sample I have a World!!! I have a Apple !!! feature I have a Apple Pen !!! 1. Rebase 2. Merge master

Slide 44

Slide 44 text

Three Tips rerere worktree bisect

Slide 45

Slide 45 text

Q & A 陳佑⽵竹 Mouson https://facebook.com/mouson