Re: [PATCH] log: Do not decorate replacements with --no-replace-objects
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Aug 25, 2011, 13:55 UTC
- Message-ID
- <CACsJy8BOhU7-aTN2TPRRoQ=_mSfbOstXFRfpyoPmrr_Gbqg0pg@mail.gmail.com>
- In-Reply-To
- <ad41e81daa6f9fc4654ae4c312f293202519a5d0.1314279822.git.git@drmicha.warpmail.net>
2011/8/25 Michael J Gruber <git@drmicha.warpmail.net>:
> Make it so that additionally the use of --no-replace-objects is > detected: I.e. replaced commits are only decorated as replaced when they > are actually replaced.
Yeah.. I forgot about this.
Show 9 quoted lines
> @@ -95,7 +95,7 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in
> struct object *obj;
> enum decoration_type type = DECORATION_NONE;
>
> - if (!prefixcmp(refname, "refs/replace/")) {
> + if (read_replace_refs && !prefixcmp(refname, "refs/replace/")) {
> unsigned char original_sha1[20];
> if (get_sha1_hex(refname + 13, original_sha1)) {
> warning("invalid replace ref %s", refname);You should put "if (!read_replace_refs) return 0;" inside "if (!prefixcmp..", otherwise it'll come to the ref decoration code below and my second paragraph in 5267d29's commit message will be reverted.
I thought my patch was - simple - replace is rarely used therefore neglected the tests. Perhaps you can also add a few tests here. It's not that simple after all.
-- Duy