X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=module-tools.py;h=940e4b5bd1725f92e8e3cf583959f31a8c014589;hb=fd6777c30a05ba9e077c7131aa5cde89c1a31837;hp=96631692c2b140e0c9e24ba59ad1d9378260c5fd;hpb=83432c8e75d83b85f7cf2511ba2311f163c12c92;p=build.git diff --git a/module-tools.py b/module-tools.py index 96631692..940e4b5b 100755 --- a/module-tools.py +++ b/module-tools.py @@ -11,7 +11,16 @@ from optparse import OptionParser # Moving to git we decided to rename some of the repositories. Here is # a map of name changes applied in git repositories. RENAMED_SVN_MODULES = { - "PLEWWW": "plewww" + "PLEWWW": "plewww", + "PLCAPI": "plcapi", + "BootManager": "bootmanager", + "BootCD": "bootcd", + "VserverReference": "vserver-reference", + "BootstrapFS": "bootstrapfs", + "MyPLC": "myplc", + "CoDemux": "codemux", + "NodeManager": "nodemanager", + "NodeUpdate": "nodeupdate" } def svn_to_git_name(module): @@ -183,7 +192,7 @@ class SvnRepository: url = "%s/tags/%s" % (self.repo_root(), tagname) return SvnRepository.remote_exists(url) - def update(self, subdir="", recursive=True): + def update(self, subdir="", recursive=True, branch=None): path = os.path.join(self.path, subdir) if recursive: svncommand = "svn up %s" % path @@ -289,9 +298,14 @@ class GitRepository: else: return self.__run_in_repo(c.run_fatal) - def update(self, subdir=None, recursive=None): - self.__run_command_in_repo("git fetch --tags") - self.__run_command_in_repo("git pull") + def update(self, subdir=None, recursive=None, branch="master"): + if branch == "master": + self.__run_command_in_repo("git checkout %s" % branch) + else: + self.__run_command_in_repo("git checkout origin/%s" % branch) + self.__run_command_in_repo("git fetch origin --tags") + self.__run_command_in_repo("git fetch origin") + self.__run_command_in_repo("git merge --ff origin/%s" % branch) def to_branch(self, branch, remote=True): if remote: @@ -352,9 +366,12 @@ class Repository: break @classmethod - def has_moved_to_git(cls, module, svnpath): - module = git_to_svn_name(module) - return SvnRepository.remote_exists("%s/%s/aaaa-has-moved-to-git" % (svnpath, module)) + def has_moved_to_git(cls, module, config): + module = svn_to_git_name(module) + # check if the module is already in Git +# return SvnRepository.remote_exists("%s/%s/aaaa-has-moved-to-git" % (config['svnpath'], module)) + return GitRepository.remote_exists(Module.git_remote_dir(module)) + @classmethod def remote_exists(cls, remote): @@ -567,7 +584,7 @@ that for other purposes than tagging""" % options.workdir print 'Checking for',self.module_dir if not os.path.isdir (self.module_dir): - if Repository.has_moved_to_git(self.name, Module.config['svnpath']): + if Repository.has_moved_to_git(self.name, Module.config): self.repository = GitRepository.checkout(self.git_remote_dir(self.name), self.module_dir, self.options) @@ -580,7 +597,7 @@ that for other purposes than tagging""" % options.workdir self.repository = Repository(self.module_dir, self.options) if self.repository.type == "svn": # check if module has moved to git - if Repository.has_moved_to_git(self.name, Module.config['svnpath']): + if Repository.has_moved_to_git(self.name, Module.config): Command("rm -rf %s" % self.module_dir, self.options).run_silent() self.init_module_dir() # check if we have the required branch/tag @@ -614,7 +631,13 @@ that for other purposes than tagging""" % options.workdir return if self.options.verbose: print 'Updating', self.module_dir - self.repository.update() + + if hasattr(self,'branch'): + self.repository.update(branch=self.branch) + elif hasattr(self,'tagname'): + self.repository.update(branch=self.tagname) + else: + self.repository.update() def main_specname (self): attempt="%s/%s.spec"%(self.module_dir,self.name) @@ -809,8 +832,8 @@ that for other purposes than tagging""" % options.workdir modulepath = "%s-GITPATH"%(attempt.group('make_name')) replacement = "%-32s:= %s/%s.git@%s\n"%(modulepath,attempt.group('url_main'),self.name,newname) else: - moduleath="%s-SVNPATH"%(attempt.group('make_name')) - replacement = "%-32s:= %s/%s/tags/%s\n"%(svnpath,attempt.group('url_main'),self.name,newname) + modulepath = "%s-SVNPATH"%(attempt.group('make_name')) + replacement = "%-32s:= %s/%s/tags/%s\n"%(modulepath,attempt.group('url_main'),self.name,newname) if self.options.verbose: print ' ' + modulepath, new.write(replacement)