استخدم واجهة برمجة تطبيقات الزئبق للحصول على تغييرات على مستودع لإجراء تغييرات معينة

StackOverflow https://stackoverflow.com/questions/2352129

سؤال

كيف يمكنني استخدام واجهة برمجة تطبيقات الزئبق لتحديد التغييرات التي تم إجراؤها على مستودع لكل تغييرات؟ أنا قادر على الحصول على قائمة بالملفات ذات الصلة بمراجعة معينة ، لكن لا يمكنني معرفة كيفية معرفة ما حدث لهذا الملف.

كيف يمكنني الإجابة على هذه الأسئلة حول كل ملف في تغييرات:

  • هل تمت إضافته؟
  • هل تم حذفه؟
  • هل تم تعديله؟

هل هناك سمة في سياق الملف الذي سيخبرني بذلك (إذا كان الأمر كذلك ، لا يمكنني العثور عليه) ، أو هناك طرق لمعرفة ذلك بوسائل أخرى؟

ها هو رمزتي:

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))
هل كانت مفيدة؟

المحلول

localrepo.status() يمكن أن تأخذ السياقات كوسيطة (node1 و node2).

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top