# -B option of git log

3 messages from 2013-02-22 to 2013-02-22. Participants: Eckhard Maass, Jeff King.
Thread: https://gitlist.dev/t/32968

## Eckhard Maass, 2013-02-22 00:44

Subject: -B option of git log
Message-ID: <5126BF50.6020500@gmx.net>
URL: https://gitlist.dev/e/5126BF50.6020500%40gmx.net

```
Hello,

As far as I understand the documentation, -B of git-log should help
correct rename detection. But it does not seem to work for me.

Let me get a setup:

$> git init .
Initialized empty Git repository in /tmp/t2/.git/
$> echo 'Lorem ipsum doler sed. Lorem ipsum doler sed. Lorem ipsum doler
sed. Lorem ipsum doler sed.' > a
$> git add a
$> git commit -m 'Init.'
[master (root-commit) b78205c] Init.
 1 file changed, 1 insertion(+)
 create mode 100644 a
$> mv a b
$> echo 'new' > a
$> git add -A .
$> git commit -m '2nd.'
[master a30ca49] 2nd.
 2 files changed, 2 insertions(+), 1 deletion(-)
 create mode 100644 b

Now, I get the following:

$> git log --oneline -B20%/80% -M20% --name-status
a30ca49 2nd.
M       a
A       b
b78205c Init.
A       a

But I would expect that git-log shows me a rename from a to b and a new a.

What is my misunderstanding? (And I tried it also with files with a
couple of lines.)

SEcki

```

## Jeff King, 2013-02-22 00:57

Subject: Re: -B option of git log
Message-ID: <20130222005704.GA24287@sigill.intra.peff.net>
URL: https://gitlist.dev/e/20130222005704.GA24287%40sigill.intra.peff.net
In-Reply-To: <5126BF50.6020500@gmx.net>

```
On Fri, Feb 22, 2013 at 01:44:00AM +0100, Eckhard Maass wrote:

> Let me get a setup:
> 
> $> git init .
> Initialized empty Git repository in /tmp/t2/.git/
> $> echo 'Lorem ipsum doler sed. Lorem ipsum doler sed. Lorem ipsum doler
> sed. Lorem ipsum doler sed.' > a
> $> git add a
> $> git commit -m 'Init.'
> [master (root-commit) b78205c] Init.
>  1 file changed, 1 insertion(+)
>  create mode 100644 a
> $> mv a b
> $> echo 'new' > a
> $> git add -A .
> $> git commit -m '2nd.'
> [master a30ca49] 2nd.
>  2 files changed, 2 insertions(+), 1 deletion(-)
>  create mode 100644 b
> 
> Now, I get the following:
> 
> $> git log --oneline -B20%/80% -M20% --name-status
> a30ca49 2nd.
> M       a
> A       b
> b78205c Init.
> A       a
> 
> But I would expect that git-log shows me a rename from a to b and a new a.

I think the problem is that your test file is so tiny that it falls
afoul of git's MINIMUM_BREAK_SIZE heuristic of 400 bytes (which prevents
false positives on tiny files). Try replacing your "Lorem ipsum" echo
with something like "seq 1 150", and I think you will find the result
you are expecting.

-Peff

```

## Eckhard Maass, 2013-02-22 10:14

Subject: Re: -B option of git log
Message-ID: <5127450C.5040908@gmx.net>
URL: https://gitlist.dev/e/5127450C.5040908%40gmx.net
In-Reply-To: <20130222005704.GA24287@sigill.intra.peff.net>

```
On 02/22/2013 01:57 AM, Jeff King wrote:
> I think the problem is that your test file is so tiny that it falls
> afoul of git's MINIMUM_BREAK_SIZE heuristic of 400 bytes (which prevents
> false positives on tiny files). Try replacing your "Lorem ipsum" echo
> with something like "seq 1 150", and I think you will find the result
> you are expecting.
Thanks. Two points, though:

With bigger files, I do get something like:
| M100  d
| R100  d       e

The rename is fine. But I am a bit puzzled mit the M - I, somehow,
would have expected an A for add and not a M.

Secondly, would it be a good idea to enhance the documentation on
that point to clarify this minimum size?

SEcki

```
