Changeset 1246 in tailor
- Timestamp:
- 08/16/06 02:01:01 (7 years ago)
- Hash name:
- 20060816000101-97f81-ae488fe484c47114e094c9f083fdc70f93151a1d
- Location:
- vcpx
- Files:
-
- 2 edited
-
repository/cvsps.py (modified) (6 diffs)
-
tests/tailor.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
vcpx/repository/cvsps.py
r1235 r1246 296 296 'revision %s', e.name, e.new_revision) 297 297 e.action_kind = e.ADDED 298 addeddirs.extend(self.__createParentCVSDirectories(changeset, e.name)) 298 for dir in self.__createParentCVSDirectories(changeset, e.name): 299 addeddirs.append((e, dir)) 299 300 elif info.cvs_version == e.new_revision: 300 301 self.log.debug('skipping "%s" since it is already ' … … 309 310 deleteddirs.append(entrydir) 310 311 continue 311 elif e.action_kind == e.ADDED and e.new_revision is None: 312 # This is a new directory entry, there is no need to update it 313 continue 312 elif e.action_kind == e.ADDED: 313 if e.new_revision is None: 314 # This is a new directory entry, there is no need to update it 315 continue 316 else: 317 for dir in self.__createParentCVSDirectories(changeset, e.name): 318 addeddirs.append((e, dir)) 314 319 315 320 # If this is a directory (CVS does not version directories, … … 361 366 # added/removed, so that the replayer gets their name. 362 367 363 for path in addeddirs:364 entry = changeset.addEntry(path, None )368 for entry,path in addeddirs: 369 entry = changeset.addEntry(path, None, before=entry) 365 370 entry.action_kind = entry.ADDED 366 371 … … 511 516 return last 512 517 513 def _willApplyChangeset(self, changeset, applyable=None):514 """515 This gets called just before applying each changeset.516 517 Since CVS has no "createdir" event, we have to take care518 of new directories, creating empty-but-reasonable CVS dirs.519 """520 521 if UpdatableSourceWorkingDir._willApplyChangeset(self, changeset,522 applyable):523 for m in changeset.entries:524 if m.action_kind == m.ADDED:525 self.__createParentCVSDirectories(changeset, m.name)526 527 return True528 else:529 return False530 531 518 def __createParentCVSDirectories(self, changeset, entry): 532 519 """ … … 549 536 parentcvs = join(self.repository.basedir, path, 'CVS') 550 537 while not exists(parentcvs): 551 tobeadded.insert(0, join(self.repository.basedir, path))538 tobeadded.insert(0, path) 552 539 if not path: 553 540 break … … 567 554 rootf.close() 568 555 569 for basedir in tobeadded: 556 for toadd in tobeadded: 557 basedir = join(self.repository.basedir, toadd) 570 558 cvsarea = join(basedir, 'CVS') 571 559 -
vcpx/tests/tailor.py
r1214 r1246 245 245 subdir = svn 246 246 247 248 [cvsdirtest] 249 target = bzr:cvsdirtest 250 start-revision = INITIAL 251 root-directory = %(testdir)s/cvsdirtest/cvs2bzr 252 source = cvs:cvsdirtest 253 subdir = test-work 254 255 [cvspsdirtest] 256 target = bzr:cvsdirtest 257 start-revision = INITIAL 258 root-directory = %(testdir)s/cvsdirtest/cvsps2bzr 259 source = cvsps:cvsdirtest 260 subdir = test-work 261 262 [darcsdirtest] 263 target = darcs:cvsdirtest 264 start-revision = INITIAL 265 root-directory = %(testdir)s/cvsdirtest/cvs2darcs 266 source = cvs:cvsdirtest 267 subdir = test-work 268 269 [svndirtest] 270 target = svn:cvsdirtest 271 start-revision = INITIAL 272 root-directory = %(testdir)s/cvsdirtest/cvs2svn 273 source = cvs:cvsdirtest 274 subdir = test-work 275 276 [bzr:cvsdirtest] 277 278 [darcs:cvsdirtest] 279 280 [cvs:cvsdirtest] 281 module = test 282 repository = %(testdir)s/cvsdirtest.cvsrepo 283 284 [cvsps:cvsdirtest] 285 module = test 286 repository = %(testdir)s/cvsdirtest.cvsrepo 287 288 [svn:cvsdirtest] 289 module = test 290 repository = file://%(testdir)s/cvsdirtest.svnrepo 291 247 292 ''' 248 293 … … 509 554 510 555 self.tailorize('darcs_rename_delete_dir') 556 557 558 class CvsOrderTest(OperationalTest): 559 """Test problems with improper ordering of adds with new directories.""" 560 561 def setUp(self): 562 """Create a CVS repository that has the difficult history.""" 563 564 from os import mkdir, getcwd 565 from os.path import join, exists 566 567 super(CvsOrderTest, self).setUp() 568 569 repodir = join(self.TESTDIR, 'cvsdirtest.cvsrepo') 570 basedir = join(self.TESTDIR, 'cvsdirtest') 571 572 if not exists(repodir): 573 cvscmd = ['cvs', '-d', repodir] 574 mkdir(basedir) 575 mkdir(repodir) 576 ExternalCommand(cwd=self.TESTDIR, nolog=True, command=cvscmd).execute( 577 'init') 578 579 startdir = join(basedir, 'start') 580 mkdir(startdir) 581 open(join(startdir, 'foo'), "w").close() 582 583 ExternalCommand(cwd=startdir, nolog=True, command=cvscmd).execute( 584 'import', '-m', 'one', 'test', 'test', 'test1') 585 586 workdir = join(basedir, 'work') 587 ExternalCommand(cwd=startdir, nolog=True, command=cvscmd).execute( 588 'checkout', '-d', workdir, 'test') 589 590 bardir = join(workdir, 'bar') 591 mkdir(bardir) 592 baz = join(bardir, 'baz') 593 open(baz, "w").close() 594 595 ExternalCommand(cwd=workdir, nolog=True, command=cvscmd).execute( 596 'add', bardir, baz) 597 ExternalCommand(cwd=workdir, nolog=True, command=cvscmd).execute( 598 'commit', '-m', 'two') 599 600 def testCvsConvertDirectoryAddToBazaarng(self): 601 """Test that we can handle directory adds in the cvs module to bzr.""" 602 603 t = Tailorizer("cvsdirtest", self.config) 604 t() 605 606 def testCvspsConvertDirectoryAddToBazaarng(self): 607 """Test that we can handle directory adds in the cvsps module to bzr.""" 608 609 t = Tailorizer("cvspsdirtest", self.config) 610 t() 611 612 def testCvsConvertDirectoryAddToDarcs(self): 613 """Test that we can handle directory adds in the cvs module to darcs.""" 614 615 t = Tailorizer("darcsdirtest", self.config) 616 t() 617 618 def testCvsConvertDirectoryAddToSubversion(self): 619 """Test that we can handle directory adds in the cvs module to svn.""" 620 621 t = Tailorizer("svndirtest", self.config) 622 t()
Note: See TracChangeset
for help on using the changeset viewer.
