Выборочное обновление рабочего каталога - PullRequest
1 голос
/ 09 октября 2011

Я работаю над кодом с партнером.Наши make-файлы немного отличаются из-за разных настроек сборки.Из-за этого до сих пор мы не отслеживали этот файл.Однако было бы неплохо, чтобы хотя бы один из наших отслеживался.Проблема в том, что когда это сделано, а другой человек запускает hg update, его копия обновляется, а код не компилируется.

Есть ли способ отследить файл, но он должен быть таким, чтобы выможно обновить рабочий каталог выборочно?Или есть другой способ решить эту проблему?

Ответы [ 3 ]

6 голосов
/ 09 октября 2011

Это небольшой вариант стандартного вопроса «как мне работать с файлом конфигурации».Стандартный ответ в SVN, Mercurial и Git: не отслеживать файл, а отслеживать .example.Затем каждый пользователь копирует это в и настраивает его по мере необходимости.

Но Makefiles немного умнее конфигурационных файлов: они исполняют код и могут включать другие файлы.В этом случае начинает иметь смысл нормально отслеживать Makefile и включать в него другой локальный файл, если он присутствует, который переопределяет правила по умолчанию.Например, с GNU Make будет работать следующее:

# pull in any local user tweaks
-include Makefile.local
1 голос
/ 09 октября 2011

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

Например, вы можете добавить условный оператор на основе имени пользователя. Мое имя пользователя Райан, и этот код повторяет мое имя, но если он запускается на вашем компьютере, он, вероятно, будет отображать "не Райан".

all:
    if [ `whoami` = "ryan" ]; then echo "ryan"; else echo "not ryan"; fi
1 голос
/ 09 октября 2011

Расширение MQ - лучший и правильный путь (тм), чтобы сделать это (не самый простой, но ...)

Хранить общую часть файла в репо, индивидуальную персонализацию - в собственных MQ-патчах

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