diff src/org/tmatesoft/hg/repo/HgWorkingCopyStatusCollector.java @ 473:5c09a9f2e073

Issue 34: incorrect status for a file copy in wc against base rev
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 11 Jul 2012 22:45:29 +0200
parents 7bcfbc255f48
children b3c16d1aede0
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgWorkingCopyStatusCollector.java	Wed Jul 11 21:46:28 2012 +0200
+++ b/src/org/tmatesoft/hg/repo/HgWorkingCopyStatusCollector.java	Wed Jul 11 22:45:29 2012 +0200
@@ -270,9 +270,12 @@
 			}
 		}
 		if (collect != null) {
+			// perhaps, this code shall go after processing leftovers of knownEntries, below
+			// as it's sort of last resort - what to do with otherwise unprocessed base revision files
 			for (Path fromBase : baseRevFiles) {
 				if (repoWalker.inScope(fromBase)) {
 					inspector.removed(fromBase);
+					processed.add(fromBase);
 					cs.checkCancelled();
 				}
 			}
@@ -404,7 +407,8 @@
 				}
 			} else if ((r = ds.checkAdded(fname)) != null) {
 				if (r.copySource() != null && baseRevNames.contains(r.copySource())) {
-					baseRevNames.remove(r.copySource()); // FIXME likely I shall report rename source as Removed, same as above for Normal?
+					// shall not remove rename source from baseRevNames, as the source
+					// likely needs to be reported as Removed as well
 					inspector.copied(r.copySource(), fname);
 					return;
 				}