Uso Mercurial API para obtener cambios en el repositorio Para Dado un conjunto de cambios
-
23-09-2019 - |
Pregunta
¿Cómo puedo utilizar la API de Mercurial para determinar los cambios realizados en un repositorio para cada conjunto de cambios? Soy capaz de obtener una lista de archivos correspondiente a una revisión en particular, pero no puedo encontrar la manera de decir lo que le pasó a ese archivo.
¿Cómo puedo responder a estas preguntas acerca de cada archivo en un conjunto de cambios:
- ¿Fue añadida?
- ¿Fue eliminado?
- ¿Fue modificada?
¿Hay un atributo en el contexto de archivo que me diga esto (si es así, no puedo encontrar), o hay maneras de resolver esto por otros medios?
Aquí está mi código:
def index(request):
u = ui.ui()
repo = hg.repository(ui.ui(), '/path/to/repo')
changes = repo.changelog
changesets = []
for change in changes:
ctx = repo.changectx(change)
fileCtxs = []
for aFile in ctx.files():
if aFile in ctx:
for status in repo.status(None, ctx.node()):
# I'm hoping this could return A, M, D, ? etc
fileCtxs.append(status)
changeset = {
'files':ctx.files(),
'rev':str(ctx.rev()),
'desc':ctx.description(),
'user':ctx.user(),
'filectxs':fileCtxs,
}
changesets.append(changeset)
c = Context({
'changesets': changesets,
})
tmplt = loader.get_template('web/index.html')
return HttpResponse(tmplt.render(c))
Solución
localrepo.status()
puede tomar contextos como argumento (node1
y node2
).
http://hg.intevation.org /mercurial/crew/file/6505773080e4/mercurial/localrepo.py#l973
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow