# Feature Suggestion: Allow to enforce "rename" in git while committing

2 messages from 2020-02-14 to 2020-02-14. Participants: Bruno Macabeus, Junio C Hamano.
Thread: https://gitlist.dev/t/52806

## Bruno Macabeus, 2020-02-14 21:23

Subject: Feature Suggestion: Allow to enforce "rename" in git while committing
Message-ID: <CANnkH-ViK9qySZGi=xbcE4YDiskhLxDsH21DMxTEHi6=X0EZuQ@mail.gmail.com>
URL: https://gitlist.dev/e/CANnkH-ViK9qySZGi%3DxbcE4YDiskhLxDsH21DMxTEHi6%3DX0EZuQ%40mail.gmail.com

```
Hello for all,

initially I posted a question on Stack Overflow asking if is possible
to do something using Git, but seems that there is no away to do that,
and I think that it could be useful in order to improve the
organisation on logs.

My user case is:
- I'm doing a refactor on a project, migrating from JS to TS
- So I need to rename a file from index.js to index.ts (for example)
- Since the TS build steps are different, I also need to change its contents
- Sometimes I need to do so much changes that git thinks that I
removed index.js and created index.ts, but it's wrong, losing its
tracking on logs!

I should not create one commit just renaming the file and on another
commit updating its content, because the project won't build on the
first commit (since the build steps is different on a .ts file). And I
don't want to create a commit that the project can't be built on.

So I think that would be useful explicitly say to git "Hey, you should
forgot the minimum similarity threshold on this file and on this
commit. I renamed this file from index.js to index.ts. You should bind
they".

Is it make sense?

Thank you!

```

## Junio C Hamano, 2020-02-14 21:38

Subject: Re: Feature Suggestion: Allow to enforce "rename" in git while committing
Message-ID: <xmqqa75konnj.fsf@gitster-ct.c.googlers.com>
URL: https://gitlist.dev/e/xmqqa75konnj.fsf%40gitster-ct.c.googlers.com
In-Reply-To: <CANnkH-ViK9qySZGi=xbcE4YDiskhLxDsH21DMxTEHi6=X0EZuQ@mail.gmail.com>

```
Bruno Macabeus <bruno.macabeus@gmail.com> writes:

> I should not create one commit just renaming the file and on another
> commit updating its content, because the project won't build on the
> first commit (since the build steps is different on a .ts file). And I
> don't want to create a commit that the project can't be built on.

Even if you did the two-step renaming, comparing the end result
(i.e. HEAD) with the state before these two commits (i.e. HEAD~2,
before renaming and before editing) with "git diff HEAD~2 HEAD" will
not behave any differently if you did the renaming and modifying in
a single commit.  So it does not make much sense to split it into
two artificial steps at all.



```
