Re: [PATCH v2 2/2] merge-base: "--reflog" mode finds fork point from reflog entries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 10/25/2013 0:21, schrieb Junio C Hamano:
> +test_expect_success 'using reflog to find the fork point' '
> +	git reset --hard &&
> +	git checkout -b base $E &&
> +
> +	for count in 1 2 3 4 5
> +	do
> +		git commit --allow-empty -m "Base commit #$count" &&
> +		git rev-parse HEAD >expect$count &&
> +		git checkout -B derived &&
> +		git commit --allow-empty -m "Derived #$count" &&
> +		git rev-parse HEAD >derived$count &&
> +		git checkout base || break
> +	done &&
> +
> +	for count in 1 2 3 4 5
> +	do
> +		git merge-base --reflog base $(cat derived$count) >actual &&
> +		test_cmp expect$count actual || break
> +	done &&

This does not work as intended because the exit code of 'break' is always
zero. Unlike 'exit' and 'return', it does *not* pick up the exit code of
the last command that was executed.

That's annoying, but makes some sense because 'break 2' does not mean to
apply exit code 2 to the command, either, but to break out of 2 levels of
loops.

You could put the loops into a function from which you 'return', but that
is obscure in this case. The first iteration was better, IMO.

> +
> +	# check defaulting to HEAD
> +	git merge-base --reflog base >actual &&
> +	test_cmp expect5 actual
> +'
> +
>  test_done

-- Hannes
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]