comparison src/org/tmatesoft/hg/repo/HgWorkingCopyStatusCollector.java @ 337:f377f833b780

Issue 17: temporary code to nail down the problem
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 15 Nov 2011 03:07:28 +0100
parents 15e1961719f2
children a0864b2892cd
comparison
equal deleted inserted replaced
336:f74e36b7344b 337:f377f833b780
28 import java.util.Collections; 28 import java.util.Collections;
29 import java.util.NoSuchElementException; 29 import java.util.NoSuchElementException;
30 import java.util.Set; 30 import java.util.Set;
31 import java.util.TreeSet; 31 import java.util.TreeSet;
32 32
33 import org.tmatesoft.hg.core.HgBadStateException;
33 import org.tmatesoft.hg.core.HgDataStreamException; 34 import org.tmatesoft.hg.core.HgDataStreamException;
34 import org.tmatesoft.hg.core.HgException; 35 import org.tmatesoft.hg.core.HgException;
35 import org.tmatesoft.hg.core.Nodeid; 36 import org.tmatesoft.hg.core.Nodeid;
36 import org.tmatesoft.hg.internal.ByteArrayChannel; 37 import org.tmatesoft.hg.internal.ByteArrayChannel;
37 import org.tmatesoft.hg.internal.Experimental; 38 import org.tmatesoft.hg.internal.Experimental;
269 inspector.modified(fname); 270 inspector.modified(fname);
270 } else { 271 } else {
271 // size is the same or unknown, and, perhaps, different timestamp 272 // size is the same or unknown, and, perhaps, different timestamp
272 // check actual content to avoid false modified files 273 // check actual content to avoid false modified files
273 HgDataFile df = repo.getFileNode(fname); 274 HgDataFile df = repo.getFileNode(fname);
275 if (!df.exists()) {
276 String msg = String.format("File %s known as normal in dirstate (%d, %d), doesn't exist at %s", fname, r.modificationTime(), r.size(), repo.getStoragePath(df));
277 throw new HgBadStateException(msg);
278 }
274 Nodeid rev = getDirstateParentManifest().nodeid(fname); 279 Nodeid rev = getDirstateParentManifest().nodeid(fname);
275 // rev might be null here if fname comes to dirstate as a result of a merge operation 280 // rev might be null here if fname comes to dirstate as a result of a merge operation
276 // where one of the parents (first parent) had no fname file, but second parent had. 281 // where one of the parents (first parent) had no fname file, but second parent had.
277 // E.g. fork revision 3, revision 4 gets .hgtags, few modifications and merge(3,12) 282 // E.g. fork revision 3, revision 4 gets .hgtags, few modifications and merge(3,12)
278 // see Issue 14 for details 283 // see Issue 14 for details