Mercurial - указать, что определенные файлы должны всегда извлекаться, но никогда не выдвигаться? - PullRequest
3 голосов
/ 15 июня 2011

В моем репозитории есть определенные файлы, которые я хочу иметь возможность редактировать локально.Но я никогда не хочу помещать какие-либо изменения в эти файлы на сервер.Могу ли я установить это?

РЕДАКТИРОВАТЬ: чтобы уточнить, я хочу внести изменения, сделанные другими.Но я не хочу продвигать свои изменения.

Ответы [ 3 ]

2 голосов
/ 15 июня 2011

Если ваше изменение является существенным, рассмотрите возможность сделать его патчем в Mercurial Queue .Вы можете pop внести изменения, получить их изменения, а затем push вернуть изменения в рабочий каталог.Если это изменение, которое вы не можете потерять, вы можете сделать очередь собственным хранилищем, а затем клонировать это хранилище в другом месте.

2 голосов
/ 15 июня 2011

Это не легко возможно. Mercurial не извлекает и не извлекает файлы, а выталкивает и извлекает наборы изменений. Ваш единственный путь - никогда не фиксировать эти файлы. Игнорирование их не вариант, потому что они уже отслежены (добавлены), и отслеживаемые переопределения всегда игнорируются.

Вы могли бы явно исключить их при таких коммитах, как.

hg commit -X a-file-I-changed -X another-file 

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

[alias]
mycommit = -X a-file-I-changed -X another-file 

Однако я собираюсь выйти на конечность и предположить, что вы говорите о файле конфигурации, таком как файл настроек базы данных. Лучший способ справиться с этим - это зафиксировать не database.conf (или как он там называется), а вместо database.conf.sample, а затем попросить ваш скрипт запуска скопировать database.conf.sample в database.conf, если он еще не существует. Это нормальная практика.

1 голос
/ 15 июня 2011

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

https://www.mercurial -scm.org / wiki / ExcludeExtension

https://bitbucket.org/aragost/exclude/

Непростой случай - это слияние - Mercurial не позволяет исключать файлы при совершении слияния.На данный момент вам придется отодвинуть измененный файл в сторону, вернуть его обратно, а затем переместить обратно после слияния.Для этого случая можно использовать патчи!

...