Bug 314232 - git commit cannot rename files: instead it creates and deletes in a two-stage commit process.
Summary: git commit cannot rename files: instead it creates and deletes in a two-stage...
Status: RESOLVED FIXED
Alias: None
Product: kdevplatform
Classification: Developer tools
Component: git (show other bugs)
Version: git master
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: 1.3.0
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-01 04:20 UTC by Jeremy W. Murphy
Modified: 2013-03-01 03:36 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy W. Murphy 2013-02-01 04:20:52 UTC
Usually, renaming a file in a git repository is committed in one step as a rename.  However if you commit using the git plugin in KDevelop, then any renames are committed first as a file creation (of the new file), then the old files are deleted on the next commit.

It's not a problem with the rename action in the git plugin, because you can rename in KDevelop and then commit using git at the command line with no problems.
Comment 1 Aleix Pol 2013-02-27 16:04:00 UTC
Can you explain a little more what you mean? How do you rename then?
Comment 2 Jeremy W. Murphy 2013-02-28 00:03:19 UTC
Right-click on a file in the Projects tab and choose Rename.
Comment 3 Aleix Pol 2013-02-28 00:40:05 UTC
Here it worked fine. Can you please describe how you do it...?
Comment 4 Jeremy W. Murphy 2013-02-28 01:17:43 UTC
I just tested it again, still happens.

Create a file and Git->Add it to your project.
Using KDevelop, Rename the file.
At this point...
* $ git status: Says that the old file is renamed to the new file.
* Project->Git->Commit: the overview looks like it is deleting the old file and creating the new file, but only the new file is listed as Modified.
Now if I go ahead with the Commit in KDevelop, afterwards...
* $ git status: Deletion of the old file is listed as a change to be committed.  I.e.: although it was deleted from the filesystem, KDevelop did not commit the change to the repository.
So another commit has to be made to complete the rename, although now it hasn't been actually renamed, but files with different names and identical content were created and then deleted in consecutive commits.
Comment 5 Aleix Pol 2013-03-01 03:36:28 UTC
Git commit f07500c0a6e38cb5f32280f4bc7f116046eb9c67 by Aleix Pol.
Committed on 01/03/2013 at 04:35.
Pushed by apol into branch 'master'.

Improve git status support

When a file is renamed, report the name that has been removed too, so that
when we commit it, the removed files are passed too.

M  +18   -13   plugins/git/gitplugin.cpp

http://commits.kde.org/kdevplatform/f07500c0a6e38cb5f32280f4bc7f116046eb9c67
Comment 6 Aleix Pol 2013-03-01 03:36:51 UTC
Git commit 09d1eb16d35c2401dcf0fe2dcf5526efde31422b by Aleix Pol.
Committed on 01/03/2013 at 04:35.
Pushed by apol into branch '1.5'.

Improve git status support

When a file is renamed, report the name that has been removed too, so that
when we commit it, the removed files are passed too.

M  +18   -13   plugins/git/gitplugin.cpp

http://commits.kde.org/kdevplatform/09d1eb16d35c2401dcf0fe2dcf5526efde31422b