Trac - Получить дату последнего коммита определенного файла репозитория на вики-странице. - PullRequest
0 голосов
/ 06 января 2011

Я использую Trac для управления своими проектами.Некоторым ребятам приходится регулярно просматривать мои вики-страницы, чтобы посмотреть изменения в специальном файле.Поэтому у меня есть ссылка на мою вики-страницу.Что-то, связывающее это:

[source:MyRepository/trunk/subfolder/file.pdf@head The file to read]

Я хотел бы получить следующий вывод:


Файл для чтения (последний принят: 01.11.15 в 08:52)


Есть идеи, как управлять этим в trac wiki?

1 Ответ

2 голосов
/ 06 января 2011

Вам, вероятно, придется написать небольшой плагин для этого, что-то вроде следующего:

from genshi.builder import tag

from trac.util.datefmt import format_datetime
from trac.util.translation import _
from trac.versioncontrol.api import RepositoryManager
from trac.wiki.api import parse_args
from trac.wiki.macros import WikiMacroBase


class SourceMacro(WikiMacroBase):
    def expand_macro(self, formatter, name, content):
        args, kwargs = parse_args(content)
        path = args[0]
        label = kwargs.get('label', path)
        rm = RepositoryManager(self.env)
        reponame, repos, path = rm.get_repository_by_path(path)
        node = repos.get_node(path)
        href = formatter.href.browser(reponame or None, path)
        return tag(tag.a(label, href=href),
                   _(' (last committed: %(date)s)',
                     date=format_datetime(node.last_modified)))

(Для Trac 0,12 или новее обработка ошибок оставлена ​​читателю как страшное упражнение)*

Поместите это в файл с именем source_link.py в каталоге plugins вашей среды Trac.Затем вы можете сослаться на ваши файлы с помощью следующего макроса:

[[Source(MyRepository/trunk/subfolder/file.pdf)]]

или, если вам нужна конкретная метка:

[[Source(MyRepository/trunk/subfolder/file.pdf, label=The file to read)]]
...