Issues in VCS plugins

Alexander Potashev aspotashev at gmail.com
Fri Feb 24 19:18:51 UTC 2017


Hi,

While working on the Paste command [1], I discovered a few problems
that might be or not be bugs, nevertheless I'm posting them here for
comments and for the record:

 1. KDevelop::copyUrl() calls vcs->copy() when the source path is
VCS-controlled, but it doesn't check if the source and destination
belong to the same VCS root. It doesn't lead to problems when copying
between different Git roots because of Git plugin implementation,
however the SVN plugin implementation looks different and it might
fail in the same scenario.

 2. GitPlugin::move() has no information about the open KDevelop
projects, thus with two nested Git repos move must fail when e.g.
moving from the inner Git root to the outer Git root (consider a
destination dir inside the outer Git root but outside the inner one at
the same time).

Sorry for writing this, I'm lazy to reproduce both of the above, but
the above thoughts might be helpful for someone writing unit tests or
redesigning the KDev interfaces.

3. bool IProjectFileManager::moveFilesAndFolders() can move multiple
files/folders, but returns only one boolean by which you can't tell
how many files have actually moved. Same problem with
removeFilesAndFolders, copyFilesAndFolders. I'm thinking of making one
call to moveFilesAndFolders() per file/folder.


[1] https://phabricator.kde.org/D4772

-- 
Alexander Potashev


More information about the KDevelop-devel mailing list