Mercurial: «ветвление» на уровне файлов? - PullRequest
2 голосов
/ 20 октября 2011

Мой пример использования такой:

Я занимаюсь разработкой в ​​разных средах, но на одной и той же базе кода.Чтобы иметь возможность компилировать, у меня есть разные файлы решений Visual Studio, которые отражают разные среды разработки.(различные среды разработки: Win XP / Win 7 -> сторонние библиотеки в разных местах и ​​т.д.).xml, .config файлы и т. д.), но с разными файлами решения.

В настоящее время я делаю push / pull изменения между репозиториями в двух средах.Но на данный момент я не знаю, как исключить файлы решения из толкания / извлечения.

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

Как это лучше всего сделать с Mercurial?Это вообще возможно?

Спасибо,

Джабба

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Это в основном проблема OSD (зависит от операционной системы) файлов.Многие плохие системы контроля версий (в которых отсутствует ветвление на уровне файлов) обрабатывают их с помощью специальных экранных каталогов и сценариев установки.Где вы просто храните файлы для другой платформы или настройки компьютера в другом каталоге и используете скрипт, чтобы настроить его перед фиксацией и после проверки.

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

0 голосов
/ 20 октября 2011

Храните «скелетные» файлы в репозитории, изменяйте для каждого решения локационные файлы, используя локальные MQ-патчи (и используйте MQ, да)

...