PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Zeph : Patch de Rabbitvcs pour Git sur ArchLinux

dimanche 2 février 2014 à 23:42

Suite à l'utilisation de dépôts GIT j'ai rencontré un problème avec RabbitVCS

bombesous Nautilus je me retrouve avec l'emblème d'une bombe, et plus de menu RabbitVCS Git ,,,

Il se trouve que cela correspond à une erreur de RabbitVCS.

J'ai trouvé 2 patchs que j'ai rassemblé en un seul  patch j'ai appliqué ce patch sur la version 0.15.3-4 disponible sur AUR

Le problème se situe principalement dans le fichier :

/usr/lib/python2.7/site-packages/rabbitvcs/vcs/git/gittyup/client.py sur le résultat de la fonction re.match sans aucun contrôle sur le retour

--- rabbitvcs/vcs/git/gittyup/client.py.orig
+++ rabbitvcs/vcs/git/gittyup/client.py
@@ -1195,9 +1195,10 @@
         untracked_directories = []
         for line in stdout:
             components = re.match("^(Would remove)\\s(.*?)$", line)
-            untracked_path = components.group(2)
-            if untracked_path[-1]=='/':
-                untracked_directories.append(untracked_path[:-1])
+            if components:
+                untracked_path = components.group(2)
+                if untracked_path[-1]=='/':
+                    untracked_directories.append(untracked_path[:-1])
 
         #Determine the ignored files and directories in Repo
         cmd = ["git", "clean", "-ndX", self.repo.path]
@@ -1208,15 +1209,16 @@
         ignored_directories=[]
         for line in stdout:
             components = re.match("^(Would remove)\\s(.*?)$", line)
-            ignored_path=components.group(2)
-            if ignored_path[-1]=='/':
-                ignored_directories.append(ignored_path[:-1])
-                next
-            statuses.append(IgnoredStatus(ignored_path))
-            try:
-                del files_hash[ignored_path]
-            except Exception, e:
-                pass
+            if components:
+                ignored_path=components.group(2)
+                if ignored_path[-1]=='/':
+                    ignored_directories.append(ignored_path[:-1])
+                    next
+                statuses.append(IgnoredStatus(ignored_path))
+                try:
+                    del files_hash[ignored_path]
+                except Exception, e:
+                    pass
         for file,data in files_hash.items():
             ignore_file=False
             untracked_file=False

Par la même occasion j'ai appliqué le second patch sur le fichier :
/usr/lib/python2.7/site-packages/rabbitvcs/vcs/git/gittyup/command.py à fin d'être sur d'utiliser un environ avec la variable LANG="C"

--- rabbitvcs/vcs/git/gittyup/command.py.orig
+++ rabbitvcs/vcs/git/gittyup/command.py
@@ -40,11 +40,14 @@
         return returner 
 
     def execute(self):
+        env = os.environ.copy()
+        env["LANG"] = "C";
         proc = subprocess.Popen(self.command,
                                 cwd=self.cwd,
                                 stdin=None,
                                 stderr=subprocess.STDOUT,
                                 stdout=subprocess.PIPE,
+                                env=env,
                                 close_fds=True,
                                 preexec_fn=os.setsid,
                                 universal_newlines=True)

 

Cela corrige le problème et rend RabbitVCS de nouveau fonctionnel.

J'espère que ce patch sera inclut  dans la prochaine version. Pour les utilisateurs de Archlinux c'est chose faite !

Gravatar de Zeph
Original post of Zeph.Votez pour ce billet sur Planet Libre.