Changeset 689 in tailor


Ignore:
Timestamp:
08/25/05 00:43:06 (8 years ago)
Author:
lele@…
Hash name:
20050824224306-97f81-fc199cd03e7c50eb8d401a9d7d5b2da4b2f2fe7f
Message:

Monotone DB initialization
This definitely needs review from a Monotone user, it does not even pass
the test!

Location:
vcpx
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • vcpx/monotone.py

    r685 r689  
    2121from os import renames, access, F_OK 
    2222from string import whitespace 
     23 
     24MONOTONERC = """\ 
     25function get_passphrase(KEYPAIR_ID) 
     26  return "%s" 
     27end 
     28""" 
    2329 
    2430class ExternalCommandChain: 
     
    597603            raise ChangesetApplicationFailure("%s returned status %s" % (str(rename),rename.exit_status)) 
    598604 
     605    def __createRepository(self, target_repository): 
     606        """ 
     607        Create a new monotone DB. 
     608        """ 
     609 
     610        cmd = [self.repository.MONOTONE_CMD, "db", "init", "--db", 
     611               target_repository.repository] 
     612        init = ExternalCommand(command=cmd) 
     613        init.execute() 
     614 
     615        if init.exit_status: 
     616            raise TargetInitializationFailure("Was not able to initialize " 
     617                                              "the monotone db at %r" % 
     618                                              target_repository) 
     619 
     620        if target_repository.keyfile: 
     621            keyfile = file(target_repository.keyfile) 
     622            cmd = [self.repository.MONOTONE_CMD, "read", "--db", 
     623                   target_repository.repository] 
     624            regkey = ExternalCommand(command=cmd) 
     625            regkey.execute(input=keyfile) 
     626        else: 
     627            cmd = [self.repository.MONOTONE_CMD, "genkey", "--db", 
     628                   target_repository.repository] 
     629            regkey = ExternalCommand(command=cmd) 
     630            regkey.execute('tailor') 
     631 
     632        if regkey.exit_status: 
     633            raise TargetInitializationFailure("Was not able to setup " 
     634                                              "the monotone initial key at %r" % 
     635                                              target_repository) 
     636 
     637    def _prepareTargetRepository(self): 
     638        """ 
     639        Check for target repository existence, eventually create it. 
     640        """ 
     641 
     642        from os.path import exists 
     643 
     644        if not self.repository.repository: 
     645            return 
     646 
     647        if not exists(self.repository.repository): 
     648            self.__createRepository(self.repository) 
     649 
     650    def _prepareWorkingDirectory(self, source_repo): 
     651        """ 
     652        Possibly checkout a working copy of the target VC, that will host the 
     653        upstream source tree, when overriden by subclasses. 
     654        """ 
     655 
     656        from os.path import join, exists 
     657 
     658        if not self.repository.repository or exists(join(self.basedir, 'MT')): 
     659            return 
     660 
     661        cmd = [self.repository.MONOTONE_CMD, "setup", 
     662               "--db", self.repository.repository] 
     663        if self.repository.module: 
     664            cmd.extend(["--branch", self.repository.module]) 
     665 
     666        setup = ExternalCommand(command=cmd) 
     667        setup.execute(self.basedir) 
     668 
     669        if self.repository.passphrase: 
     670            monotonerc = open(join(self.basedir, 'MT', 'monotonerc'), 'w') 
     671            monotonerc.write(MONOTONERC % self.repository.passphrase) 
     672            monotonerc.close() 
     673             
    599674    def _initializeWorkingDir(self): 
    600675        """ 
  • vcpx/repository.py

    r682 r689  
    197197                                       'monotone-command', self.MONOTONE_CMD) 
    198198        self.passphrase = config.get(self.name, 'passphrase') 
     199        self.keyfile = config.get(self.name, 'keyfile') 
    199200 
    200201 
  • vcpx/tests/tailor.py

    r666 r689  
    5151start-revision = INITIAL 
    5252 
     53[darcs2monotone] 
     54target = monotone:tailor 
     55root-directory = /tmp/tailor-tests/darcs2monotone 
     56source = darcs:tailor 
     57 
    5358[svn2darcs] 
    5459target = darcs:svntailor 
     
    6873 
    6974[hg:tailor] 
     75 
     76[monotone:tailor] 
     77passphrase = fin che la barca va 
     78repository = /tmp/tailor-tests/tailor-mtn.db 
    7079 
    7180[svn:tailor] 
     
    200209        self.assertEqual(self.diffWhenPossible(tailorizer), "") 
    201210 
     211    def testDarcsToMonotone(self): 
     212        "Test darcs to monotone" 
     213 
     214        tailorizer = Tailorizer('darcs2monotone', self.config) 
     215        self.assert_(not tailorizer.exists()) 
     216        tailorizer() 
     217        self.assertEqual(self.diffWhenPossible(tailorizer), "") 
     218 
    202219    ## The other way 
    203220 
Note: See TracChangeset for help on using the changeset viewer.