Конкретные сообщения коммита для различных файлов в Mercurial - PullRequest
1 голос
/ 01 августа 2011

В моем Mercurial Repository у меня есть 4 файла, которые я изменил,

Когда я делаю коммит, сообщение коммита применяется ко всем файлам, которые я модифицировал, но есть любая форма для записи конкретного сообщения коммитакаждый файл, который я изменил на экране фиксации ??

Ответы [ 3 ]

4 голосов
/ 01 августа 2011

В идеале, каждый набор изменений должен содержать какое-то конкретное изменение, будь то что-то такое же маленькое, как исправление небольшой ошибки путем исправления одной строки в файле, или что-то такое же большое, как изменение сигнатуры функции по всей базе кода.

Это позволяет вам делать такие вещи, как пересадка набора изменений в другую ветвь позже, что легко сделать, только если ваши изменения не загрязнены несвязанными вещами.

(Кстати, в этом главное отличие современных DVCS, таких как Mercurial или Git, которые отслеживают изменения , и более старых систем, таких как SVN, которые отслеживают редакции .)

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

С другой стороны, если это не так, вы, конечно, можете написать многострочное сообщение:

User can no longer add the same product twice (issue123)

add_product.py: added server-side validation
scripts.js: added client-side validation
1 голос
/ 03 августа 2011

Если вы используете командную строку, вы можете зафиксировать изменения в отдельных файлах, передав их в командной строке hg commit:

> hg st
M file1.cpp
M file1.h
M file2.cpp
M file2.h
> hg commit -m "Some changes" file1.cpp file1.h
> hg st
M file2.cpp
M file2.h

Вы можете сделать то же самое, используя TortoiseHg, только «проверяя» файлы, которые вы хотите отметить в окне thg commit, или, точнее, снимая флажки с тех файлов, которые не хотите фиксировать.

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

В предыдущей версии TortoiseHg (тогда, когда она была написана с использованием tk, не так давно), на самом деле можно было выбирать отдельные «куски» изменений в файле и фиксировать их отдельно. Однако в текущей версии это недоступно, и, насколько мне известно, какое-то время не планируется.

0 голосов
/ 01 августа 2011

На самом деле сообщение о фиксации применяется к набору изменений, который содержит изменения к файлам, которые вы изменили.

Вы можете создавать многострочные сообщения, если хотите адресовать изменения каждому файлу:

new features, fixed bugs, etc.
file1.txt: fixed bug 1234
file2.txt: refactored body of Foobar()
file3.txt: did Rot13 on the entire file, twice
file4.txt: added overload of Bar() to except a second Foo object

Однако я не рекомендую делать набор изменений для каждого файла, даже если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...