Should a locally modified, remotely removed file be handled as a conflict in an update? (retry -- with apologies)
From: Peter Mb <mb.peter_at_yahoo.com>
Date: Mon, 7 Jan 2008 04:51:08 -0800 (PST)
Recently I noticed that when one has modified a file locally and does an update when someone else has removed or moved the file to another directory and commited, the locally modified file is no longer marked is being under svn control but keeps its original filename.
This may lead to several problems:
- A file may have become obsolete due to a refactoring by one developer. This developer removes the file and commits. A second developer concurrently adds fucncionallity to the file as part of another refactoring. When the latter does an update there are conflicting refactorings. The deleted file is not marked as being a part of the conflict, but it surely is.
- The file is moved remotely, the developer that has a modified copy locally does an update. The subsequent local build fails because of doubly defined symbols.
- A developer removes a file by accident, commits, another developer does an update, having the removed file modified. The local build succeeds. That the repository is in a non-buildable state goes unnoticed longer than it should.
Note that even trivial changes,.added white space, an added debugging statement, for instance, leads to the last two problems.
My suggestion would be, at he very least, to rename the remotely removed file to <filename>.mine, similar to what a failed merge does. This way, the conflict stands out and the file no longer takes part in the build.
Any thoughts on this, please?
This is an archived mail posted to the Subversion Users mailing list.