Changeset 51 in tailor for vcpx/cvs.py


Ignore:
Timestamp:
07/06/04 00:10:28 (9 years ago)
Author:
lele@…
Hash name:
20040705221028-97f81-0f860f643ab56ed6d68769d5c0e93deafc93542b
Message:

Use the logger instead of print statements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vcpx/cvs.py

    r50 r51  
    1515 
    1616from shwrap import SystemCommand 
    17 from source import UpdatableSourceWorkingDir 
    18 from target import SyncronizableTargetWorkingDir 
     17from source import UpdatableSourceWorkingDir, ChangesetApplicationFailure 
     18from target import SyncronizableTargetWorkingDir, TargetInitializationFailure 
    1919 
    2020 
     
    194194                yield Changeset(**pset) 
    195195 
    196     def _applyChangeset(self, root, changeset): 
     196    def _applyChangeset(self, root, changeset, logger=None): 
    197197        from os.path import join, exists, dirname 
    198198        from os import makedirs 
     
    206206            cvsup(output=True, entry=e.name, revision=e.new_revision) 
    207207 
     208            if cvsup.exit_status: 
     209                raise ChangesetApplicationFailure( 
     210                    "'cvs update' returned status %s" % cvsup.exit_status) 
     211             
    208212            if e.action_kind == e.DELETED: 
    209213                # XXX: should drop edir if empty 
    210214                pass 
    211215                 
    212  
    213     ## SyncronizableTargetWorkingDir 
    214  
    215     def _addEntry(self, root, entry): 
    216         """ 
    217         Add a new entry, maybe registering the directory as well. 
    218         """ 
    219  
    220         from os.path import split, join, exists 
    221  
    222         basedir = split(entry)[0] 
    223         if basedir and not exists(join(root, basedir, 'CVS')): 
    224             self._addEntry(root, basedir) 
    225          
    226         c = CvsAdd(working_dir=root) 
    227         c(entry=entry) 
    228  
    229     def _checkoutUpstreamRevision(self, basedir, repository, module, revision): 
     216    def _checkoutUpstreamRevision(self, basedir, repository, module, revision, 
     217                                  logger=None): 
    230218        """ 
    231219        Concretely do the checkout of the upstream sources. Use `revision` as 
     
    244232              module=module, 
    245233              revision=revision) 
     234            if c.exit_status: 
     235                raise TargetInitializationFailure( 
     236                    "'cvs checkout' returned status %s" % c.exit_status) 
     237        else: 
     238            if logger: logger.info("Using existing %s", wdir) 
    246239             
    247240        self.__forceTagOnEachEntry(wdir) 
     
    268261                break 
    269262 
    270         assert found, "Something went wrong, did not find the right cvsps revision in '%s'" % wdir 
    271          
     263        if not found: 
     264            raise TargetInitializationFailure( 
     265                "Something went wrong, did not find the right cvsps " 
     266                "revision in '%s'" % wdir) 
     267        else: 
     268            if logger: logger.info("working copy up to cvsps revision %s", 
     269                                   last.revision) 
     270             
    272271        return last.revision 
     272     
     273 
     274    ## SyncronizableTargetWorkingDir 
     275 
     276    def _addEntry(self, root, entry): 
     277        """ 
     278        Add a new entry, maybe registering the directory as well. 
     279        """ 
     280 
     281        from os.path import split, join, exists 
     282 
     283        basedir = split(entry)[0] 
     284        if basedir and not exists(join(root, basedir, 'CVS')): 
     285            self._addEntry(root, basedir) 
     286         
     287        c = CvsAdd(working_dir=root) 
     288        c(entry=entry) 
    273289 
    274290    def __forceTagOnEachEntry(self, root): 
Note: See TracChangeset for help on using the changeset viewer.