Pull to refresh

Comments 10

Не видно тега «ненормальное программирование». По-моему, не нормально писать почти 300 строк кода ради… списка файлов.
Ну, теперь вам и не придётся писать 300 строк — автор топика за вас их уже написал. А если так рассуждать, то любое программирование покажется ненормальным.
Вовсе нет! Я очень благодарен автору за то, что он написал за меня столько кода.
Комментарий совсем не про то.
Там не «почти 300», а очень даже 200. Точнее, 23 assert’а (20 + 1 на три строки) и 200 прочих строк.
А нет ли такого же, но для получения списка изменений? Эдакий hg log <path_to_remote_repo>.
Вообще‐то именно это и делается. hg incoming — это тот же hg log. Для пустого репозитория он выведет именно список всех изменений.

Если нужен распарсенный лог с моим кодом, то надо немного изменить SAX парсер, чтобы он также запоминал автора, дату и описание изменения: они там есть, просто парсер их игнорирует.

И учтите две проблемы:
  1. Вам всё равно надо иметь пустой репозиторий где‐то.
  2. Этот вариант работает примерно в три раза медленнее, чем hg clone на tmpfs (причём проблема в hg incoming, а не в моём коде). В принципе, он нужен только если вам принципиально не нравится идея клонировать себе потенциально очень большой репозиторий: что будет, если забьётся tmpfs я не знаю и не хочу знать, а вот то, что если забьётся память, то я ничего хуже MemoryError не получу (из‐за limits.conf я даже не забью себе память), я знаю.
Как все сложно… Все таки я наверное буду монтировать сервер с центральными репозиториями (nfs/sshfs) и дергать hg log «локально».
По поводу клонирования — это не принципиально, просто есть не очень маленькое количество репозиториев с которыми необходимо работать (генерация отчетов к примеру, или автоматическое закрытие задач в трекере при послуплении коммита с сообщением «close issue #num», и т.д.), и клонировать всю пачку репозиториев для того чтобы выполнить в них hg log слишком накладно получается.
Хотя наверное проще дергать с определенной периодичностью rss-фид который отдает hg serve, ну или дописать hg serve чтобы можно было получить полный лог :)
Все таки в svn с логами было чуточку проще…
Зачем монтировать, когда можно ssh server hg log?
Ну, если так выполнить 100 раз, то можно потерять с минуту-полторы на соединение, авторизацию.
Вовсе не обязательно. Есть же мультиплексирование соединений в ssh.
Sign up to leave a comment.

Articles