On Sat, Oct 13, 2018 at 10:12 AM Tao Qingyun <taoqy@xxxxxxx> wrote: > Hi, I am learning `builtin/branch.c`. I find that it will call `branch_get` > before create and [un]set upstream, and die with "no such branch" if failed. > but `branch_get` seems never fail, it is a get_or_create. Also, it was > confused that getting a branch before it has created. > > builtin/branch.c #811 > > } else if (argc > 0 && argc <= 2) { > struct branch *branch = branch_get(argv[0]); > > if (!branch) > die(_("no such branch '%s'"), argv[0]); >From my reading of the source you're correct. That !branch case is pointless. The only way that function can fail is in the x*() family of functions, which'll make the function die instead of returning NULL.