# 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": "vserverreference",
+ "BootstrapFS": "bootstrapfs",
+ "MyPLC": "myplc",
+ "NodeManager": "nodemanager"
}
def svn_to_git_name(module):
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
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:
break
@classmethod
- def has_moved_to_git(cls, module, svnpath):
+ def has_moved_to_git(cls, module, config):
module = git_to_svn_name(module)
- return SvnRepository.remote_exists("%s/%s/aaaa-has-moved-to-git" % (svnpath, 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):
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)
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
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)
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)