2010-12-03 6 views
3

Я являюсь частью довольно большой организации с разработчиками, распределенными географически и использующими сочетание сред Windows, OSX и Linux.GIT - Перекрестная платформа для смазывания/очистки фильтров?

Я задал предыдущий вопрос, который ведет меня хотеть использовать чистые/смазыванию фильтры: Mark a file in the GIT repo as temporarily ignored

Но ... что лучший способ сделать фильтр кросс-платформенные скрипты? Я бы предпочел не требовать от разработчиков установки дополнительных сценариев. Есть ли какие-либо рекомендации по этому поводу? Любой способ сделать фильтры запущены на стороне сервера (мы используем github)?

ответ

1

Это зависит от того, что установлено по умолчанию.

В нашей среде Solaris/Linux/Windows мы используем Perl-скрипты, но не для каждой операционной системы: только один скрипт способен распознавать ОС, в которых он выполняется, и запускать соответствующий код в зависимости от платформы.

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

Ключом является не введение Os-ветвей, которые бы сделали некоторые «утечки метаданных»: некоторые сведения (Os), которые не имеют ничего общего с данными, версиями (в ветвях «test» или «fix», или ...) будет сосуществовать в специальных ветвях.
Это непрактично: что такое фишка, вам нужна специальная версия этих скриптов?
Не могли бы вы создать ветвь «fix-Windows» и «fix-Unix» только для них, или вы бы просто модифицировали этот скрипт в ветке «fix», зафиксировали его и сделали с ним?

+0

То есть, не так ли? :) – 2010-12-03 20:36:38

+0

@Marc: Я добавил свой ответ с некоторым комментарием о том, как эти сценарии управляются. – VonC 2010-12-04 00:04:02

0

Возникла проблема, если вам нужно запустить скрипт smudge/clean на сервере. Smudge/clean следует использовать только там, где есть рабочая папка. У вас могут быть разные версии в зависимости от платформы, на которой вы находитесь.

Лучший способ сделать это - иметь 1 версию скрипта на платформу максимум. Некоторые могут быть повторно использованы - скажем, если у вас есть msysgit. Затем вы сможете использовать тот же скрипт, что и в Linux, если используете ту же версию bash.

Смежные вопросы