Переменные среды и клоны репозитория - PullRequest
0 голосов
/ 09 июня 2011

Чтение HgInit.com Я понял, что клонирование - отличный способ работать над экспериментами. Часто эксперименты терпят неудачу, и каждый хочет просмотреть исходный код, и в идеале, пройтись по обоим одновременно, чтобы сравнить значения и т. Д. И увидеть, что пошло не так. С проектами, над которыми я работаю, это проблема, так как они зависят от переменных среды для путей.

Есть ли хороший обходной путь, который позволит мне работать с клонами репозитория в проектах, использующих переменные среды? Я готов объявить больше переменных среды, если они не подвержены ошибкам и являются масштабируемыми (то есть, если эксперимент с клоном будет успешным, я просто фиксирую, не беспокоясь об изменении чего-либо, относящегося к переменным среды)

1 Ответ

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

Есть несколько способов подойти к такой ситуации.

Условная компиляция

Иногда я использую существующий символ DEBUG или создаю свой собственный и выполняю такие действия для замены конфигурации на основе среды:

#if EXPERIMENT
    string myVar = "experimental value";
    // or just look up a different envvar
#else
    string myVar = Environment.GetEnvironmentVariable("myvar");

Обычные сборки выпуска / отладки не будут содержать его, если вы больше не объявите EXPERIMENT в настройках проекта, и его достаточно легко найти и отредактировать до нормального состояния.

Временные патчи

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

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

HgInit.com не идет на патчи, но я считаю, что Hg Book делает. При внесении изменений вы должны быть осторожны с тем, какой патч является самым применяемым патчем, и не забудьте hg qrefresh обновить его.

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