Patch de Rabbitvcs pour Git sur ArchLinux
Suite à l'utilisation de dépôts GIT j'ai rencontré un problème avec RabbitVCS
sous 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 !