mirror of
https://github.com/git/git
synced 2024-11-05 18:59:29 +00:00
builtin/replace: unset read_replace_refs
When checking to see if some objects are of the same type and when displaying the type of objects, git replace uses the sha1_object_info() function. Unfortunately this function by default respects replace refs, so instead of the type of a replaced object, it gives the type of the replacement object which might be different. To fix this bug, and because git replace should work at a level before replacement takes place, let's unset the read_replace_refs global variable at the beginning of cmd_replace(). Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
bbbb4afc26
commit
769a4fa463
2 changed files with 3 additions and 1 deletions
|
@ -174,6 +174,8 @@ int cmd_replace(int argc, const char **argv, const char *prefix)
|
|||
OPT_END()
|
||||
};
|
||||
|
||||
read_replace_refs = 0;
|
||||
|
||||
argc = parse_options(argc, argv, prefix, options, git_replace_usage, 0);
|
||||
|
||||
if (list && delete)
|
||||
|
|
|
@ -306,7 +306,7 @@ test_expect_success 'test --format medium' '
|
|||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_failure 'test --format full' '
|
||||
test_expect_success 'test --format full' '
|
||||
{
|
||||
echo "$H1 (commit) -> $BLOB (blob)" &&
|
||||
echo "$BLOB (blob) -> $REPLACED (blob)" &&
|
||||
|
|
Loading…
Reference in a new issue