comparison test/org/tmatesoft/hg/test/TestCommit.java @ 607:66f1cc23b906

Refresh revlogs if a change to a file has been detected; do not force reload of the whole repository
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 07 May 2013 16:52:46 +0200
parents c56edf42be64
children dca70c0b1f74
comparison
equal deleted inserted replaced
606:5daa42067e7c 607:66f1cc23b906
131 cf.add(dfD, contentProvider); 131 cf.add(dfD, contentProvider);
132 cf.branch("branch1"); 132 cf.branch("branch1");
133 Nodeid commitRev1 = cf.commit("FIRST"); 133 Nodeid commitRev1 = cf.commit("FIRST");
134 contentProvider.done(); 134 contentProvider.done();
135 // 135 //
136 // FIXME requirement to reload repository is disgusting
137 hgRepo = new HgLookup().detect(repoLoc);
138 List<HgChangeset> commits = new HgLogCommand(hgRepo).range(parentCsetRevIndex+1, TIP).execute(); 136 List<HgChangeset> commits = new HgLogCommand(hgRepo).range(parentCsetRevIndex+1, TIP).execute();
139 assertEquals(1, commits.size()); 137 assertEquals(1, commits.size());
140 HgChangeset c1 = commits.get(0); 138 HgChangeset c1 = commits.get(0);
141 errorCollector.assertEquals(c1.getNodeid(), commitRev1); 139 errorCollector.assertEquals(c1.getNodeid(), commitRev1);
142 errorCollector.assertEquals("branch1", c1.getBranch()); 140 errorCollector.assertEquals("branch1", c1.getBranch());
162 cf.forget(hgRepo.getFileNode("d")); 160 cf.forget(hgRepo.getFileNode("d"));
163 Nodeid commitRev = cf.commit("Commit with add/remove cmd"); 161 Nodeid commitRev = cf.commit("Commit with add/remove cmd");
164 contentProvider.done(); 162 contentProvider.done();
165 // Note, working directory still points to original revision, CommitFacility doesn't update dirstate 163 // Note, working directory still points to original revision, CommitFacility doesn't update dirstate
166 // 164 //
167 // FIXME requirement to reload repository is disgusting
168 hgRepo = new HgLookup().detect(repoLoc);
169 List<HgChangeset> commits = new HgLogCommand(hgRepo).changeset(commitRev).execute(); 165 List<HgChangeset> commits = new HgLogCommand(hgRepo).changeset(commitRev).execute();
170 HgChangeset cmt = commits.get(0); 166 HgChangeset cmt = commits.get(0);
171 errorCollector.assertEquals(1, cmt.getAddedFiles().size()); 167 errorCollector.assertEquals(1, cmt.getAddedFiles().size());
172 errorCollector.assertEquals("xx", cmt.getAddedFiles().get(0).getPath().toString()); 168 errorCollector.assertEquals("xx", cmt.getAddedFiles().get(0).getPath().toString());
173 errorCollector.assertEquals(1, cmt.getRemovedFiles().size()); 169 errorCollector.assertEquals(1, cmt.getRemovedFiles().size());
209 cf.add(dfD, contentProvider = new FileContentSupplier(fileD)); 205 cf.add(dfD, contentProvider = new FileContentSupplier(fileD));
210 cf.branch(DEFAULT_BRANCH_NAME); 206 cf.branch(DEFAULT_BRANCH_NAME);
211 Nodeid commitRev3 = cf.commit("THIRD"); 207 Nodeid commitRev3 = cf.commit("THIRD");
212 contentProvider.done(); 208 contentProvider.done();
213 // 209 //
214 // FIXME requirement to reload repository is disgusting
215 hgRepo = new HgLookup().detect(repoLoc);
216 List<HgChangeset> commits = new HgLogCommand(hgRepo).range(parentCsetRevIndex+1, TIP).execute(); 210 List<HgChangeset> commits = new HgLogCommand(hgRepo).range(parentCsetRevIndex+1, TIP).execute();
217 assertEquals(3, commits.size()); 211 assertEquals(3, commits.size());
218 HgChangeset c1 = commits.get(0); 212 HgChangeset c1 = commits.get(0);
219 HgChangeset c2 = commits.get(1); 213 HgChangeset c2 = commits.get(1);
220 HgChangeset c3 = commits.get(2); 214 HgChangeset c3 = commits.get(2);
245 Outcome r = cmd.message("FIRST").execute(); 239 Outcome r = cmd.message("FIRST").execute();
246 errorCollector.assertTrue(r.isOk()); 240 errorCollector.assertTrue(r.isOk());
247 Nodeid c1 = cmd.getCommittedRevision(); 241 Nodeid c1 = cmd.getCommittedRevision();
248 242
249 // check that modified files are no longer reported as such 243 // check that modified files are no longer reported as such
250 hgRepo = new HgLookup().detect(repoLoc);
251 TestStatus.StatusCollector status = new TestStatus.StatusCollector(); 244 TestStatus.StatusCollector status = new TestStatus.StatusCollector();
252 new HgStatusCommand(hgRepo).all().execute(status); 245 new HgStatusCommand(hgRepo).all().execute(status);
253 errorCollector.assertTrue(status.getErrors().isEmpty()); 246 errorCollector.assertTrue(status.getErrors().isEmpty());
254 errorCollector.assertTrue(status.get(Kind.Modified).isEmpty()); 247 errorCollector.assertTrue(status.get(Kind.Modified).isEmpty());
255 errorCollector.assertEquals(1, status.get(dfB.getPath()).size()); 248 errorCollector.assertEquals(1, status.get(dfB.getPath()).size());
265 assertFalse(cmd.isMergeCommit()); 258 assertFalse(cmd.isMergeCommit());
266 r = cmd.message("SECOND").execute(); 259 r = cmd.message("SECOND").execute();
267 errorCollector.assertTrue(r.isOk()); 260 errorCollector.assertTrue(r.isOk());
268 Nodeid c2 = cmd.getCommittedRevision(); 261 Nodeid c2 = cmd.getCommittedRevision();
269 // 262 //
270 hgRepo = new HgLookup().detect(repoLoc);
271 int lastRev = hgRepo.getChangelog().getLastRevision(); 263 int lastRev = hgRepo.getChangelog().getLastRevision();
272 List<HgChangeset> csets = new HgLogCommand(hgRepo).range(lastRev-1, lastRev).execute(); 264 List<HgChangeset> csets = new HgLogCommand(hgRepo).range(lastRev-1, lastRev).execute();
273 errorCollector.assertEquals(csets.get(0).getNodeid(), c1); 265 errorCollector.assertEquals(csets.get(0).getNodeid(), c1);
274 errorCollector.assertEquals(csets.get(1).getNodeid(), c2); 266 errorCollector.assertEquals(csets.get(1).getNodeid(), c2);
275 errorCollector.assertEquals(csets.get(0).getComment(), "FIRST"); 267 errorCollector.assertEquals(csets.get(0).getComment(), "FIRST");