2012-04-23 5 views
1

Мы используем Mercurial с клонированными репозиториями для наших «ветвей». «Ветвь» в каждом клоне «по умолчанию».Сообщение о совершении сделки Mercurial/Hg с префиксом текущей директории ветвей

Структура:

repos/Test 
repos/Trunk 
repos/Live 
repos/NewFeature 

Закончив работу в Магистральные изменения вытягиваются в тест-клона. Поскольку каждая фиксация выполняется с default, теперь я вижу, где были сделаны изменения, т. Е. В Trunk или тестовом репо.

Я хотел бы знать, как автоматически префикс каждого сообщения совершать с сообщением [Trunk] или [Test] - тогда журналы будут проще просмотреть.

Я бы хотел, чтобы это произошло, когда вы совершали как из линии cmd, так и из Netbeans.

ответ

0

В Mercurial wiki содержится ряд предложений по настройке commit message template. Это касается командной строки.

Что касается Netbeans, я не знаю, позволит ли это вам сделать это из коробки. Всегда можно было write a plug-in.

+0

Спасибо - будем смотреть на эти предложения. –

3

Нет такого варианта для этого и никакого существующего расширения Mercurial, насколько я знаю.

Однако я бы предпочел переключиться на named branches: таким образом вы получите текущее название ветки, встроенное непосредственно в метаданные в наборе изменений. Наблюдатели за выборами обычно будут отображать название ветки, где-то заметно в их пользовательском интерфейсе, так что легко увидеть, где находится каждый набор изменений.

+0

Вначале я думал об этом, но поскольку мы должны развиваться параллельно на 3 или 4 ветвях, я думаю, что клонированный подход для нас лучше. У нас есть Jenkins, работающий с этим подходом, и единственное, что мне нужно, это префикс сообщения фиксации. Я думаю, что буду исследовать крюк pre commit ... –

1

Мы используем скрипт, содержащий это:

import re,os,sys,mercurial,repo 

def prefix_commit_message(repo, **kwargs): 
commitctx = repo.commitctx 

def rewrite_ctx(ctx, error): 
    branch_name = repo.root.split("/")[5] 
    old_text = ctx._text 
ctx._text = "["+branch_name+"] "+old_text 

return commitctx(ctx, error) 

И .hgrc это:

$ cat ~/.hgrc 
[ui] 
username = Ian Wood 

[hooks] 
precommit = python:~/Development/repository/prepend-branch-name.py:prefix_commit_message