Frage

Wie kann ich den Mercurial-API verwenden, um die Änderungen zu einem Endlager für jeden changeset gemacht, um zu bestimmen? Ich bin in der Lage, eine Liste der relevanten Dateien zu einer bestimmten Revision zu bekommen, aber ich kann nicht herausfinden, wie zu sagen, was zu dieser Datei passiert ist.

Wie kann ich diese Fragen zu jeder Datei in einem changeset beantworten:

  • War es hinzugefügt?
  • War es gelöscht?
  • War es geändert?

Gibt es ein Attribut in der Datei Kontext, die mir sagen, diese (wenn ja, ich kann es nicht finden), oder es Möglichkeiten, diese durch andere Mittel, um herauszufinden?

Hier ist mein 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))
War es hilfreich?

Lösung

localrepo.status() können Kontexte als Argument (node1 und node2).

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top