GIT - кроссплатформенные пятна / чистые фильтры? - PullRequest
3 голосов
/ 03 декабря 2010

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

Я задал предыдущий вопрос, который заставляет меня хотеть использовать чистые / грязные фильтры: Пометить файл в репозитории GIT как временно игнорируемый

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

Ответы [ 2 ]

1 голос
/ 03 декабря 2010

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

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

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

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

0 голосов
/ 03 декабря 2010

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

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

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