Top Banner
Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016
43

Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Jun 03, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Smokin' git rebase

David GoldenStaff Engineer, MongoDB

DCBPW • April 2016

Page 2: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Peter Rabbitson, aka ‘ribasushi’

Page 3: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingtopic1

Page 4: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingtopic1

Page 5: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 4topic1

Page 6: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

master

topic1

failing test Atest A passingfailing test Btest B passing

wip 3awip 3btopic2X

wip 1wip 2wip 3wip 4

Page 7: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passing

Xwip 3cwip 3dtopic2

wip 3awip 3b

wip 1wip 2wip 3wip 4topic1

Page 8: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 4

topic2

Xtopic3

XXX

wip 3cwip 3d

wip 3awip 3b

topic1 wip 3a1wip 3a2✓

Page 9: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3

topic3

wip 3awip 3a1wip 3a2✓

Page 10: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 3a

topic3wip 3a1wip 3a2✓

Page 11: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Merge this? No!

Page 12: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 3a

topic3wip 3a1wip 3a2

TESTSBROKEN

Page 13: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 3a

topic3wip 3a1wip 3a2

TOO GRANULAR

Page 14: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Rebase!

Page 15: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfailing test Atest A passingfailing test Btest B passingwip 1wip 2wip 3wip 3a

topic3wip 3a1wip 3a2

Page 16: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature Bwip 1wip 2wip 3wip 3awip 3a1wip 3a2 topic3-rebase

Page 17: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature Bstuff 1stuff 2stuff 3stuff 4 topic3-rebase

Page 18: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

But will it pass tests?

Page 19: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??????

stuff 1stuff 2stuff 3stuff 4

Page 20: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Smokin' git rebase

Page 21: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016
Page 22: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016
Page 23: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016
Page 24: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

smoke-rebase () { while true; do ( perl Makefile.PL && \ make realclean && \ perl Makefile.PL && \ ) >&/dev/null \ && make test \ && git rebase --continue \ || break done }

https://tinyurl.com/smoke-rebase

Page 25: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??????

stuff 1stuff 2stuff 3stuff 4

Page 26: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

?????

stuff 1stuff 2stuff 3stuff 4

Page 27: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

?????

stuff 1stuff 2stuff 3stuff 4

Page 28: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

????

stuff 1stuff 2stuff 3stuff 4

Page 29: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

????

stuff 1stuff 2stuff 3stuff 4

Page 30: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

???

stuff 1stuff 2stuff 3stuff 4

Page 31: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

???

stuff 1stuff 2stuff 3stuff 4

Page 32: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??

stuff 1stuff 2stuff 3stuff 4

Page 33: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??

stuff 1stuff 2stuff 3stuff 4

Page 34: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Fix it!

(e.g. git commit --amend)

Page 35: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

???

stuff 1stuff 2'stuff 3stuff 4

Page 36: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

Start smoking again!

Page 37: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??

stuff 1stuff 2'stuff 3stuff 4

Page 38: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

??

stuff 1stuff 2'stuff 3stuff 4

Page 39: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase ?

stuff 1stuff 2'stuff 3stuff 4

Page 40: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase ?

stuff 1stuff 2'stuff 3stuff 4

Page 41: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

stuff 1stuff 2'stuff 3stuff 4

Page 42: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

masterfeature Afeature B

topic3-rebase

stuff 1stuff 2'stuff 3stuff 4✓

Page 43: Smokin' git rebase - David Golden · Smokin' git rebase David Golden Staff Engineer, MongoDB DCBPW • April 2016

✓Ready to merge!