diff mbox series

[03/11] push: reorganize setup_push_simple()

Message ID 20210528201014.2175179-4-felipe.contreras@gmail.com (mailing list archive)
State Superseded
Headers show
Series Unconvolutize push.default=simple | expand

Commit Message

Felipe Contreras May 28, 2021, 8:10 p.m. UTC
Simply move the code around.

No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 builtin/push.c | 29 ++++++++++++-----------------
 1 file changed, 12 insertions(+), 17 deletions(-)

Comments

Elijah Newren May 28, 2021, 8:52 p.m. UTC | #1
On Fri, May 28, 2021 at 1:10 PM Felipe Contreras
<felipe.contreras@gmail.com> wrote:
>
> Simply move the code around.

Not quite, you also deleted dead code.  Made the patch a bit harder to
read because I was trying to verify you did what the commit message
said and it took me longer than it should have to realize that you
were also deleting dead code.  Might be worth including that fact in
this sentence here.

> No functional changes.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  builtin/push.c | 29 ++++++++++++-----------------
>  1 file changed, 12 insertions(+), 17 deletions(-)
>
> diff --git a/builtin/push.c b/builtin/push.c
> index d173c39283..9c807ed707 100644
> --- a/builtin/push.c
> +++ b/builtin/push.c
> @@ -225,13 +225,14 @@ static void setup_push_current(struct remote *remote, struct branch *branch)
>
>  static void setup_push_simple(struct remote *remote, struct branch *branch, int triangular)
>  {
> +       const char *dst;
> +
> +       if (!branch)
> +               die(_(message_detached_head_die), remote->name);
> +
>         if (triangular) {
> -               if (!branch)
> -                       die(_(message_detached_head_die), remote->name);
> -               refspec_appendf(&rs, "%s:%s", branch->refname, branch->refname);
> +               dst = branch->refname;
>         } else {
> -               if (!branch)
> -                       die(_(message_detached_head_die), remote->name);
>                 if (!branch->merge_nr || !branch->merge || !branch->remote_name)
>                         die(_("The current branch %s has no upstream branch.\n"
>                             "To push the current branch and set the remote as upstream, use\n"
> @@ -243,20 +244,14 @@ static void setup_push_simple(struct remote *remote, struct branch *branch, int
>                 if (branch->merge_nr != 1)
>                         die(_("The current branch %s has multiple upstream branches, "
>                             "refusing to push."), branch->name);
> -               if (triangular)
> -                       die(_("You are pushing to remote '%s', which is not the upstream of\n"
> -                             "your current branch '%s', without telling me what to push\n"
> -                             "to update which remote branch."),
> -                           remote->name, branch->name);

This if-block is safe to delete because we're already in the !triangular case.


> -
> -               if (1) {
> -                       /* Additional safety */
> -                       if (strcmp(branch->refname, branch->merge[0]->src))
> -                               die_push_simple(branch, remote);
> -               }
>
> -               refspec_appendf(&rs, "%s:%s", branch->refname, branch->merge[0]->src);
> +               /* Additional safety */
> +               if (strcmp(branch->refname, branch->merge[0]->src))
> +                       die_push_simple(branch, remote);
> +
> +               dst = branch->merge[0]->src;
>         }
> +       refspec_appendf(&rs, "%s:%s", branch->refname, dst);
>  }
>
>  static int is_workflow_triangular(struct remote *remote)
> --
> 2.32.0.rc0

Everything else is, as you say, just moving code around.
Felipe Contreras May 28, 2021, 9:27 p.m. UTC | #2
Elijah Newren wrote:
> On Fri, May 28, 2021 at 1:10 PM Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
> >
> > Simply move the code around.
> 
> Not quite, you also deleted dead code.  Made the patch a bit harder to
> read because I was trying to verify you did what the commit message
> said and it took me longer than it should have to realize that you
> were also deleting dead code.  Might be worth including that fact in
> this sentence here.

OK. I thought that was obvious.

Shall I update the commit message to include that fact, or shall I add a
separate patch to remove the dead code?

Either are fine by me.

> > -               if (triangular)
> > -                       die(_("You are pushing to remote '%s', which is not the upstream of\n"
> > -                             "your current branch '%s', without telling me what to push\n"
> > -                             "to update which remote branch."),
> > -                           remote->name, branch->name);
> 
> This if-block is safe to delete because we're already in the !triangular case.
> 
> > -
> > -               if (1) {

Techically this is removing dead code too.
Elijah Newren May 28, 2021, 9:42 p.m. UTC | #3
On Fri, May 28, 2021 at 2:27 PM Felipe Contreras
<felipe.contreras@gmail.com> wrote:
>
> Elijah Newren wrote:
> > On Fri, May 28, 2021 at 1:10 PM Felipe Contreras
> > <felipe.contreras@gmail.com> wrote:
> > >
> > > Simply move the code around.
> >
> > Not quite, you also deleted dead code.  Made the patch a bit harder to
> > read because I was trying to verify you did what the commit message
> > said and it took me longer than it should have to realize that you
> > were also deleting dead code.  Might be worth including that fact in
> > this sentence here.
>
> OK. I thought that was obvious.

It is if you are familiar with the code, or if you still remember that
condition when you get to that point in the review, or if you happen
to look at the right line of code while mulling it over.
Unfortunately, I'm not familiar with this code, didn't happen to
remember the outer if-block when I got to that point in the
comparison, and didn't at first look back to the relevant line to
realize this.  So I started looking elsewhere for why removing that
condition didn't amount to functional changes and started trying to
figure out a testcase that would give different behavior.  I suspect I
would have realized sooner if not for the claim that you "simply moved
code around", so I just flagged it.  Not a big deal, just something
that I think could make it easier for other reviewers.

> Shall I update the commit message to include that fact, or shall I add a
> separate patch to remove the dead code?

I'd just tweak the commit message to mention you are just deleting
dead code and moving code around.

> Either are fine by me.
>
> > > -               if (triangular)
> > > -                       die(_("You are pushing to remote '%s', which is not the upstream of\n"
> > > -                             "your current branch '%s', without telling me what to push\n"
> > > -                             "to update which remote branch."),
> > > -                           remote->name, branch->name);
> >
> > This if-block is safe to delete because we're already in the !triangular case.
> >
> > > -
> > > -               if (1) {
>
> Techically this is removing dead code too.

Yep, true.
diff mbox series

Patch

diff --git a/builtin/push.c b/builtin/push.c
index d173c39283..9c807ed707 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -225,13 +225,14 @@  static void setup_push_current(struct remote *remote, struct branch *branch)
 
 static void setup_push_simple(struct remote *remote, struct branch *branch, int triangular)
 {
+	const char *dst;
+
+	if (!branch)
+		die(_(message_detached_head_die), remote->name);
+
 	if (triangular) {
-		if (!branch)
-			die(_(message_detached_head_die), remote->name);
-		refspec_appendf(&rs, "%s:%s", branch->refname, branch->refname);
+		dst = branch->refname;
 	} else {
-		if (!branch)
-			die(_(message_detached_head_die), remote->name);
 		if (!branch->merge_nr || !branch->merge || !branch->remote_name)
 			die(_("The current branch %s has no upstream branch.\n"
 			    "To push the current branch and set the remote as upstream, use\n"
@@ -243,20 +244,14 @@  static void setup_push_simple(struct remote *remote, struct branch *branch, int
 		if (branch->merge_nr != 1)
 			die(_("The current branch %s has multiple upstream branches, "
 			    "refusing to push."), branch->name);
-		if (triangular)
-			die(_("You are pushing to remote '%s', which is not the upstream of\n"
-			      "your current branch '%s', without telling me what to push\n"
-			      "to update which remote branch."),
-			    remote->name, branch->name);
-
-		if (1) {
-			/* Additional safety */
-			if (strcmp(branch->refname, branch->merge[0]->src))
-				die_push_simple(branch, remote);
-		}
 
-		refspec_appendf(&rs, "%s:%s", branch->refname, branch->merge[0]->src);
+		/* Additional safety */
+		if (strcmp(branch->refname, branch->merge[0]->src))
+			die_push_simple(branch, remote);
+
+		dst = branch->merge[0]->src;
 	}
+	refspec_appendf(&rs, "%s:%s", branch->refname, dst);
 }
 
 static int is_workflow_triangular(struct remote *remote)