2017-07-10 4 views
0

Je reçois le problème en utilisant gitpython:Aucun gestionnaire n'a pu être trouvée pour enregistreur « git.remote »

No handlers could be found for logger "git.remote"

Mon code

print repo_object.remote() # origin 
print repo_object.active_branch # master 
print repo_object.active_branch.name # master 
refspec = repo_object.active_branch.name + ":refs/for/" + repo_object.active_branch.name 
print refspeC# master:/refs/for/master 
print "Push " + refspeC# push master:refs/for/master 
print remote.push(refspec) # [<git.remote.PushInfo object at 0x....>] 
remote.push(refspec) 

pushed_repos.append(repo_name) 
print pushed_repos # my project repo 

Mon but est de pousser un sous-module nouvellement ajouté (créé/mis à jour) les fichiers à gerrit.

Edit: Demande de @Arount

Ok, donc j'ai une fonction appelée

del_proj_gerrit(pushed_repos, commit_message, repo_path, repo_name, push) 

Les arguments suivants: a des valeurs

pushed_repos # [] 
commit_message # just a commit message 
repo_name_path # path to my local repo 
repo_name # name of the project repo 
push # A value of True is set here 

l'intérieur de ma fonction del_proj_gerrit je:

add_all_files("./") 
    if push == True: 
    commit_and_push(pushed_repos, commit_message, repo_path, repo_name) 

Dans ma fonction commit_and_push je:

repo_path_new = repo_path+repo_name 
repo_object = Repo(repo_path_new) # <git.Repo "C\localpath\.git\modules\repo-project"> 
if commit_command_line(commit_message, repo_object, repo_name): 
    # Inside the if-statement you have the code I posted before 

Je l'intérieur de la fonction commit_command_line:

cmd = "git commit -m \"%s\"" % commit_message 
errmsg = "Failed command:\n" + cmd 
success = True 
try: 
    execute_shell_process(cmd, errmsg, True, True) 
except CommonProcessError as e: 
    print "Error during commit for repo '" + repo_name + "' (ret code " + \ 
     str(e.returncode) + ")." 
    print "Assuming that there was no changes to last commit => continue" 
    success = False 
return success 
+0

@Arount Vérifiez mon – user535081

+0

modifier jamais réellement utiliser la fonction retraçage avant. Suggérez-vous 'traceback.print_exc()'? parce que quand je fais ça, je reçois None. D'après la documentation que j'ai lue, il semble que je doive utiliser 'try & except'. La chose est que j'obtiens le maître ** Push: refs/for/master Aucun gestionnaire n'a pu être trouvé pour l'enregistreur "git.remote" ** quand j'essaye de le pousser semble être. En d'autres termes, je ne reçois aucune erreur :(La fonction que j'ai collée ci-dessus sont les plus pertinentes (peut-être pas le meilleur format) – user535081

+0

@Arount 'Aucun gestionnaire n'a pu être trouvé pour logger ...' est un avertissement, pas une erreur – phd

Répondre

0

GitPython utilise l'enregistrement python il vous suffit de le configurer. Selon docs la configuration minimale est:

import logging 
logging.basicConfig(level=logging.INFO) 
+0

Je vois.J'ai essayé cela juste pour voir ce que ma refspec est: 'logging.basicConfig (niveau = logging.INFO) logger = logging.getLogger (refspec) journal d'impression' cela me donne ** l'objet logging.Logger à 0x0000000002DD2518 ** tandis que 'remote.push (refspec)' donne ** ** – user535081

+0

'logger' est votre objet de journalisation. Appelez méthodes de journalisation sur elle: 'logger.info (" Refspec:% s ", refspec) etc – phd

+0

Eh bien au moins j'ai quelque chose maintenant :):' AVERTISSEMENT: git.remote: lignes d'erreur reçues lors de la récupération: erreur: échoué Pousser donc moi refs 'ssh: // url: port/repo-project''. – user535081