Changeset 1209 in tailor


Ignore:
Timestamp:
07/02/06 15:52:26 (7 years ago)
Author:
ydirson@…
Hash name:
20060702135226-130f5-d971789b979e66fbd26edc21b5512ee2747c0e9b
Message:

Move basedir attribute from WorkingDir to Repository

Location:
vcpx
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • vcpx/repository/cvsps.py

    r1183 r1209  
    194194 
    195195        branch="HEAD" 
    196         fname = join(self.basedir, 'CVS', 'Tag') 
     196        fname = join(self.repository.basedir, 'CVS', 'Tag') 
    197197        if exists(fname): 
    198198            tag = open(fname).read() 
     
    224224            return 
    225225 
    226         absentrydir = join(self.basedir, entrydir) 
     226        absentrydir = join(self.repository.basedir, entrydir) 
    227227        if not exists(absentrydir) or listdir(absentrydir) == ['CVS']: 
    228228            # Oh, the directory is empty: if there are no other added entries 
     
    242242        from vcpx.repository.cvs import CvsEntries 
    243243 
    244         entries = CvsEntries(self.basedir) 
     244        entries = CvsEntries(self.repository.basedir) 
    245245 
    246246        # Collect added and deleted directories 
     
    261261                    continue 
    262262            elif e.action_kind == e.DELETED: 
    263                 if not exists(join(self.basedir, e.name)): 
     263                if not exists(join(self.repository.basedir, e.name)): 
    264264                    self.log.debug('skipping "%s" since it is already ' 
    265265                                   'deleted', e.name) 
     
    280280 
    281281            if e.action_kind == e.DELETED and e.new_revision is None: 
    282                 assert listdir(join(self.basedir, e.name)) == ['CVS'], '%s should be empty' % e.name 
    283                 rmtree(join(self.basedir, e.name)) 
     282                assert listdir(join(self.repository.basedir, e.name)) == ['CVS'], '%s should be empty' % e.name 
     283                rmtree(join(self.repository.basedir, e.name)) 
    284284            else: 
    285285                cmd = self.repository.command("-d", "%(repository)s", 
     
    288288                if self.repository.freeze_keywords: 
    289289                    cmd.append('-kk') 
    290                 cvsup = ExternalCommand(cwd=self.basedir, command=cmd) 
     290                cvsup = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    291291                retry = 0 
    292292                while True: 
     
    367367            initialcset = None 
    368368 
    369         if not exists(join(self.basedir, 'CVS')): 
     369        if not exists(join(self.repository.basedir, 'CVS')): 
    370370            # CVS does not handle "checkout -d multi/level/subdir", so 
    371371            # split the basedir and use it's parentdir as cwd below. 
    372             parentdir, subdir = split(self.basedir) 
     372            parentdir, subdir = split(self.repository.basedir) 
    373373            cmd = self.repository.command("-q", 
    374374                                          "-d", self.repository.repository, 
     
    404404                                               checkout.exit_status)) 
    405405        else: 
    406             self.log.info("Using existing %s", self.basedir) 
     406            self.log.info("Using existing %s", self.repository.basedir) 
    407407 
    408408        if self.repository.tag_entries: 
    409409            self.__forceTagOnEachEntry() 
    410410 
    411         entries = CvsEntries(self.basedir) 
     411        entries = CvsEntries(self.repository.basedir) 
    412412        youngest_entry = entries.getYoungestEntry() 
    413413        if youngest_entry is None: 
     
    415415                                           "CVS repository seems empty, " 
    416416                                           "don't know how to deal with " 
    417                                            "that." % self.basedir) 
     417                                           "that." % self.repository.basedir) 
    418418 
    419419        # loop over the changesets and find the last applied, to find 
     
    450450            raise TargetInitializationFailure( 
    451451                "Something went wrong: unable to determine the exact upstream " 
    452                 "revision of the checked out tree in '%s'" % self.basedir) 
     452                "revision of the checked out tree in '%s'" % self.repository.basedir) 
    453453        else: 
    454454            self.log.info("Working copy up to revision %s", last.revision) 
     
    492492        path = split(entry)[0] 
    493493 
    494         parentcvs = join(self.basedir, path, 'CVS') 
     494        parentcvs = join(self.repository.basedir, path, 'CVS') 
    495495        while not exists(parentcvs): 
    496             tobeadded.insert(0, join(self.basedir, path)) 
     496            tobeadded.insert(0, join(self.repository.basedir, path)) 
    497497            if not path: 
    498498                break 
    499499            path = split(path)[0] 
    500             parentcvs = join(self.basedir, path, 'CVS') 
     500            parentcvs = join(self.repository.basedir, path, 'CVS') 
    501501 
    502502        assert exists(parentcvs), "Uhm, strange things happen: " \ 
     
    592592        from os.path import join, exists 
    593593 
    594         if not self.repository.repository or exists(join(self.basedir, 'CVS')): 
     594        if not self.repository.repository or exists(join(self.repository.basedir, 'CVS')): 
    595595            return 
    596596 
    597597        cmd = self.repository.command("-d", self.repository.repository, "co", 
    598                                       "-d", self.basedir) 
     598                                      "-d", self.repository.basedir) 
    599599        cvsco = ExternalCommand(command=cmd) 
    600600        cvsco.execute(self.repository.module) 
     
    606606        parent = split(path)[0] 
    607607        while parent: 
    608             if exists(join(self.basedir, parent, 'CVS')): 
     608            if exists(join(self.repository.basedir, parent, 'CVS')): 
    609609                break 
    610610            parents.insert(0, parent) 
     
    634634 
    635635        cmd = self.repository.command('-q', 'add', '-ko') 
    636         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     636        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    637637 
    638638    def __forceTagOnEachEntry(self): 
     
    648648        from os.path import join, exists 
    649649 
    650         self.log.info("Forcing CVS sticky tag in %s", self.basedir) 
    651  
    652         for dir, subdirs, files in walk(self.basedir): 
     650        self.log.info("Forcing CVS sticky tag in %s", self.repository.basedir) 
     651 
     652        for dir, subdirs, files in walk(self.repository.basedir): 
    653653            if dir[-3:] == 'CVS': 
    654654                efn = join(dir, 'Entries') 
     
    709709            entries = ['.'] 
    710710 
    711         c = ExternalCommand(cwd=self.basedir, command=cmd) 
     711        c = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    712712        c.execute(entries) 
    713713 
     
    722722 
    723723        cmd = self.repository.command("-q", "remove") 
    724         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     724        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    725725 
    726726    def _renamePathname(self, oldname, newname): 
     
    757757 
    758758        cmd = self.repository.command("tag") 
    759         c = ExternalCommand(cwd=self.basedir, command=cmd) 
     759        c = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    760760        c.execute(tagname) 
    761761        if c.exit_status: 
  • vcpx/target.py

    r1191 r1209  
    326326        while added: 
    327327            subdir = added.pop(0).name 
    328             if isdir(join(self.basedir, subdir)): 
     328            if isdir(join(self.repository.basedir, subdir)): 
    329329                self._addSubtree(subdir) 
    330330                added = [e for e in added if not e.name.startswith(subdir)] 
     
    363363        exclude = [] 
    364364 
    365         if self.state_file.filename.startswith(self.basedir): 
    366             sfrelname = self.state_file.filename[len(self.basedir)+1:] 
     365        if self.state_file.filename.startswith(self.repository.basedir): 
     366            sfrelname = self.state_file.filename[len(self.repository.basedir)+1:] 
    367367            exclude.append(sfrelname) 
    368368            exclude.append(sfrelname+'.old') 
    369369            exclude.append(sfrelname+'.journal') 
    370370 
    371         if self.logfile.startswith(self.basedir): 
    372             exclude.append(self.logfile[len(self.basedir)+1:]) 
     371        if self.logfile.startswith(self.repository.basedir): 
     372            exclude.append(self.logfile[len(self.repository.basedir)+1:]) 
    373373 
    374374        if subdir and subdir<>'.': 
    375375            self._addPathnames([subdir]) 
    376376 
    377         for dir, subdirs, files in walk(join(self.basedir, subdir)): 
     377        for dir, subdirs, files in walk(join(self.repository.basedir, subdir)): 
    378378            for excd in IGNORED_METADIRS: 
    379379                if excd in subdirs: 
     
    385385 
    386386            if subdirs or files: 
    387                 self._addPathnames([join(dir, df)[len(self.basedir)+1:] 
     387                self._addPathnames([join(dir, df)[len(self.repository.basedir)+1:] 
    388388                                    for df in subdirs + files]) 
    389389 
     
    453453                # finally restore its name. 
    454454 
    455                 absold = join(self.basedir, e.old_name) 
     455                absold = join(self.repository.basedir, e.old_name) 
    456456                renamed = exists(absold) 
    457457                if renamed: 
     
    465465                # renamed+edited event). 
    466466                renamed = False 
    467                 absnew = join(self.basedir, e.name) 
     467                absnew = join(self.repository.basedir, e.name) 
    468468                renamed = exists(absnew) 
    469469                if renamed: 
     
    507507        from os.path import join, exists 
    508508 
    509         if not exists(self.basedir): 
    510             makedirs(self.basedir) 
     509        if not exists(self.repository.basedir): 
     510            makedirs(self.repository.basedir) 
    511511 
    512512        self._prepareTargetRepository() 
     
    514514        prefix = self.__getPrefixToSource() 
    515515        if prefix: 
    516             if not exists(join(self.basedir, prefix)): 
     516            if not exists(join(self.repository.basedir, prefix)): 
    517517                # At bootstrap time, we assume that if the user 
    518518                # extracted the source manually, she added 
    519519                # the subdir, before doing that. 
    520                 makedirs(join(self.basedir, prefix)) 
     520                makedirs(join(self.repository.basedir, prefix)) 
    521521                self._addPathnames([prefix]) 
    522522 
  • vcpx/repository/darcs.py

    r1197 r1209  
    235235 
    236236        cmd = self.repository.command("pull", "--dry-run") 
    237         pull = ExternalCommand(cwd=self.basedir, command=cmd) 
     237        pull = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    238238        output = pull.execute(self.repository.repository, 
    239239                              stdout=PIPE, stderr=STDOUT, TZ='UTC0')[0] 
     
    338338            cmd.extend(['--patches', re.escape(changeset.revision)]) 
    339339 
    340         pull = ExternalCommand(cwd=self.basedir, command=cmd) 
     340        pull = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    341341        output = pull.execute(stdout=PIPE, stderr=STDOUT, input='y')[0] 
    342342 
     
    358358        cmd = self.repository.command("changes", selector, revtag, 
    359359                                      "--xml-output", "--summ") 
    360         changes = ExternalCommand(cwd=self.basedir, command=cmd) 
     360        changes = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    361361        last = changesets_from_darcschanges(changes.execute(stdout=PIPE)[0]) 
    362362        try: 
     
    379379                      ' '.join(conflict)) 
    380380        cmd = self.repository.command("revert", "--all") 
    381         revert = ExternalCommand(cwd=self.basedir, command=cmd) 
     381        revert = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    382382        revert.execute(conflict) 
    383383 
     
    420420            initial = False 
    421421 
    422         if self.repository.subdir == '.' or exists(self.basedir): 
     422        if self.repository.subdir == '.' or exists(self.repository.basedir): 
    423423            # This is currently *very* slow, compared to the darcs get 
    424424            # below! 
    425             if not exists(join(self.basedir, '_darcs')): 
    426                 if not exists(self.basedir): 
    427                     mkdir(self.basedir) 
     425            if not exists(join(self.repository.basedir, '_darcs')): 
     426                if not exists(self.repository.basedir): 
     427                    mkdir(self.repository.basedir) 
    428428 
    429429                cmd = self.repository.command("initialize") 
    430                 init = ExternalCommand(cwd=self.basedir, command=cmd) 
     430                init = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    431431                init.execute() 
    432432 
     
    439439                if revision and revision<>'HEAD': 
    440440                    cmd.extend([initial and "--match" or "--tag", revision]) 
    441                 dpull = ExternalCommand(cwd=self.basedir, command=cmd) 
     441                dpull = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    442442                output = dpull.execute(self.repository.repository, 
    443443                                       stdout=PIPE, stderr=STDOUT)[0] 
     
    455455                cmd.append("--partial") 
    456456            dget = ExternalCommand(command=cmd) 
    457             output = dget.execute(self.repository.repository, self.basedir, 
     457            output = dget.execute(self.repository.repository, self.repository.basedir, 
    458458                                  stdout=PIPE, stderr=STDOUT)[0] 
    459459 
     
    465465        cmd = self.repository.command("changes", "--last", "1", 
    466466                                      "--xml-output") 
    467         changes = ExternalCommand(cwd=self.basedir, command=cmd) 
     467        changes = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    468468        output = changes.execute(stdout=PIPE, stderr=STDOUT)[0] 
    469469 
     
    487487        cmd = self.repository.command("add", "--case-ok", "--not-recursive", 
    488488                                      "--quiet") 
    489         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     489        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    490490 
    491491    def _addSubtree(self, subdir): 
     
    496496        cmd = self.repository.command("add", "--case-ok", "--recursive", 
    497497                                      "--quiet") 
    498         ExternalCommand(cwd=self.basedir, command=cmd).execute(subdir) 
     498        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(subdir) 
    499499 
    500500    def _commit(self, date, author, patchname, changelog=None, entries=None): 
     
    518518            entries = ['.'] 
    519519 
    520         record = ExternalCommand(cwd=self.basedir, command=cmd) 
     520        record = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    521521        record.execute(input=self.repository.encode('\n'.join(logmessage))) 
    522522 
     
    537537        # remove on items that are still there. 
    538538 
    539         c = ExternalCommand(cwd=self.basedir, 
     539        c = ExternalCommand(cwd=self.repository.basedir, 
    540540                            command=self.repository.command("remove")) 
    541         existing = [n for n in names if exists(join(self.basedir, n))] 
     541        existing = [n for n in names if exists(join(self.repository.basedir, n))] 
    542542        if existing: 
    543543            c.execute(existing) 
     
    549549 
    550550        cmd = self.repository.command("mv") 
    551         ExternalCommand(cwd=self.basedir, command=cmd).execute(oldname, newname) 
     551        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(oldname, newname) 
    552552 
    553553    def _prepareTargetRepository(self): 
     
    560560        from vcpx.dualwd import IGNORED_METADIRS 
    561561 
    562         metadir = join(self.basedir, '_darcs') 
     562        metadir = join(self.repository.basedir, '_darcs') 
    563563        prefsdir = join(metadir, 'prefs') 
    564564        prefsname = join(prefsdir, 'prefs') 
     
    569569                    pname, pvalue = pref.split(' ', 1) 
    570570                    if pname == 'boringfile': 
    571                         boringname = join(self.basedir, pvalue[:-1]) 
     571                        boringname = join(self.repository.basedir, pvalue[:-1]) 
    572572 
    573573        if not exists(metadir): 
    574574            cmd = self.repository.command("initialize") 
    575             init = ExternalCommand(cwd=self.basedir, command=cmd) 
     575            init = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    576576            init.execute() 
    577577 
     
    591591            # Eventually omit our own log... 
    592592            logfile = self.repository.projectref().logfile 
    593             if logfile.startswith(self.basedir): 
     593            if logfile.startswith(self.repository.basedir): 
    594594                ignored.append('^%s$' % 
    595                                re.escape(logfile[len(self.basedir)+1:])) 
     595                               re.escape(logfile[len(self.repository.basedir)+1:])) 
    596596 
    597597            # ... and state file 
    598598            sfname = self.repository.projectref().state_file.filename 
    599             if sfname.startswith(self.basedir): 
    600                 sfrelname = sfname[len(self.basedir)+1:] 
     599            if sfname.startswith(self.repository.basedir): 
     600                sfrelname = sfname[len(self.repository.basedir)+1:] 
    601601                ignored.append('^%s$' % re.escape(sfrelname)) 
    602602                ignored.append('^%s$' % re.escape(sfrelname+'.old')) 
     
    624624        from os.path import join 
    625625 
    626         motd = open(join(self.basedir, '_darcs/prefs/motd'), 'w') 
     626        motd = open(join(self.repository.basedir, '_darcs/prefs/motd'), 'w') 
    627627        motd.write(MOTD % str(source_repo)) 
    628628        motd.close() 
     
    676676        if tag not in self._currentTags(): 
    677677            cmd = self.repository.command("tag", "--author", "Unknown tagger") 
    678             ExternalCommand(cwd=self.basedir, command=cmd).execute(tag) 
     678            ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(tag) 
    679679 
    680680    def _currentTags(self): 
     
    698698                                      "--from-match", "not name ^TAG", 
    699699                                      "--xml-output", "--reverse") 
    700         changes =  ExternalCommand(cwd=self.basedir, command=cmd) 
     700        changes =  ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    701701        output = changes.execute(stdout=PIPE, stderr=STDOUT)[0] 
    702702        if changes.exit_status: 
  • vcpx/repository/svn.py

    r1179 r1209  
    271271        cmd = self.repository.command("log", "--verbose", "--xml", 
    272272                                      "--revision", "%d:HEAD" % (sincerev+1)) 
    273         svnlog = ExternalCommand(cwd=self.basedir, command=cmd) 
     273        svnlog = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    274274        log = svnlog.execute('.', stdout=PIPE, TZ='UTC0')[0] 
    275275 
     
    305305            cmd.append("--ignore-externals") 
    306306        cmd.extend(["--revision", changeset.revision]) 
    307         svnup = ExternalCommand(cwd=self.basedir, command=cmd) 
     307        svnup = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    308308 
    309309        retry = 0 
     
    413413            initial = False 
    414414 
    415         if not exists(join(self.basedir, '.svn')): 
     415        if not exists(join(self.repository.basedir, '.svn')): 
    416416            self.log.debug("Checking out a working copy") 
    417417 
     
    424424            out, err = svnco.execute("%s%s" % (self.repository.repository, 
    425425                                               self.repository.module), 
    426                                      self.basedir, stdout=PIPE, stderr=PIPE) 
     426                                     self.repository.basedir, stdout=PIPE, stderr=PIPE) 
    427427            if svnco.exit_status: 
    428428                raise TargetInitializationFailure( 
     
    432432        else: 
    433433            self.log.debug("%r already exists, assuming it's " 
    434                            "a svn working dir", self.basedir) 
     434                           "a svn working dir", self.repository.basedir) 
    435435 
    436436        if not initial: 
     
    439439            cmd = self.repository.command("log", "--verbose", "--xml", 
    440440                                          "--revision", revision) 
    441             svnlog = ExternalCommand(cwd=self.basedir, command=cmd) 
     441            svnlog = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    442442            out, err = svnlog.execute(stdout=PIPE, stderr=PIPE) 
    443443 
     
    463463        cmd = self.repository.command("add", "--quiet", "--no-auto-props", 
    464464                                      "--non-recursive") 
    465         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     465        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    466466 
    467467    def _commit(self, date, author, patchname, changelog=None, entries=None): 
     
    494494 
    495495        cmd = self.repository.command("commit", "--file", rontf.name) 
    496         commit = ExternalCommand(cwd=self.basedir, command=cmd) 
     496        commit = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    497497 
    498498        if not entries: 
     
    527527                                          "--quiet", "--revprop", 
    528528                                          "--revision", revision) 
    529             propset = ExternalCommand(cwd=self.basedir, command=cmd) 
     529            propset = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    530530 
    531531            propset.execute(date.isoformat()+".000000Z", propname='svn:date') 
     
    537537        cmd.extend(["--revision", revision]) 
    538538 
    539         ExternalCommand(cwd=self.basedir, command=cmd).execute() 
     539        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute() 
    540540 
    541541    def _removePathnames(self, names): 
     
    545545 
    546546        cmd = self.repository.command("remove", "--quiet", "--force") 
    547         remove = ExternalCommand(cwd=self.basedir, command=cmd) 
     547        remove = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    548548        remove.execute(names) 
    549549 
     
    566566        # svn's cp+rm is different from rm+add (cp preserves history). 
    567567        unmoved = False 
    568         oldpath = join(self.basedir, oldname) 
    569         newpath = join(self.basedir, newname) 
     568        oldpath = join(self.repository.basedir, oldname) 
     569        newpath = join(self.repository.basedir, newname) 
    570570        if not exists(oldpath): 
    571571            try: 
     
    576576                raise 
    577577            unmoved = True 
    578         move = ExternalCommand(cwd=self.basedir, command=cmd) 
     578        move = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    579579        out, err = move.execute(oldname, newname, stdout=PIPE, stderr=PIPE) 
    580580        if move.exit_status: 
     
    660660        from os.path import join, exists 
    661661 
    662         if not self.repository.repository or exists(join(self.basedir, '.svn')): 
     662        if not self.repository.repository or exists(join(self.repository.basedir, '.svn')): 
    663663            return 
    664664 
     
    669669        svnco = ExternalCommand(command=cmd) 
    670670        svnco.execute("%s%s" % (self.repository.repository, 
    671                                 self.repository.module), self.basedir) 
     671                                self.repository.module), self.repository.basedir) 
    672672 
    673673    def _initializeWorkingDir(self): 
     
    678678        from os.path import exists, join 
    679679 
    680         if not exists(join(self.basedir, '.svn')): 
    681             raise TargetInitializationFailure("'%s' needs to be an SVN working copy already under SVN" % self.basedir) 
     680        if not exists(join(self.repository.basedir, '.svn')): 
     681            raise TargetInitializationFailure("'%s' needs to be an SVN working copy already under SVN" % self.repository.basedir) 
    682682 
    683683        SynchronizableTargetWorkingDir._initializeWorkingDir(self) 
  • vcpx/dualwd.py

    r1135 r1209  
    4444        self.target = target_repo.workingDir() 
    4545 
    46         sbdir = self.source.basedir.rstrip(sep)+sep 
    47         tbdir = self.target.basedir.rstrip(sep)+sep 
     46        sbdir = self.source.repository.basedir.rstrip(sep)+sep 
     47        tbdir = self.target.repository.basedir.rstrip(sep)+sep 
    4848        if sbdir == tbdir: 
    4949            shared = True 
     
    119119 
    120120        rsync = ExternalCommand(command=cmd) 
    121         rsync.execute(self.source.basedir+'/', self.target.basedir) 
     121        rsync.execute(self.source.repository.basedir+'/', self.target.repository.basedir) 
  • vcpx/repository/cvs.py

    r1186 r1209  
    563563 
    564564        branch = None 
    565         fname = join(self.basedir, 'CVS', 'Tag') 
     565        fname = join(self.repository.basedir, 'CVS', 'Tag') 
    566566        if exists(fname): 
    567567            tag = open(fname).read() 
  • vcpx/repository/monotone.py

    r1179 r1209  
    610610    def _applyChangeset(self, changeset): 
    611611        cmd = self.repository.command("update", "--revision", changeset.revision) 
    612         mtl = ExternalCommand(cwd=self.basedir, command=cmd) 
     612        mtl = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    613613        mtl.execute() 
    614614        if mtl.exit_status: 
     
    616616                                              "status %s" % mtl.exit_status) 
    617617        mtr = MonotoneRevToCset(repository=self.repository, 
    618                                 working_dir=self.basedir, 
     618                                working_dir=self.repository.basedir, 
    619619                                branch=self.repository.module) 
    620620        mtr.updateCset( changeset ) 
     
    629629                                           self.repository.module, revision, 
    630630                                           self.repository.rootdir) 
    631         if not exists(join(self.basedir, '_MTN')): 
     631        if not exists(join(self.repository.basedir, '_MTN')): 
    632632 
    633633            # actually check out the revision 
     
    637637                                          "--revision", effrev, 
    638638                                          "--branch", self.repository.module, 
    639                                           self.basedir) 
     639                                          self.repository.basedir) 
    640640            mtl = ExternalCommand(cwd=self.repository.rootdir, command=cmd) 
    641641            mtl.execute() 
     
    645645        else: 
    646646            self.log.debug("%r already exists, assuming it's a monotone " 
    647                            "working dir already populated", self.basedir) 
     647                           "working dir already populated", self.repository.basedir) 
    648648 
    649649 
     
    657657        # linearized ancestor, changeset entries will NOT be filled 
    658658        mtr = MonotoneRevToCset(repository=self.repository, 
    659                                 working_dir=self.basedir, 
     659                                working_dir=self.repository.basedir, 
    660660                                branch=self.repository.module) 
    661661        mtr.updateCset(chset) 
     
    671671        fnames=[] 
    672672        for fn in names: 
    673             if isdir(join(self.basedir, fn)): 
     673            if isdir(join(self.repository.basedir, fn)): 
    674674                self.log.debug("ignoring addition of directory %r", fn) 
    675675            else: 
     
    678678            # ok, we still have something to add 
    679679            cmd = self.repository.command("add") 
    680             add = ExternalCommand(cwd=self.basedir, command=cmd) 
     680            add = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    681681            add.execute(fnames) 
    682682            if add.exit_status: 
     
    690690        """ 
    691691        cmd = self.repository.command("add") 
    692         add = ExternalCommand(cwd=self.basedir, command=cmd) 
     692        add = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    693693        add.execute(subdir) 
    694694        if add.exit_status: 
     
    718718                                      "--date", date.isoformat(), 
    719719                                      "--message-file", rontf.name) 
    720         commit = ExternalCommand(cwd=self.basedir, command=cmd) 
     720        commit = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    721721 
    722722        entries = None 
     
    743743 
    744744        cmd = self.repository.command("drop") 
    745         drop = ExternalCommand(cwd=self.basedir, command=cmd) 
     745        drop = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    746746        dum, error = drop.execute(names, stderr=PIPE) 
    747747        if drop.exit_status: 
     
    759759        # and monotone doesn't like it. 
    760760        # we put names back to make it happy ... 
    761 #        if access(join(self.basedir, newname), F_OK): 
    762 #            if access(join(self.basedir, oldname), F_OK): 
     761#        if access(join(self.repository.basedir, newname), F_OK): 
     762#            if access(join(self.repository.basedir, oldname), F_OK): 
    763763#                raise ChangesetApplicationFailure("Can't rename %s to %s. " 
    764764#                                                  "Both names already exist" % 
    765765#                                                  (oldname, newname)) 
    766 #            renames(join(self.basedir, newname), join(self.basedir, oldname)) 
     766#            renames(join(self.repository.basedir, newname), join(self.repository.basedir, oldname)) 
    767767#            self.log.debug('Renamed "%s" back to "%s"', newname, oldname) 
    768768 
    769769        cmd = self.repository.command("rename") 
    770         rename = ExternalCommand(cwd=self.basedir, command=cmd) 
     770        rename = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    771771        rename.execute(oldname, newname) 
    772772 
    773773        # redo the rename ... 
    774 #        renames(join(self.basedir, oldname), join(self.basedir, newname)) 
     774#        renames(join(self.repository.basedir, oldname), join(self.repository.basedir, newname)) 
    775775#        if rename.exit_status: 
    776776#            raise ChangesetApplicationFailure("%s returned status %s" % 
     
    843843        from re import escape 
    844844 
    845         if not self.repository.repository or exists(join(self.basedir, '_MTN')): 
     845        if not self.repository.repository or exists(join(self.repository.basedir, '_MTN')): 
    846846            return 
    847847 
     
    860860 
    861861        setup = ExternalCommand(command=cmd) 
    862         setup.execute(self.basedir) 
     862        setup.execute(self.repository.basedir) 
    863863 
    864864        if self.repository.passphrase or self.repository.custom_lua: 
    865             monotonerc = open(join(self.basedir, '_MTN', 'monotonerc'), 'w') 
     865            monotonerc = open(join(self.repository.basedir, '_MTN', 'monotonerc'), 'w') 
    866866            if self.repository.passphrase: 
    867867                monotonerc.write(MONOTONERC % self.repository.passphrase) 
     
    877877        ignored = [] 
    878878        logfile = self.repository.projectref().logfile 
    879         if logfile.startswith(self.basedir): 
     879        if logfile.startswith(self.repository.basedir): 
    880880            ignored.append('^%s$' % 
    881                            escape(logfile[len(self.basedir)+1:])) 
     881                           escape(logfile[len(self.repository.basedir)+1:])) 
    882882 
    883883        sfname = self.repository.projectref().state_file.filename 
    884         if sfname.startswith(self.basedir): 
    885             sfrelname = sfname[len(self.basedir)+1:] 
     884        if sfname.startswith(self.repository.basedir): 
     885            sfrelname = sfname[len(self.repository.basedir)+1:] 
    886886            ignored.append('^%s$' % escape(sfrelname)) 
    887887            ignored.append('^%s$' % escape(sfrelname + '.old')) 
     
    889889 
    890890        if len(ignored) > 0: 
    891             mt_ignored = open(join(self.basedir, '.mtn-ignore'), 'aU') 
     891            mt_ignored = open(join(self.repository.basedir, '.mtn-ignore'), 'aU') 
    892892            mt_ignored.write('\n'.join(ignored)) 
    893893            mt_ignored.close() 
     
    904904        """ 
    905905 
    906         if not exists(join(self.basedir, '_MTN')): 
     906        if not exists(join(self.repository.basedir, '_MTN')): 
    907907            raise TargetInitializationFailure("Please setup '%s' as a " 
    908908                                              "monotone working directory" % 
    909                                               self.basedir) 
     909                                              self.repository.basedir) 
    910910 
    911911        SynchronizableTargetWorkingDir._initializeWorkingDir(self) 
  • vcpx/repository/cdv.py

    r1179 r1209  
    3939        names = [e.name for e in changeset.modifiedEntries()] 
    4040        cmd = self.repository.command("edit") 
    41         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     41        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    4242 
    4343    def _addPathnames(self, names): 
     
    4747 
    4848        cmd = self.repository.command("add") 
    49         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     49        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    5050 
    5151    def _commit(self, date, author, patchname, changelog=None, entries=None): 
     
    6969            entries = ['...'] 
    7070 
    71         c = ExternalCommand(cwd=self.basedir, command=cmd) 
     71        c = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    7272        c.execute(entries) 
    7373 
     
    8282 
    8383        cmd = self.repository.command("remove") 
    84         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     84        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    8585 
    8686    def _renamePathname(self, oldname, newname): 
     
    9090 
    9191        cmd = self.repository.command("rename") 
    92         ExternalCommand(cwd=self.basedir, command=cmd).execute(oldname, newname) 
     92        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(oldname, newname) 
    9393 
    9494    def _prepareTargetRepository(self): 
     
    101101        from os.path import join, exists 
    102102 
    103         if not exists(join(self.basedir, self.repository.METADIR)): 
    104             init = ExternalCommand(cwd=self.basedir, 
     103        if not exists(join(self.repository.basedir, self.repository.METADIR)): 
     104            init = ExternalCommand(cwd=self.repository.basedir, 
    105105                                   command=self.repository.command("init")) 
    106106            init.execute() 
     
    119119        cmd = self.repository.command("set", "user") 
    120120        user = getenv('CDV_USER') or getenv('LOGNAME') 
    121         ExternalCommand(cwd=self.basedir, command=cmd).execute(user) 
     121        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(user) 
  • vcpx/repository/__init__.py

    r1207 r1209  
    5757        from logging import getLogger 
    5858        from weakref import ref 
     59        from os.path import join, normpath 
    5960 
    6061        self.name = name 
     
    6566        self._load(project) 
    6667        self._validateConfiguration() 
     68 
     69        if self.subdir: 
     70            self.basedir = normpath(join(self.rootdir, self.subdir)) 
     71        else: 
     72            self.basedir = self.rootdir 
    6773 
    6874    def __str__(self): 
  • vcpx/repository/arx.py

    r1179 r1209  
    3737 
    3838        cmd = self.repository.command("add") 
    39         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     39        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    4040 
    4141    def _commit(self, date, author, patchname, changelog=None, entries=None): 
     
    5656                                      "--author", encode(author), 
    5757                                      "--date", date.isoformat()) 
    58         c = ExternalCommand(cwd=self.basedir, command=cmd) 
     58        c = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    5959        c.execute() 
    6060 
     
    6969 
    7070        cmd = self.repository.command("rm") 
    71         ExternalCommand(cwd=self.basedir, command=cmd).execute(names) 
     71        ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(names) 
    7272 
    7373    def _renamePathname(self, oldname, newname): 
     
    7777 
    7878        cmd = self.repository.command("copy") 
    79         rename = ExternalCommand(cwd=self.basedir, command=cmd) 
     79        rename = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    8080        rename.execute(oldname, newname) 
    8181 
     
    9292        from os.path import exists, join 
    9393 
    94         if not exists(join(self.basedir, '_arx')): 
    95             raise TargetInitializationFailure("Please setup '%s' as an ArX working directory" % self.basedir) 
     94        if not exists(join(self.repository.basedir, '_arx')): 
     95            raise TargetInitializationFailure("Please setup '%s' as an ArX working directory" % self.repository.basedir) 
    9696 
    9797        SynchronizableTargetWorkingDir._initializeWorkingDir(self) 
  • vcpx/workdir.py

    r940 r1209  
    1818 
    1919    def __init__(self, repository): 
    20         from os.path import join, normpath 
    2120        from logging import getLogger 
    2221 
    2322        self.repository = repository 
    24         if repository.subdir: 
    25             self.basedir = normpath(join(repository.rootdir, repository.subdir)) 
    26         else: 
    27             self.basedir = repository.rootdir 
    2823        self.log = getLogger('tailor.%s.%s' % (self.__class__.__name__, 
    2924                                               repository.name)) 
  • vcpx/repository/tla.py

    r1179 r1209  
    7878        self.fqversion = '/'.join([self.repository.repository, 
    7979                                   self.repository.module]) 
    80         c = ExternalCommand(cwd=self.basedir, 
     80        c = ExternalCommand(cwd=self.repository.basedir, 
    8181                            command=self.repository.command("missing", "-f")) 
    8282        out, err = c.execute(stdout=PIPE, stderr=PIPE) 
     
    113113        fqrev = self.__initial_revision(revision) 
    114114        if self.shared_basedirs: 
    115             tempdir = mkdtemp("", ",,tailor-", self.basedir) 
     115            tempdir = mkdtemp("", ",,tailor-", self.repository.basedir) 
    116116            try: 
    117117                self.__checkout_initial_revision(fqrev, tempdir, "t") 
     
    121121                    for e in os.listdir(newtree): 
    122122                        os.rename(os.path.join(newtree, e), 
    123                                   os.path.join(self.basedir, e)) 
     123                                  os.path.join(self.repository.basedir, e)) 
    124124                    os.rmdir(newtree) 
    125125                os.rmdir(tempdir) 
    126126        else: 
    127             root, destdir = os.path.split(self.basedir) 
     127            root, destdir = os.path.split(self.repository.basedir) 
    128128            self.__checkout_initial_revision(fqrev, root, destdir) 
    129129        return self.__parse_revision_logs([fqrev], False)[0] 
     
    143143 
    144144    def __apply_changeset(self, changeset): 
    145         c = ExternalCommand(cwd=self.basedir, 
     145        c = ExternalCommand(cwd=self.repository.basedir, 
    146146                            command=self.repository.command("update")) 
    147147        out, err = c.execute(changeset.revision, stdout=PIPE, stderr=PIPE) 
     
    187187        changesets = [] 
    188188        logparser = Parser() 
    189         c = ExternalCommand(cwd=self.basedir, 
     189        c = ExternalCommand(cwd=self.repository.basedir, 
    190190                            command=self.repository.command("cat-archive-log")) 
    191191        for fqrev in fqrevlist: 
     
    223223 
    224224    def __hide_foreign_entries(self): 
    225         c = ExternalCommand(cwd=self.basedir, 
     225        c = ExternalCommand(cwd=self.repository.basedir, 
    226226                            command=self.repository.command("tree-lint", "-tu")) 
    227227        out = c.execute(stdout=PIPE)[0] 
    228         tempdir = mkdtemp("", "++tailor-", self.basedir) 
     228        tempdir = mkdtemp("", "++tailor-", self.repository.basedir) 
    229229        try: 
    230230            for e in out: 
     
    234234                if ht[0] and ht[1]: 
    235235                    continue 
    236                 os.rename(os.path.join(self.basedir, e), 
     236                os.rename(os.path.join(self.repository.basedir, e), 
    237237                          os.path.join(tempdir, e)) 
    238238        except: 
     
    243243    def __restore_foreign_entries(self, tempdir): 
    244244        for e in os.listdir(tempdir): 
    245             os.rename(os.path.join(tempdir, e), os.path.join(self.basedir, e)) 
     245            os.rename(os.path.join(tempdir, e), os.path.join(self.repository.basedir, e)) 
    246246        os.rmdir(tempdir) 
    247247 
  • vcpx/repository/bzr.py

    r1204 r1209  
    5454        self._working_tree = None 
    5555        try: 
    56             bzrdir = BzrDir.open(self.basedir) 
     56            bzrdir = BzrDir.open(self.repository.basedir) 
    5757            wt = self._working_tree = bzrdir.open_workingtree() 
    5858 
     
    6969        logfile = self.repository.projectref().logfile 
    7070        dir, file = split(logfile) 
    71         if dir == self.basedir: 
     71        if dir == self.repository.basedir: 
    7272            self.ignored.append(file) 
    7373 
     
    7575        sfname = self.repository.projectref().state_file.filename 
    7676        dir, file = split(sfname) 
    77         if dir == self.basedir: 
     77        if dir == self.repository.basedir: 
    7878            self.ignored.append(file) 
    7979            self.ignored.append(file+'.old') 
     
    172172 
    173173        self.log.info('Extracting %r out of %r in %r...', 
    174                       revid, parent_bzrdir.root_transport.base, self.basedir) 
    175         bzrdir = parent_bzrdir.sprout(self.basedir, revid) 
     174                      revid, parent_bzrdir.root_transport.base, self.repository.basedir) 
     175        bzrdir = parent_bzrdir.sprout(self.repository.basedir, revid) 
    176176        self._working_tree = bzrdir.open_workingtree() 
    177177 
     
    183183    def _addPathnames(self, names): 
    184184        if len(names): 
    185             names = [ pathjoin(self.basedir, n) for n in names ] 
     185            names = [ pathjoin(self.repository.basedir, n) for n in names ] 
    186186            smart_add_tree(self._working_tree, names, recurse=False) 
    187187 
    188188    def _addSubtree(self, subdir): 
    189         subdir = pathjoin(self.basedir, subdir) 
     189        subdir = pathjoin(self.repository.basedir, subdir) 
    190190        added, ignored = smart_add_tree(self._working_tree, [subdir], recurse=True) 
    191191 
     
    260260        # bzr does the rename itself as well 
    261261        unmoved = False 
    262         oldpath = join(self.basedir, oldname) 
    263         newpath = join(self.basedir, newname) 
     262        oldpath = join(self.repository.basedir, oldname) 
     263        newpath = join(self.repository.basedir, newname) 
    264264        if not exists(oldpath): 
    265265            try: 
     
    287287        """ 
    288288        if self._working_tree is None: 
    289             self.log.info('Initializing new repository in %r...', self.basedir) 
     289            self.log.info('Initializing new repository in %r...', self.repository.basedir) 
    290290            try: 
    291                 bzrdir = BzrDir.open(self.basedir) 
     291                bzrdir = BzrDir.open(self.repository.basedir) 
    292292            except errors.NotBranchError: 
    293293                # really a NotBzrDir error... 
    294                 branch = BzrDir.create_branch_convenience(self.basedir, 
     294                branch = BzrDir.create_branch_convenience(self.repository.basedir, 
    295295                                                          force_new_tree=True) 
    296296                self._working_tree = branch.bzrdir.open_workingtree() 
  • vcpx/repository/cg.py

    r1179 r1209  
    4040        # them out. 
    4141 
    42         notdirs = [n for n in names if not isdir(join(self.basedir, n))] 
     42        notdirs = [n for n in names if not isdir(join(self.repository.basedir, n))] 
    4343        if notdirs: 
    4444            cmd = self.repository.command("add") 
    45             ExternalCommand(cwd=self.basedir, command=cmd).execute(notdirs) 
     45            ExternalCommand(cwd=self.repository.basedir, command=cmd).execute(notdirs) 
    4646 
    4747    def __parse_author(self, author): 
     
    9292        # shouldn't be a problem. 
    9393        cmd = self.repository.command("commit", "-f") 
    94         c = ExternalCommand(cwd=self.basedir, command=cmd) 
     94        c = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    9595 
    9696        c.execute(env=env, input=encode('\n'.join(logmessage))) 
     
    108108        # them out. 
    109109 
    110         notdirs = [n for n in names if not isdir(join(self.basedir, n))] 
     110        notdirs = [n for n in names if not isdir(join(self.repository.basedir, n))] 
    111111        if notdirs: 
    112112            cmd = self.repository.command("rm") 
    113             c=ExternalCommand(cwd=self.basedir, command=cmd) 
     113            c=ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    114114            c.execute(notdirs) 
    115115 
     
    125125        from vcpx.dualwd import IGNORED_METADIRS 
    126126 
    127         if isdir(join(self.basedir, newname)): 
     127        if isdir(join(self.repository.basedir, newname)): 
    128128            # Given lack of support for directories in current Git, 
    129129            # loop over all files under the new directory and 
    130130            # do a add/remove on them. 
    131             skip = len(self.basedir)+len(newname)+2 
    132             for dir, subdirs, files in walk(join(self.basedir, newname)): 
     131            skip = len(self.repository.basedir)+len(newname)+2 
     132            for dir, subdirs, files in walk(join(self.repository.basedir, newname)): 
    133133                prefix = dir[skip:] 
    134134 
     
    151151        from os.path import join, exists 
    152152 
    153         if not exists(join(self.basedir, self.repository.METADIR)): 
     153        if not exists(join(self.repository.basedir, self.repository.METADIR)): 
    154154            cmd = self.repository.command("init", "-I") 
    155             init = ExternalCommand(cwd=self.basedir, command=cmd) 
     155            init = ExternalCommand(cwd=self.repository.basedir, command=cmd) 
    156156            init.execute() 
    157157 
     
    170170        # Create the .git/info/exclude file, that contains an 
    171171        # fnmatch per line with metadirs to be skipped. 
    172         ignore = open(join(self.basedir, self.repository.METADIR, 
     172        ignore = open(join(self.repository.basedir, self.repository.METADIR, 
    173173                           'info', 'exclude'), 'a') 
    174174        ignore.write('\n') 
     
    176176                                for md in IGNORED_METADIRS])) 
    177177        ignore.write('\n') 
    178         if self.logfile.startswith(self.basedir): 
    179             ignore.write(self.logfile[len(self.basedir)+1:]) 
     178        if self.logfile.startswith(self.repository.basedir): 
     179            ignore.write(self.logfile[len(self.repository.basedir)+1:]) 
    180180            ignore.write('\n') 
    181         if self.state_file.filename.startswith(self.basedir): 
    182             sfrelname = self.state_file.filename[len(self.basedir)+1:] 
     181        if self.state_file.filename.startswith(self.repository.basedir): 
     182            sfrelname = self.state_file.filename[len(self.repository.basedir)+1:] 
    183183            ignore.write(sfrelname) 
    184184            ignore.write('\n') 
  • vcpx/repository/git.py

    r1206 r1209  
    8787    def _tryCommand(self, cmd, exception=Exception, pipe=True): 
    8888        c = GitExternalCommand(self.repository, 
    89                                command = self.repository.command(*cmd), cwd = self.basedir) 
     89                               command = self.repository.command(*cmd), cwd = self.repository.basedir) 
    9090        if pipe: 
    9191            output = c.execute(stdout=PIPE)[0] 
     
    109109        # handle HEAD (master) as a special case... 
    110110        # git clone won't checkout into an existing directory 
    111         target = join(self.basedir, '.gittmp') 
     111        target = join(self.repository.basedir, '.gittmp') 
    112112        # might want -s if we can determine that the path is local. Then again, 
    113113        # that makes it a little unsafe to do git write actions here 
     
    115115                         ChangesetApplicationFailure, False) 
    116116 
    117         rename(join(target, '.git'), join(self.basedir, '.git')) 
     117        rename(join(target, '.git'), join(self.repository.basedir, '.git')) 
    118118        rmdir(target) 
    119119 
     
    210210 
    211211        tags = [] 
    212         tagdir = join(self.basedir, '.git', 'refs', 'tags') 
     212        tagdir = join(self.repository.basedir, '.git', 'refs', 'tags') 
    213213        try: 
    214214            for tag in listdir(tagdir): 
     
    242242        # them out. 
    243243 
    244         notdirs = [n for n in names if not isdir(join(self.basedir, n))] 
     244        notdirs = [n for n in names if not isdir(join(self.repository.basedir, n))] 
    245245        if notdirs: 
    246246            self._tryCommand(['update-index', '--add'] + notdirs) 
     
    295295 
    296296        # find the previous commit on the branch if any 
    297         c = GitExternalCommand(self.repository, cwd=self.basedir, 
     297        c = GitExternalCommand(self.repository, cwd=self.repository.basedir, 
    298298                               command=self.repository.command('rev-parse', refname)) 
    299299        (out, err) = c.execute(stdout=PIPE, stderr=PIPE) 
     
    321321        else: 
    322322            cmd = self.repository.command('commit-tree', treeid) 
    323         c = GitExternalCommand(self.repository, cwd=self.basedir, command=cmd) 
     323        c = GitExternalCommand(self.repository, cwd=self.repository.basedir, command=cmd) 
    324324 
    325325        logmessage = encode('\n'.join(logmessage)) 
     
    349349        # Allow a new tag to overwrite an older one with -f 
    350350        cmd = self.repository.command("tag", "-f", tag) 
    351         c = GitExternalCommand(self.repository, cwd=self.basedir, command=cmd) 
     351        c = GitExternalCommand(self.repository, cwd=self.repository.basedir, command=cmd) 
    352352        c.execute() 
    353353 
     
    366366        # them out. 
    367367 
    368         notdirs = [n for n in names if not isdir(join(self.basedir, n))] 
     368        notdirs = [n for n in names if not isdir(join(self.repository.basedir, n))] 
    369369        if notdirs: 
    370370            self._tryCommand(['update-index', '--remove'] + notdirs) 
     
    381381        from vcpx.dualwd import IGNORED_METADIRS 
    382382 
    383         if isdir(join(self.basedir, newname)): 
     383        if isdir(join(self.repository.basedir, newname)): 
    384384            # Given lack of support for directories in current Git, 
    385385            # loop over all files under the new directory and 
    386386            # do a add/remove on them. 
    387             skip = len(self.basedir)+len(newname)+2 
    388             for dir, subdirs, files in walk(join(self.basedir, newname)): 
     387            skip = len(self.repository.basedir)+len(newname)+2 
     388            for dir, subdirs, files in walk(join(self.repository.basedir, newname)): 
    389389                prefix = dir[skip:] 
    390390 
     
    408408        from os.path import join, exists 
    409409 
    410         if not exists(join(self.basedir, self.repository.METADIR)): 
     410        if not exists(join(self.repository.basedir, self.repository.METADIR)): 
    411411            if self.repository.PARENT_REPO: 
    412412                cmd = self.repository.command("clone", "--shared", "-n", 
    413413                                              self.repository.PARENT_REPO, 'tmp') 
    414                 clone = GitExternalCommand(self.repository, cwd=self.basedir, command=cmd) 
     414                clone = GitExternalCommand(self.repository, cwd=self.repository.basedir, command=cmd) 
    415415                clone.execute() 
    416416                if clone.exit_status: 
     
    422422                 
    423423                cmd = self.repository.command("reset", "--soft", self.repository.BRANCHPOINT) 
    424                 reset = GitExternalCommand(self.repository, cwd=self.basedir, command=cmd) 
     424                reset = GitExternalCommand(self.repository, cwd=self.repository.basedir, command=cmd) 
    425425                reset.execute() 
    426426                if reset.exit_status: 
     
    432432 
    433433                # initialization of a new branch in single-repository mode 
    434                 mkdir(join(self.basedir, self.repository.METADIR)) 
     434                mkdir(join(self.repository.basedir, self.repository.METADIR)) 
    435435 
    436436                bp = self._tryCommand(['rev-parse', self.repository.BRANCHPOINT], 
     
    441441 
    442442            else: 
    443                 if exists(join(self.basedir, self.repository.storagedir)): 
     443                if exists(join(self.repository.basedir, self.repository.storagedir)): 
    444444                    raise TargetInitializationFailure( 
    445445                        "Repository %s already exists - " 
     
    450450                    # in this mode, the db is not stored in working dir, so we 
    451451                    # have to create .git ourselves 
    452                     mkdir(join(self.basedir, self.repository.METADIR)) 
     452                    mkdir(join(self.repository.basedir, self.repository.METADIR)) 
    453453 
    454454    def _prepareWorkingDirectory(self, source_repo): 
     
    462462 
    463463        # create info/excludes in storagedir 
    464         infodir = join(self.basedir, self.repository.storagedir, 'info') 
     464        infodir = join(self.repository.basedir, self.repository.storagedir, 'info') 
    465465        if not exists(infodir): 
    466466            mkdir(infodir) 
     
    473473                                for md in IGNORED_METADIRS])) 
    474474        ignore.write('\n') 
    475         if self.logfile.startswith(self.basedir): 
    476             ignore.write(self.logfile[len(self.basedir)+1:]) 
     475        if self.logfile.startswith(self.repository.basedir): 
     476            ignore.write(self.logfile[len(self.repository.basedir)+1:]) 
    477477            ignore.write('\n') 
    478         if self.state_file.filename.startswith(self.basedir): 
    479             sfrelname = self.state_file.filename[len(self.basedir)+1:] 
     478        if self.state_file.filename.startswith(self.repository.basedir): 
     479            sfrelname = self.state_file.filename[len(self.repository.basedir)+1:] 
    480480            ignore.write(sfrelname) 
    481481            ignore.write('\n') 
  • vcpx/repository/hg.py

    r1193 r1209  
    6161 
    6262        # If the basedir does not exist, create it 
    63         if not exists(self.basedir): 
    64             mkdir(self.basedir) 
     63        if not exists(self.repository.basedir): 
     64            mkdir(self.repository.basedir) 
    6565 
    6666        # clone it only if .hg does not exist 
    67         if not exists(join(self.basedir, ".hg")): 
     67        if not exists(join(self.repository.basedir, ".hg")): 
    6868            # Hg won't check out into an existing directory 
    69             checkoutdir = join(self.basedir,".hgtmp") 
     69            checkoutdir = join(self.repository.basedir,".hgtmp") 
    7070            opts = self._defaultOpts('clone') 
    7171            opts['noupdate'] = True 
    7272            commands.clone(self._ui, self.repository.repository, checkoutdir, 
    7373                           **opts) 
    74             rename(join(checkoutdir, ".hg"), join(self.basedir,".hg")) 
     74            rename(join(checkoutdir, ".hg"), join(self.repository.basedir,".hg")) 
    7575            rmdir(checkoutdir) 
    7676        else: 
    7777            # Does hgrc exist? If not, we write one 
    78             hgrc = join(self.basedir, ".hg", "hgrc") 
     78            hgrc = join(self.repository.basedir, ".hg", "hgrc") 
    7979            if not exists(hgrc): 
    8080                hgrc = file(hgrc, "w") 
     
    8888 
    8989        self.log.info('Extracting revision %r from %r into %r', 
    90                       revision, self.repository.repository, self.basedir) 
     90                      revision, self.repository.repository, self.repository.basedir) 
    9191        repo.update(node) 
    9292 
     
    208208 
    209209            ui = self._getUI() 
    210             self._hg = hg.repository(ui=ui, path=realpath(self.basedir), 
     210            self._hg = hg.repository(ui=ui, path=realpath(self.repository.basedir), 
    211211                                     create=False) 
    212212            # Pick up repository-specific UI settings. 
     
    246246 
    247247        notdirs = [n for n in names 
    248                    if not isdir(join(self.basedir, normpath(n)))] 
     248                   if not isdir(join(self.repository.basedir, normpath(n)))] 
    249249        if notdirs: 
    250250            self.log.info('Adding %s...', ', '.join(notdirs)) 
     
    312312        cmd = getattr(commands, cmd) 
    313313        cwd = os.getcwd() 
    314         os.chdir(self.basedir) 
     314        os.chdir(self.repository.basedir) 
    315315        try: 
    316316            cmd(self._ui, self._hg, *args, **allopts) 
     
    344344 
    345345        self.log.info('Renaming %r to %r...', oldname, newname) 
    346         if isdir(join(self.basedir, normpath(newname))): 
     346        if isdir(join(self.repository.basedir, normpath(newname))): 
    347347            # Given lack of support for directories in current HG, 
    348348            # loop over all files under the old directory and 
     
    366366        self._getUI() 
    367367 
    368         if exists(join(self.basedir, self.repository.METADIR)): 
     368        if exists(join(self.repository.basedir, self.repository.METADIR)): 
    369369            create = 0 
    370370        else: 
    371371            create = 1 
    372             self.log.info('Initializing new repository in %r...', self.basedir) 
    373         self._hg = hg.repository(ui=self._ui, path=realpath(self.basedir), 
     372            self.log.info('Initializing new repository in %r...', self.repository.basedir) 
     373        self._hg = hg.repository(ui=self._ui, path=realpath(self.repository.basedir), 
    374374                                 create=create) 
    375375 
     
    385385        # Create the .hgignore file, that contains a regexp per line 
    386386        # with all known VCs metadirs to be skipped. 
    387         ignore = open(join(self.basedir, '.hgignore'), 'w') 
     387        ignore = open(join(self.repository.basedir, '.hgignore'), 'w') 
    388388        ignore.write('\n'.join(['(^|/)%s($|/)' % escape(md) 
    389389                                for md in IGNORED_METADIRS])) 
    390390        ignore.write('\n') 
    391         if self.logfile.startswith(self.basedir): 
     391        if self.logfile.startswith(self.repository.basedir): 
    392392            ignore.write('^') 
    393             ignore.write(self.logfile[len(self.basedir)+1:]) 
     393            ignore.write(self.logfile[len(self.repository.basedir)+1:]) 
    394394            ignore.write('$\n') 
    395         if self.state_file.filename.startswith(self.basedir): 
    396             sfrelname = self.state_file.filename[len(self.basedir)+1:] 
     395        if self.state_file.filename.startswith(self.repository.basedir): 
     396            sfrelname = self.state_file.filename[len(self.repository.basedir)+1:] 
    397397            ignore.write('^') 
    398398            ignore.write(sfrelname) 
Note: See TracChangeset for help on using the changeset viewer.