►
From YouTube: Code Review Weekly Workshop - Jan 27, 2023
Description
In this session we talk about diffing diffs, labeling MR's, and handling very cognitively complex MR's. We also pair up on a small MR review.
00:00 - Diffing diffs
16:13 - Labeling MR's
28:00 - Handling very cognitively complex MR's
37:32 - Pairing on a new feature flag MR
A
Hey
welcome
to
the
code
of
the
weekly
Workshop
where
we
talked
about
code
review.
I
am
gonna,
share
my
screen,
so
we're
looking
at
the
same
thing.
I
wanted
to
share
one
of
my
favorite
things
to
do
from
time
to
time,
which
is
different,
diffs,
which
we've
talked
about
a
little
bit,
but
sometimes
I
feel
compelled
to
do
this
when
ever
in
Mr
is
updated,
so
I'm
scrolling
to
the
bottom
here
and
when
an
MR
is
updated.
B
A
Also
rebased
and
so
here's
here's
the
really
paranoid
situation
one
could
be
in
as
a
code.
Reviewer
is
so.
This
was
the
new
commit,
but
when
there's
a
rebase,
even
though
it
says
this
is
authored
a
week
ago
during
the
rebase
process,
these
commits
could
still
technically
change.
Now,
it's
not
like
I,
don't
trust
Miguel,
whatever,
as
often
I
just
get
a
little
OCD
and
I
want
to
make
sure
and
if
I
have
time
I'll
be
like
okay.
Let
me
just
try
to
compare
the
versions
now.
A
If
I
did,
if
I
went
to
changes
and
I
tried
to
compare
version
17
with
version
18.,
it's.
C
A
B
Yeah,
that's
a
great
question:
I
I,
just
don't
check
at
that
point
because
I
didn't
know,
there
was
another
way
to
check
yeah.
A
Yeah,
so
this
is
where
I
open
the
terminal.
So
you
know
this
is
gonna,
get
real.
B
A
I'll,
do
is
I'll,
do
that
diffing
and
then
two
I
forgot
about
how
they
call
this,
but
you
can
like
do
multiple
pipes
into
a
command,
so
I'll
pipe
I'll
type
it
out,
but
I'm
going
to
do
the
first.
A
So
this
was
the
latest
push,
and
then
this
was
the
push
right
before
it
and
I'm.
Looking
for
this,
Commit
This
last
commit
here
and
so
I
want
to
pipe
in
the
difference
between
origin
master
and
support.
You
do
three
dots
so
that
it
does
the
merge
difference
between
the
two,
the
difference
between
the
merge
base
of
the
branches
and
then
I
could
do
get
diff
origin
Master
with
the
latest
Shaw
or
I,
can
actually
now
just
curl
the
diff
of
that
Mr
and.
A
A
But
I'll
show
you
one
of
the
reasons
I
use
this
and
I
really
like
it,
I'm
sure
that
there's
other
ones
but
here's
kind
of
what
I'm
looking
for
I'm
looking
for
these,
not
where
there's
the
same
Plus
on
both
sides,
I'm
looking
for
like
here,
we
added
something
copy
token,
but
then
I
left
the
suggestion
of
like
hey.
Maybe
we
should
keep
it
consistent
as
copy
registration.
So
that's
something
here's
why
I
use
ventif
y
here
is.
We
were
adding
this
block,
but
then
I
left
the
comment
of
oh.
A
Sometimes
this
can
be
falsies,
so
maybe
we
want
to
have
an
if
all
around
it
now
for
me
to
compare
that,
the
two
inner
blocks
are
the
same.
I
could
just
manually
delete
that
outer
tag,
and
now
I
see
oh
yeah.
These
are
the
same
except
for
the
white
space
that
was
wrapping
it
whatever.
So
that's
my
favorite
things
with
them.
Diff
is
it'll
update
the
diff
as
I
make
changes
to
it.
So
if
I
really
want
to
just
compare
two.
B
B
B
A
B
Know
how
to
get
out
okay,
but.
A
You
could,
and
so
with
all
that
being
said,
like
you
could
I
wonder
how
effective
this
would
be
with
diff
fuel
and
so
I
could
just
read
through
this.
A
There
might
be
params
I
can
pass
to
diff
you
to
ads
to
make
it
colorized
a
bit,
but
I
won't
be
able
to
get
that
like
feedback.
That
I
like
doing
of
I,
really
want
to
compare
these
blocks
that
are
now
moved
from
each
other
and
I
can
align
them
up.
So
I
can
actually
confirm
these
are
the
same
without
actually
reading
the
code
so
but
yeah.
A
This
might
I'm
sure
that
there's
for
for
non-dem
users
there's
another
tool
to
use
besides
vimtiff,
but
that's
what
I
use
the
main
takeaway
is
the
the
piping
of
this
commit
which
Now
isn't
attached
to
a
branch
but
is
still
I,
don't
know,
they're
still
available
somehow
and
then
I
just
pipe.
The
the
latest
Mr
diff.
A
No
because
this
so
this
one
I
had
to
get
it
from
the
timeline,
because
if
you
go
to
the
commits
page,
we
did
a
rebase
so.
B
A
Like
it,
yeah
try,
try
them
diff,
it's
it's!
You
know
if
you
know
how
to
get
out
of
it.
That's
pretty
good
you'll
have
to
add
the
exclamation
mark
at
the
end,
because
it
may
yell
at
you
about
yeah.
B
Yeah
but
I
mean
worst
case.
Two
is
I,
can
always
just
close
my
terminal
and
then
it's
gone
there.
You
go
yeah.
B
A
Really
funny
hey
John,
thanks
for
hopping
on.
C
Hello
I
was
trying
to
see
if,
if
jetbrains
can
do
deaths
of
arbitrary
Shaws
like
that,
that
aren't
on
the
I
think
I'm
just
nipping
it
with
Master
right
yeah,
if,
like
you
or
if
you
checked
out
the
head
of
the
branch.
Well,
no,
if
you
checked
out,
like
you,
did
the
the
previous
sha
before
the
rebase
and
then
you
said
like
get,
you
know,
right
click
get
compare
with
and
then
you
put
in
the
branch
I
think
you
would
get
the
same
effect
in
the
the
jet
brain
stiff,
fear.
A
A
B
B
C
B
Doing
is
also
it's
also
yeah.
C
C
Wait:
it
didn't
do
it
this
time
when
I
had
it
it's
weird
I.
Do
this
all
the
time?
That's
so
weird
it
like
somehow
Zoom
grabbed
the
focus
anyway
command
shift
a
which
is
also
I.
Never
realized
this
also.
The
mute
key
binding
silver
is
like
it's
like
command,
T
and
vs
code.
It's
the
search
for
command,
okay,
the
command
palette!
If
you
type
diff
in
there,
you'll
find
open
blank
diff
window
and
there
you
can
pick
any
two
arbitrary
files
or.
A
C
A
B
B
C
C
Like
everything
when
I'm
debugging,
all
of
the
the
buttons
there
in
the
continuing
skip
I'm
like
because
you
have
to
sort
of
like
get
into
that
pain
and
then
usually,
you
might
use
them
like
no
like
when
I'm,
when
I'm
in
debugging
mode,
like
my
mind,
just
wants
to
click
it
yeah,
it's
the
way,
I
think
so.
I've
turned
off
all
of
the
nags
like
no
I'm
I'm
using
the
mouse
for
the
debugger.
Don't
bug
me
about
it
anymore.
That.
B
C
B
C
C
B
I
did
sign
up
for
it,
but
then
I
don't
know.
A
C
B
B
A
C
Like
I,
just
like
write
a
little
bit
of
something
and
then
I
see
what
copilot
completes
and
then
I
think
like
did
you
brand
new
newbie
programmers
I
think
is
dangerous
because
they
don't
know
anything
but
like
for
me.
Learning
golang
I'm,
like
I
know
what
I
want
to
do.
I
just
don't
know
how
to
do
it,
and
in
that
case
it's
great.
It's
like
here's
something
that
may
be
wrong,
but
it's
close
enough
to
get
me
there,
whereas
I
would
have
been
Googling
for
half
an
hour.
C
B
Is
you
like
the
framework
is
using
first
so
that
you
understand
when
things
are
broken
I
guess
you
need
to
be
able
to
understand
when
chat
GPT
is
giving
you
maybe
not
correct
advice?
Yes,
because.
B
A
Yeah
the
what
was
I
gonna,
say:
I,
don't
remember:
oh
no
Source
graph
is
coming
out
with
an
AI
assistant
tool.
C
You
know
that
terminal
that
I
use
warp
I
think
I
could.
C
A
C
But
debugger
Terry,
yes
like
it's.
B
B
Mine,
it
didn't
I
just
heard
that
there
was
any
going
installed
at
all
and
I
had
to
like
hack
it,
but
it's
fine
I
got
it
working
I,
don't
know.
I
might
I
might
take
you
up
on
that
pairing
session
at
some
point,
because
I
feel
like
I,
went
and
like
hacked
some
XML
file
to
get
it
to
register
that
there
was
a
version
of
Google.
B
B
B
B
B
B
You
know
my
thought
has
been
if
I
go
in
and
just
either
like
look
at
the
issue.
If
the
issue
has
it
make
that
match,
that's
the
easiest
way,
but
if
it
doesn't
have
the
issue
doesn't
have
it
like
you
just
like
add
it
yourself.
Do
you
add
it
and
then,
like
Ping,
the
author,
hey
I,
made
this
decision
about
your
Mr.
Like?
A
B
A
C
C
Well,
they
use
it
as
a
proxy
to
know
you
know
our
our
groups,
not
thrashing
wildly
between
doing
all
bugs
and
all
maintenance
and
all
features,
and
are
they
cranking
out
features
so
the
because
it's
in
the
handbook
they're
supposed
to
be
there.
So
me
personally,
I
wouldn't
have
a
problem
like
telling
the
the
author
to
say:
hey.
You
need
to
do
this
because
the
handbook
says
you
need
to
do
this,
and
this
is
a
data
that
we
gather.
Here's
the
section
in
the
handbook
that
Paul
has
up.
C
C
The
thing
that
gets
me
is
like
subsequent,
like
in
future
enhancement,
the
second
paragraph
there
subsequent
user-facing
improvements
that
refine
the
initial
NBC
by
adding
additional
capabilities,
including
good
user
value,
usability
and
tests
like
to
me,
like
all
the
stuff
I
did
on
the
git
Love
Flavor
and
markdown,
like
none
of
it,
was
user
facing,
but
it
was
all
like
in
support
of
the
content
editor.
Why.
B
C
C
C
B
C
B
A
That's
where
we're
at,
but
this
is
probably
a
good
one,
to
save
off,
especially
being
in
the
the
as
a
merge
request
coach
that
needs
to
triage
Community
contributions.
This
is
this
is
helpful
and,
as
I
interpret
this
also
on
through
the
lens
of
what
Chad
was
describing,
it
seems
like
maintenance
is,
if
it
it
has
to
First,
not
be
a
feature
or
a
bug.
C
That's
kind
of
my
only
things
that
fall
into
maintenance
in
my
book
and
for
our
personal
group
I'm,
like
I'm,
very
liberal,
with
the
future
flag,
and
sometimes
people
will
go
in
and
change
it
or
viewers,
but
I'm
like
the
numbers,
don't
matter
honestly,
it's
just
when
they
look
at
our
metrics
and
when
and
that's
what
Eric
said
when
he
was
talking
about
this
on
the
Retro
yesterday,
I
think
he's
like
they
said.
How
are
your
numbers
so
stable
across?
C
C
A
A
C
C
Like
that,
even
in
the
spike
mode
I'm
doing
a
remote
development,
I'm
still
writing
tests
just
to
like
help
myself
yeah,
but
it's
so
funny.
Like
I
wrote
this
test
I'm
like
yeah.
This
is
this
little
algorithm,
I
tested
it.
The
test
is
good
and
there's
a
bug
in
it,
and
there
was
a
bug
in
my
test
and
it.
A
Was
still
man,
you
gotta
write
tests
for
your
tests?
That's
so
that's
what
the
integration
tests
are.
I
guess,
that's
funny
the
getting
to
that
high
level
of
percentage.
The
way
I
I.
Think
of
it
is
like
with
tdd
there's
tests
that
are
really
helpful
during
development,
and
that
gets
you
really
close.
But
then
you
just
Harden
everything
else.
So
it's
like
whatever
is
not
covered.
We
just
write
some
hardening
tests.
I
I,
don't
know
how
strict
TD
that
is,
but
I
know
that
test
hardening
idea
is
a
that's
an
idea.
C
A
A
Yep
yeah
well,
is
there
any
other
code
review
topics,
questions
that
we
should
discuss
or
are
we
thinking
about
pairing
up
on
a
code
review.
B
C
B
C
You
do
when
you
feel,
like
you,
can't
wrap
your
head
around
NMR
to
correctly
maintain
a
review
and,
like
you,
don't
feel
safe
about
it.
You
do
pass
it
on
and
you
just
take
your
time
or
you
that's.
A
What
do
you
do?
Terry.
B
Well,
I
mean
for
the
maintainer
stuff.
It's
hard.
I
have
tried
to
adopt
like
Paul's
advice
is
to
like
ask
all
the
questions
as
I'm
going
through
it
that
come
to
me
and
then
go
back
and
like
see
which
ones
do
I
want
to
keep
all
of
them
or
not
I
like
to
make
sure
that
it's
reviewed
by
someone
like
from
that
person's
team.
B
I
do
my
best
to
try
to
like
to
try
to
give
it
another
review,
thinking
about
like
how
it
fits
into
like
kitlab
as
a
whole,
but
also
I
tend
to
focus
more
on.
Like
are
we
following
all
the
coding
standards?
B
B
B
I
have
before
like,
if
it
hasn't
been
I
haven't
run
into
too
many,
where
you
get
something
super
complex
that
doesn't
have
someone
that's
like
from
the
other
person's
group.
That's
reviewed.
It.
A
C
B
A
B
C
Has
been
so
weird
like
almost
all
the
stuff
I
worked
on,
git
love
is
like
been
off
in
a
foreigner
or
Greenfield
and
then
now,
like
there's
been
no
other
back
end.
I
guess
there's
Casio
now,
but
he's
sort
of
like
often
Pages
there's
been
no
other
back-end
engineer
for
like
what
going
on
in
year.
A
A
But
if
it's
like,
okay,
you
know
you
have
to
go
through
multiple
containers
to
even
touch
this
feature.
If
it's
something
like
I
might
even
be
able
to
test
this,
if
I'm
reading
something
I'm
confused
by
it,
a
question
in
my
head,
often
is:
why
isn't
it
like
this
and
I'm
sure
there's
reasons,
but
can
here's
here's
the
ideal
if
I
was
reading
this?
This
is
what
I
would
imagine
it
would
be
laid
out
and
I
see
it's
not.
Is
there
a
reason?
Why
is
this
something
we
can
work
towards?
A
Is
it
something
that
we
haven't
considered,
or
we
did
consider
so
that
I
always
check
out
code
locally
and
if
something
isn't
making
sense,
either
a
if
it's
something
that
doesn't
make
sense,
because
I
don't
understand
why
it
was
done
this
way
or
B
if
it
just
doesn't
make
sense
because
we're
integrating
with
libraries
and
third
parties,
it's
like
all
sorts
of
interfaces
that
I
have
no
idea
about.
C
A
A
C
Yes,
then
those
enemy
tests,
You
Know
The
Enemy,
is
a
third-party
thing.
It
could
change
at
any
time.
It
could
break
me
at
any
time
and
when
you
upgrade
it
it's
like
okay,
does
it
still
fulfill
what
I
need
it
to
do,
regardless
of
how
it
may
have
changed
over
this
upgrade
or
for
an
external
API?
It's
like
is
this
API
still
returning
the
same
thing:
did
they
break
it
without
even
versioning
their
API
yeah
and.
A
A
And
I
think
it
just
goes
to
show
of
you:
don't
have
to
understand
everything
but
understanding.
If
there's
things
you
don't
understand,
yeah,
let's
co-locate
it
and
put
in
a
box,
and
hopefully
we
can
untangle
everything
else
around
it.
But
I
love
that
idea.
Oh
my
gosh
I
love
the
perspective
of
yeah.
Our
third
party
dependencies.
Aren't
our
allies
they're
like
enemies,
we've
made
temporary
peace
with
that
we,
the.
A
C
B
Don't
know
if
we
gave
you
a
good
answer,
but
I
totally
don't
feel
bad
about
passing
things
off
and
I've
actually
had
maintainers
pass
off.
Mrs
from
that
I've
made
where
they're
like
I,
don't
feel
comfortable
reviewing
something
that
is
backed
by
elasticsearch,
which
is
fine,
so
our
team
does
tend
to
if
it's
a
very
complex
I
try
to
use
a
maintainer
for
my
own
team.
A
B
A
Yeah
and
I
think
everyone
that
contributes
to
gitlab.
Doesn't
they
take
that
feedback
seriously
and
I?
Think
people
want
need
to
hear
that
and
I
want
when
I
put
in
ours
that
I'm
like
okay,
we're
having
to
solve
a
hard
problem.
So
here's
my
here's,
the
crazy
idea
I
had
when
I
was
running.
Let's
see
if
people
like
it
yeah
and
oftentimes
I'll
get
back
of
like
this
is
so
magical
and
weird
I,
don't
like
it
and
that's
really
good
feedback
to
me.
It's
like
okay,
I.
B
B
Also
feel
like
doing
those
how
to
test
instructions
by
authors
and
if
you
self-review
your
stuff,
it's
easier
to
catch,
whether
something's,
too
complicated
yeah,
yeah
I,
don't
see
a
lot
of
people
doing
the
self
review.
But
there
are
some
folks
who
do
and
when
I
review
their
quote.
I'm
like
thank
you
yeah,
because
they
leave
me
little
notes
and
then
I
don't
have
to
think
about
things.
B
B
Some
time
we've
been
looking
at
it
very
briefly:
it's
not
I
just
had
a
few
questions,
cool
and
not
so
much.
B
Drive
I
can
share
okay.
Let
me
blow
the
X
up
a
little
bit,
though
yeah
my
glasses
are
not
my
current
prescription.
So
that's
good
for
me.
So
this
is
a
setup
profile
tabs
in
view
not
so
crazy
about
this
number
here,
but
this
is
a
front-end
ticket
and
I
feel
like
those
tend
to
be
larger.
B
So
it
looks
like
we're
in
the
process
of
migrating
the
tabs
on
the
user
profile
from
Hamilton
view,
it's
going
to
be
split
across
multiple
issues
in
Omars,
which
they
have
an
epic
which
is
cool.
This
sets
up
the
view
app
and
the
tabs
don't
render
anything
and
there's
an
issue
for
each
Tab
and
each
tab
will
be
built
out
individually
in
future
Mrs
and
it's
behind
a
feature
flag.
B
I
will
probably
do
this
later,
which
is
how
to
validate,
but
there's
not
really
much
other
things.
I
typically
go
here
and
look
to
see
like
what
kind
of
commits
they
have
left
and
I.
Don't
think
this
needs
a
change
along.
I
am
I,
guess
some
of
the
stuff
that
I
would
ask
for
this.
B
I
might
click
through
these
things,
but
I'm
here
to
review
back-end
code,
so
I'll
probably
just
focus
on
that
for
this,
this
is
fine,
I
would
not
yeah.
This
is
just
like
I
would
not
there's
nothing
here
to
be
concerned
about
this.
Diff
looks
pretty
large,
so
I
probably
want
to
come
back
and
look
at
this.
It
looks
like
maybe
they
have
added
a
feature
flag
that
loads
in
everything.
B
A
Just
for
fun,
can
we
try
to?
Can
we
try
it
a
side
by
side,
this
stuff
I,
don't
I'm,
not
optimistic
about
yeah
I
wish
we
were
better
at
this.
Is
why
I
check
all
Mrs
out
locally
is
because
most
local
diff
tools
are
pretty
good
at
telling
you
when
something
is
just
white
space
changes
yeah,
which.
B
Is
hard
yeah
so
again,
this
is
not
displaying
I
think
this
is
just
all
indented
and
it's
not
displaying
yeah.
C
A
C
B
B
B
I
do
normally
at
least
come
in
and
make
sure
that
there
was
one
instance
where
somebody
had
an
issue
here
and
it
wasn't
actually
the
rollout
issue.
It
was
something
else,
so
I
do
normally
just
validate
that
the
numbers
match,
because
it's
possible
that
the
thing
is
not
right.
B
So
that
looks
good
to
me
this.
We
don't
normally
review
one
thing
that
I
didn't
notice
when
I
was
looking
at
this.
Very
briefly
is
that
so
this
is
really
my
question.
B
B
A
B
B
A
B
I
mean
maybe
it
doesn't
need
to
be
part
of
the
individual
issues
for
each
page.
Maybe
they
could
have
like
a
feature
spec
issue
where
they
go
in
and
change
everything
like
I,
don't
know
so.
C
An
idea
like,
instead
of
them
just
stepping
into
false
and
ignoring
the
future
specs,
they
could
go
ahead
and
add
another
branch
for
true
that
asserts
the
current
behavior,
which
is
there's
a
view
component
here.
That
does
absolutely
nothing
and
then,
when
they
start
adding
the
real
behavior
that
that
will
break
and
force
them
to
revisit
this
feature.
Spec
yeah.
A
And
I
think
that's
a
cool
way
of
taking
it
too
either
one
of
those
it's.
B
A
I
liked
I
liked
our
way
Chad
and
I
had
a
fun
interaction.
This
it
was
like
two
two
to
three
years
ago,
where
we
were
I
think
effectively
refactoring
something
there's
a
top
menu
right,
but
we
we
knew
that
the
feature
specs
weren't
going
to
change
something
like
that
like
we
knew
the
feature
specs
weren't
going
to
change,
but
we
wanted
to
set
it
up
such
that
those
features
are
going
to
be
ready
to
go
when
the
somehow
we
use
pending,
specs
and
stuff
to
like
to
like
it
was.
A
It
was
an
interesting
approach
and
I.
Remember
it
being
really
helpful.
We
we
had
a
context
for
every
one
of
these
files
for
like
with
feature
flag
on
which
feature
flag
offs
and
the
one
was
on
was
going
to
have
the
same
feature
specs,
but
but
it
like
decorated
pending
around
it,
because
those
weren't
quite
ready
yet,
but
then,
once
it
came
to
removing
everything
it
was
just
it
was.
It
was
pretty.
B
A
A
Another
gotcha
here
that
I
discovered
with
the
broken
master
that
that
we
ran
into
Chad
when
we
were
working
on
Saturday
or
something
which
is
normal
schedule.
For
me,
a
surprise
Chad
was
on.
A
Oh
okay,
I'm
just
playing
the
some
spec.
The
reason
we
the
author
knew
to
put
these
here
is
because
they
used
the
pipeline
failures
to
dictate
I
need
to
throw
these
feature
Flags,
however,
some
specs
are
pending,
or
that
might.
A
B
About
that
I
saw
the
post
about
that
that
someone
posted
so
I
also
ran
into
that
where
a
bug
got
through
an
MR
that
we
reviewed
and
I'm
like.
How
are
these
specs
passing,
because
the
specs
are
changed
and
I
looked
and
I'm
like
these
specs
are
wrong,
like
they
should
not
pass,
and
then
nothing
was
in
the
pipeline.
The
entire
top
level
of
the
spec
was
skipped
with
an
issue
assigned
to
it
and
I'm
like
so.
B
We
made
changes
to
the
spec,
it's
not
even
being
run,
and
if
you
didn't
run
it
locally,
you
wouldn't
know
that
it
wasn't
being
run
and
so
I
almost
wish.
There
was
some
automation
or
pipeline.
That's
like
they
are
flaky
specs
that
this
Mr
touches
like
you
should
fix
them,
or
at
least
be
aware
that
this
is
skipped
so
that
you
can
take
a
look
at
it.
It's.
A
Worth
at
it's
worth,
introducing
a
it's
worth
asking
a
question
on
slack:
if
would
running,
would
adding
the
pipeline
run
all
spec
or
something
does
that
skip
our
skipping
thing?
What's
really
scary
to
me
is:
what's
defined
as
flaky
comes
from
some
something
outside
of
our
code
base,
I
think
so.
C
B
A
A
So
that's
something
to
think
about,
potentially
even
like
jihu
may
have
like.
We
may
be
inadvertently
breaking
their
pipeline
because
they
may
have
their
own
specs.
We.
B
B
Thanks
for
looking
through
the
Mr
with
me
and
I,
really
appreciate
the
suggestions,
I'm
Gonna
Keep
Those
in
the
back
of
my
mind
for
the
next
time,
I
see
this
feature
flag
thanks.