tutorial que poner interprete idle idioma espaƱol como cambiar abrir python git git-hash

poner - que es python idle



Obtenga el hash de git actual en una secuencia de comandos de Python (4)

El comando git describe es una buena forma de crear un "número de versión" presentable para el ser humano del código. De los ejemplos en la documentación:

Con algo así como el árbol actual de git.git, obtengo:

[torvalds@g5 git]$ git describe parent v1.0.4-14-g2414721

es decir, el encabezado actual de mi rama "principal" se basa en v1.0.4, pero dado que tiene algunas confirmaciones además de eso, describe ha agregado el número de confirmaciones adicionales ("14") y un nombre abreviado de objeto para la confirmación sí mismo ("2414721") al final.

Desde dentro de Python, puede hacer algo como lo siguiente:

import subprocess label = subprocess.check_output(["git", "describe"]).strip()

Me gustaría incluir el hash git actual en el resultado de un script de Python (como el número de versión del código que generó ese resultado).

¿Cómo puedo acceder al hash git actual en mi script de Python?


No es necesario hackear la obtención de datos del comando git usted mismo. GitPython es una muy buena forma de hacer esto y muchas otras cosas. Incluso tiene soporte de "mejor esfuerzo" para Windows.

Después de pip install gitpython puedes hacer

import git repo = git.Repo(search_parent_directories=True) sha = repo.head.object.hexsha


Esta publicación contiene el comando, la respuesta de Greg contiene el comando de subproceso.

import subprocess def get_git_revision_hash(): return subprocess.check_output([''git'', ''rev-parse'', ''HEAD'']) def get_git_revision_short_hash(): return subprocess.check_output([''git'', ''rev-parse'', ''--short'', ''HEAD''])


numpy tiene una rutina de múltiples plataformas en su setup.py :

import os import subprocess # Return the git revision as a string def git_version(): def _minimal_ext_cmd(cmd): # construct minimal environment env = {} for k in [''SYSTEMROOT'', ''PATH'']: v = os.environ.get(k) if v is not None: env[k] = v # LANGUAGE is used on win32 env[''LANGUAGE''] = ''C'' env[''LANG''] = ''C'' env[''LC_ALL''] = ''C'' out = subprocess.Popen(cmd, stdout = subprocess.PIPE, env=env).communicate()[0] return out try: out = _minimal_ext_cmd([''git'', ''rev-parse'', ''HEAD'']) GIT_REVISION = out.strip().decode(''ascii'') except OSError: GIT_REVISION = "Unknown" return GIT_REVISION