Changeset 862 in tailor


Ignore:
Timestamp:
09/29/05 22:56:37 (8 years ago)
Author:
Jelmer Vernooij <jelmer@…>
Hash name:
20050929205637-d4f9e-1fa7321184c34256921544a69ddd7fc92ed16e09
Message:

bzrng-source-support
Add initial support for Bzr as source repository.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vcpx/bzrng.py

    r860 r862  
    33# :Creato:   Fri Aug 19 01:06:08 CEST 2005 
    44# :Autore:   Johan Rydberg <jrydberg@gnu.org> 
     5#            Jelmer Vernooij <jelmer@samba.org> 
    56# :Licenza:  GNU General Public License 
    67# 
     
    1213__docformat__ = 'reStructuredText' 
    1314 
     15from source import UpdatableSourceWorkingDir 
    1416from target import SyncronizableTargetWorkingDir, TargetInitializationFailure 
    1517from bzrlib.branch import Branch 
     
    2123import re 
    2224 
    23 class BzrngWorkingDir(SyncronizableTargetWorkingDir): 
     25class BzrngWorkingDir(UpdatableSourceWorkingDir, SyncronizableTargetWorkingDir): 
     26    ## UpdatableSourceWorkingDir 
     27 
     28    """ 
     29    Generate changeset for the given BzrNg revision 
     30    """ 
     31    def _changesetFromRevision(self, parent, revision): 
     32        from changes import ChangesetEntry, Changeset 
     33        from datetime import datetime 
     34        r = parent.get_revision(revision) 
     35             
     36        deltatree = parent.get_revision_delta(parent.revision_id_to_revno(revision)) 
     37        entries = [] 
     38 
     39        for delta in deltatree.added: 
     40            e = ChangesetEntry(delta[0]) 
     41            e.action_kind = ChangesetEntry.ADDED 
     42            entries.append(e) 
     43             
     44        for delta in deltatree.removed: 
     45            e = ChangesetEntry(delta[0]) 
     46            e.action_kind = ChangesetEntry.DELETED 
     47            entries.append(e) 
     48             
     49        for delta in deltatree.renamed: 
     50            e = ChangesetEntry(delta[1]) 
     51            e.action_kind = ChangesetEntry.RENAMED 
     52            e.old_name = delta[2] 
     53            entries.append(e) 
     54 
     55        for delta in deltatree.modified: 
     56            e = ChangesetEntry(delta[0]) 
     57            e.action_kind = ChangesetEntry.UPDATED 
     58            entries.append(e) 
     59 
     60        return Changeset(r.revision_id,  
     61                              datetime.fromtimestamp(r.timestamp), 
     62                              r.committer,  
     63                              r.message, 
     64                              entries) 
     65    
     66    """ 
     67    See what other revisions exist upstream and return them 
     68    """ 
     69    def _getUpstreamChangesets(self, sincerev): 
     70        parent = Branch.open(self.repository.repository) 
     71 
     72        revisions = self._b.missing_revisions(parent) 
     73 
     74        changesets = [self._changesetFromRevision(parent, ri) for ri in revisions] 
     75         
     76        return changesets 
     77 
     78    """ 
     79    Apply given remote revision to workingdir 
     80    """ 
     81    def _applyChangeset(self, changeset): 
     82        self._b.append_revision(changeset.revision_id) 
     83        return [] # No conflicts for now 
     84 
     85    """ 
     86    Initial checkout, equivalent of 'bzr branch -r ... ' 
     87    """ 
     88    def _checkoutUpstreamRevision(self, revision): 
     89        from bzrlib.clone import copy_branch 
     90 
     91        parent = Branch.open(self.repository.repository) 
     92 
     93        if revision == "INITIAL": 
     94            self._b = copy_branch(parent, self.basedir) 
     95        else: 
     96            self._b = copy_branch(parent, self.basedir, revision) 
     97 
     98        return self._changesetFromRevision(parent, parent.last_revision()) 
     99 
     100    ## SyncronizableTargetWorkingDir 
     101     
    24102    def _addPathnames(self, entries): 
    25103        # This method may get invoked several times with the same 
Note: See TracChangeset for help on using the changeset viewer.