[Mercurial]Hook der die Commitmessage ändert

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Für die Tutorialübersetzung such ich nach einer Möglichkeit den Fortschritt anzugeben.
Momentan vergleiche ich die Zeilenanzahl der gesamten Dateien und der, die schon übersetzt sind (deren englische Version in der das übersetzte gelöscht ist)
D.h. mit der Gesamtzahl abzüglich `wc -l edited-files/*` geteilt durch die Gesamtzahl, multipliziert mit 100, komme ich an die Prozentzahl, die schon bearbeitet ist.
Schön und gut, allerdings ist der Mensch ja faul darum suche ich nach einer Möglichkeit das per Hook auszuführen und in die Commitmessage zu schreiben.

Kann man auf die entsprechende Datei zugreifen und sie verändern? Hat da jemand schon Erfahrungen gemacht?
lunar

Diese Zahl hat doch so gut wie keine Aussagekraft, schon allein deswegen, weil deutsche Sätze meist länger sind und eine deutsche Übersetzung daher mit Sicherheit mehr Zeilen hat als das Original. Außerdem ist eine Commit-Nachricht dafür doch der völlig falsche Ort ...

Wieso nutzt du denn nicht einfach die Möglichkeiten, die BitBucket dir frei Haus bietet? Ein Ticket ala "Translate 4.7.1 Default Argument Values" für jeden noch zu übersetzen Abschnitt erstellen, und bei Vollendung das Ticket schließen. Über "Open Issues" ist dann ganz direkt ersichtlich, welche Abschnitte noch fehlen und im Umkehrschluss über "Closed Issues", welche schon übersetzt wurden. Verwalten lässt sich das dann auch gleich viel einfacher.

In der Commit-Nachricht kann man ja dann auf das Ticket verlinken, wenn es vollendet ist. BitBucket verlinkt bei Nachrichten wie "#123: transated 4.7.1" automatisch auf das Ticket Nr. 123.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nein du verstehst meine Berechnung nicht. Ich ziehe nicht die deutschen Dateien zum Vergleich heran, sondern die englischen, insofern ist die Zahl durchaus gültig.

Aber dein Vorschlag ist weit besser, vor allem da er die Zusammenarbeit mit anderen erleichtert. Das werd ich dann mal machen ;)

Allerdings hätte ich, aus reinem Interesse, immernoch gerne eine Antwort :)
lunar

cofi hat geschrieben:Nein du verstehst meine Berechnung nicht. Ich ziehe nicht die deutschen Dateien zum Vergleich heran, sondern die englischen, insofern ist die Zahl durchaus gültig.
Ah, in der Tat. Entschuldigung :oops:
Allerdings hätte ich, aus reinem Interesse, immernoch gerne eine Antwort :)
Ich glaube, dass das über Hooks gar nicht geht, dafür benötigt es imho eine Erweiterung:

Code: Alles auswählen

# -*- coding: utf-8 -*-
# Copyright (c) 2009 Sebastian Wiesner <basti.wiesner@gmx.net>

# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.


from __future__ import print_function, division

from mercurial import cmdutil, extensions, commands

def change_commit_msg(commit, ui, repo, *pats, **opts):
    message = cmdutil.logmessage(opts)
    if message:
        # replace any place and enforce editing
        opts['message'] = message.format(progress='25/100')
        opts['force_editor'] = True
    return commit(ui, repo, *pats, **opts)

def uisetup(ui):
    extensions.wrapcommand(commands.table, 'commit', change_commit_msg)
Das kannst du als Modul irgendwo ablegen, und dann wie jede andere Erweiterung laden. Es ersetzt die Variable '{progress}' durch "25/100", an dieser Stelle kannst du dann natürlich den richtigen "Fortschritt" berechnen. Allerdings funktioniert das nur, wenn man die Commit-Nachricht mit "-m" oder "-l" übergibt, auf die Schnelle habe ich jetzt nicht herausgefunden, wie man auch nach dem Aufruf des Editors die Commit-Nachricht noch verändern kann.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja das hatte ich schon befürchtet :(

Danke, dass du dir die Arbeit gemacht hast auch wenn ich es in nächster Zeit eher nicht einbauen werde ;)
Antworten