Question

Comment puis-je utiliser l'API Mercurial pour déterminer les modifications apportées à un référentiel pour chaque changeset? Je suis en mesure d'obtenir une liste des dossiers pertinents à une révision particulière, mais je ne peux pas comprendre comment dire ce qui est arrivé à ce fichier.

Comment puis-je répondre à ces questions sur chaque fichier dans un changeset:

  • Était-il ajouté?
  • Était-il supprimé?
  • Était-il modifié?

Y at-il un attribut dans le contexte de fichier qui va me dire ceci (si oui, je ne le trouve pas), ou là des façons de comprendre cela par d'autres moyens?

Voici mon code:

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))
Était-ce utile?

La solution

localrepo.status() peut prendre comme argument des contextes (node1 et node2).

Voir http://hg.intevation.org /mercurial/crew/file/6505773080e4/mercurial/localrepo.py#l973

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top