threads / discuss / 52806

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

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

## tl;dr

2 messages between Feb 14, 2020 and Feb 14, 2020.

replies: 1people: 2as markdown or json

Bruno Macabeus· Feb 14, 2020, 21:23 UTC · lore
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· Feb 14, 2020, 21:38 UTC · re: Bruno Macabeus · lore

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

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.

← back to recent threads