vserverreference renamed to vserver-reference
[build.git] / module-tools.py
index 3db3f88..e3aaba7 100755 (executable)
@@ -12,7 +12,13 @@ from optparse import OptionParser
 # a map of name changes applied in git repositories.
 RENAMED_SVN_MODULES = {
     "PLEWWW": "plewww",
-    "PLCAPI": "plcapi"
+    "PLCAPI": "plcapi",
+    "BootManager": "bootmanager",
+    "BootCD": "bootcd",
+    "VserverReference": "vserver-reference",
+    "BootstrapFS": "bootstrapfs",
+    "MyPLC": "myplc",
+    "NodeManager": "nodemanager"
     }
 
 def svn_to_git_name(module):
@@ -184,7 +190,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
@@ -290,9 +296,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:
@@ -355,11 +366,9 @@ class Repository:
     @classmethod
     def has_moved_to_git(cls, module, config):
         module = git_to_svn_name(module)
-        ret = SvnRepository.remote_exists("%s/%s/aaaa-has-moved-to-git" % (config['svnpath'], module))
-        if not ret:
-            # check if the module is already in Git
-            return GitRepository.remote_exists(Module.git_remote_dir(module))
-        return ret
+        # 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
@@ -620,7 +629,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)