Mercurial: в том числе предварительно измененный файл
При коммите в репозиторий у меня есть крючок, определенный в Mercurial:
[hooks]
precommit.exportDB=exportDB.bat
Это создает / обновляет SQL-дамп из моей базы данных, который должен быть включен в коммит. НО: хотя это работает, Sql помечен как новый, но не является частью уже принятого набора изменений. Как я могу автоматически включить его, чтобы он попадал в набор измененных файлов?
Надеюсь, это имеет смысл...
Thx Рейнхард
1 ответ
Это будет звучать безумно, но вы можете сделать это в два этапа. Сначала измени свой precommit
зацепить pre-commit
крючок - да, оба существуют, и они разные. Без черты коммит уже начался, и некоторая блокировка была получена. С тире это происходит до начала коммита, и вы все еще можете hg add
новый файл.
На Unix, как это общее изменение будет:
[hooks]
pre-commit.exportDB=exportDB.sh && hg add resulting.sql
предположительно есть что-то похожее на Windows, или вы могли бы сделать hg add
последняя строка командного файла.
PS Не фиксируйте сгенерированные файлы.:)
Обновить:
Я только что проверил это, и это работает, как я предложил:
ry4an@four:~$ hg init reinhard
ry4an@four:~$ cd reinhard/
ry4an@four:~/reinhard$ vi .hg/hgrc
ry4an@four:~/reinhard$ cat .hg/hgrc
[hooks]
pre-commit = hg add otherfile
ry4an@four:~/reinhard$ echo text > afile
ry4an@four:~/reinhard$ echo more > otherfile
ry4an@four:~/reinhard$ hg add afile
ry4an@four:~/reinhard$ hg status
A afile
? otherfile
ry4an@four:~/reinhard$ hg commit -m 'message'
ry4an@four:~/reinhard$ hg status --all
C afile
C otherfile
Обратите внимание, что перед фиксацией добавляется только "afile", а "otherfile" неизвестен, а после фиксации оба файла обозначаются "C" (что означает "Очистить" - они были добавлены и зафиксированы).