Помогите мне привести аргумент, почему инструменты сборки системы не должны автоматически выполнять проверку SVN
Я пытаюсь возразить против автоматических проверок контроля версий. Моя рабочая группа написала несколько инструментов для сборки системы вокруг CFEngine, и теперь они думают, что эти инструменты должны автоматически проверять такие вещи, как ключи хоста SSH.
Теперь, как программист, моя первоначальная внутренняя реакция заключается в том, что ничто не должно называть "svn up" и "svn ci" помимо человека. В недавнем случае объединенные версии файлов.rNNNN сломали инструменты, с чего и началось это обсуждение.
Теперь парень, разрабатывающий инструменты, в основном признал, что использует SVN для синхронизации файлов, и что он может заменить все это на монтирование NFS. Он даже сказал, что обернет "svn diff" в "make diff", потому что это кажется лучше, чем все мы знаем, как работает SVN.
Итак... Я прошу собравшихся здесь дать хороший аргумент, чтобы НЕ иметь Makefiles, сценарии оболочки и т. Д., Обернуть команды Subversion, когда Subversion в основном используется для синхронизации файлов на разных машинах.
Вот мой список, пока:
- На самом деле мы не контролируем эти данные, поэтому они не должны передаваться в SVN.
- Мы сказали, что его можно заменить монтированием NFS, так почему бы нам не сделать это?
- Доморощенные инструменты теперь обертывают SVN, и в программном обеспечении всегда будут ошибки, поэтому наши ревизии SVN теперь будут иметь ошибки, сделанные из ревизий, когда мы сталкиваемся с ошибками.
... пожалуйста, обсудите / помогите мне сделать это, или скажите, почему вы не согласны!
4 ответа
SVN не плохой инструмент для синхронизации файлов на компьютерах! Если я хочу, чтобы группа машин имела одну и ту же версию файла, то иметь их в Subversion и возможность проверить их - это находка. Да, вы могли бы использовать такие инструменты, как rsync, или использовать монтирование NFS, чтобы поддерживать их актуальность, но, по крайней мере, subversion позволяет вам сохранять все ревизии и выполнять откат / перемотку, когда вы захотите.
Хотя я скажу одну вещь: автоматическое обновление машин из магистрали - плохая идея, когда эти файлы могут сломать вашу систему, они должны обновляться по тегу. Таким образом, вы можете проверить и сохранить историю изменений, проверить их, а затем применить тег, который будет синхронизировать файлы на других машинах при их обновлении.
Я понимаю ваше беспокойство по поводу автоматической фиксации этих инструментов, потому что вы, возможно, чувствуете, что требуется какая-то человеческая валидация, но для меня удаление взаимодействия с человеком устраняет человеческую ошибку в процессе, который я и хочу использовать в этом типе системы.
Человеческий аспект должен проявиться, когда вы подтверждаете, что все работает, прежде чем устанавливать производственный тег в дереве SVN.
Таким образом, ваш процесс в порядке, слепо позволяя автоматизированному процессу отправлять файлы в среду, где они могут что-то сломать.
На самом деле SVN лучше, чем NFS. По крайней мере, он обеспечивает атомарно согласованное глобальное представление (т. Е. Вы не будете синхронизировать половину зафиксированного просмотра файлов). Я бы поспорил против разработки автоматических коммитов, потому что она не допускает процесс рецензирования, но для административных заданий SVN весьма полезен. Мой 2с.
Это еще один пример дискуссии " Старая обувь против стеклянной бутылки". В этом случае может понадобиться монтирование NFS, наша ночная сборка фиксирует изменения версий, и все.
Ваш SVN-репозиторий - это то, что вы используете, чтобы помочь в создании и написании кода. Если то, что вы делаете, каким-либо образом ставит под угрозу это, то НЕ ДЕЛАЙТЕ ЭТОГО.
Если SVN, безусловно, лучший способ сделать это, то создайте отдельный репозиторий и используйте его, оставив критический репозиторий в покое.
Только люди должны делать это, но я не вижу причин запрещать автоматические проверки и обновления. Единственное, что нужно, - это обеспечить, чтобы люди передавали рабочий и проверенный код туда, откуда производятся автоматические обновления.
NFS - это круто, но если сервер NFS сломается, у вас проблемы. Вы можете попробовать использовать что-то вроде GlusterFS, чтобы иметь несколько копий данных (но не пытайтесь ls
каталог glusterfs, так как это O(количество файлов)).
Neil Trodden
опубликовал отличное замечание по тегам в этой теме, это решило бы Вашу проблему, я полагаю.