Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgWorkingCopyStatusCollector.java @ 367:2fadf8695f8a
Use 'revision index' instead of the vague 'local revision number' concept in the API
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 16 Dec 2011 15:37:27 +0100 |
parents | 189dc6dc1c3e |
children | 5e95b0da26f2 |
comparison
equal
deleted
inserted
replaced
366:189dc6dc1c3e | 367:2fadf8695f8a |
---|---|
137 private void initDirstateParentManifest() throws HgInvalidControlFileException { | 137 private void initDirstateParentManifest() throws HgInvalidControlFileException { |
138 Nodeid dirstateParent = getDirstateImpl().parents().first(); | 138 Nodeid dirstateParent = getDirstateImpl().parents().first(); |
139 if (dirstateParent.isNull()) { | 139 if (dirstateParent.isNull()) { |
140 dirstateParentManifest = baseRevisionCollector != null ? baseRevisionCollector.raw(-1) : HgStatusCollector.createEmptyManifestRevision(); | 140 dirstateParentManifest = baseRevisionCollector != null ? baseRevisionCollector.raw(-1) : HgStatusCollector.createEmptyManifestRevision(); |
141 } else { | 141 } else { |
142 int changelogLocalRev = repo.getChangelog().getLocalRevision(dirstateParent); | 142 int changeloRevIndex = repo.getChangelog().getRevisionIndex(dirstateParent); |
143 dirstateParentManifest = getManifest(changelogLocalRev); | 143 dirstateParentManifest = getManifest(changeloRevIndex); |
144 } | 144 } |
145 } | 145 } |
146 | 146 |
147 // WC not necessarily points to TIP, but may be result of update to any previous revision. | 147 // WC not necessarily points to TIP, but may be result of update to any previous revision. |
148 // In such case, we need to compare local files not to their TIP content, but to specific version at the time of selected revision | 148 // In such case, we need to compare local files not to their TIP content, but to specific version at the time of selected revision |
151 } | 151 } |
152 | 152 |
153 // may be invoked few times, TIP or WORKING_COPY indicate comparison shall be run against working copy parent | 153 // may be invoked few times, TIP or WORKING_COPY indicate comparison shall be run against working copy parent |
154 // NOTE, use of TIP constant requires certain care. TIP here doesn't mean latest cset, but actual working copy parent. | 154 // NOTE, use of TIP constant requires certain care. TIP here doesn't mean latest cset, but actual working copy parent. |
155 public void walk(int baseRevision, HgStatusInspector inspector) throws HgInvalidControlFileException, IOException { | 155 public void walk(int baseRevision, HgStatusInspector inspector) throws HgInvalidControlFileException, IOException { |
156 if (HgInternals.wrongLocalRevision(baseRevision) || baseRevision == BAD_REVISION) { | 156 if (HgInternals.wrongRevisionIndex(baseRevision) || baseRevision == BAD_REVISION) { |
157 throw new IllegalArgumentException(String.valueOf(baseRevision)); | 157 throw new IllegalArgumentException(String.valueOf(baseRevision)); |
158 } | 158 } |
159 if (getDirstateImpl() == null) { | 159 if (getDirstateImpl() == null) { |
160 getDirstate(); | 160 getDirstate(); |
161 } | 161 } |
412 private boolean areTheSame(FileInfo f, HgDataFile dataFile, Nodeid revision) { | 412 private boolean areTheSame(FileInfo f, HgDataFile dataFile, Nodeid revision) { |
413 // XXX consider adding HgDataDile.compare(File/byte[]/whatever) operation to optimize comparison | 413 // XXX consider adding HgDataDile.compare(File/byte[]/whatever) operation to optimize comparison |
414 ByteArrayChannel bac = new ByteArrayChannel(); | 414 ByteArrayChannel bac = new ByteArrayChannel(); |
415 boolean ioFailed = false; | 415 boolean ioFailed = false; |
416 try { | 416 try { |
417 int localRevision = dataFile.getLocalRevision(revision); | 417 int fileRevisionIndex = dataFile.getRevisionIndex(revision); |
418 // need content with metadata striped off - although theoretically chances are metadata may be different, | 418 // need content with metadata striped off - although theoretically chances are metadata may be different, |
419 // WC doesn't have it anyway | 419 // WC doesn't have it anyway |
420 dataFile.content(localRevision, bac); | 420 dataFile.content(fileRevisionIndex, bac); |
421 } catch (CancelledException ex) { | 421 } catch (CancelledException ex) { |
422 // silently ignore - can't happen, ByteArrayChannel is not cancellable | 422 // silently ignore - can't happen, ByteArrayChannel is not cancellable |
423 } catch (HgException ex) { | 423 } catch (HgException ex) { |
424 repo.getContext().getLog().warn(getClass(), ex, null); | 424 repo.getContext().getLog().warn(getClass(), ex, null); |
425 ioFailed = true; | 425 ioFailed = true; |