Помогите мне аргументировать, почему инструменты сборки системы не должны автоматически выполнять проверку SVN - PullRequest
2 голосов
/ 17 мая 2009

Я пытаюсь возбудить дело против автоматических проверок контроля версий . Моя группа на работе написала несколько инструментов для сборки системы вокруг CFEngine, и теперь они думают, что эти инструменты должны автоматически проверять такие вещи, как ключи хоста SSH.

Теперь , как программист, моя первоначальная внутренняя реакция заключается в том, что ничто не должно называть "svn up" и "svn ci" помимо человека. В недавнем случае объединенные версии файлов .rNNNN сломали инструменты, и именно с этого началась дискуссия.

Теперь , парень, разрабатывающий инструменты, в основном признал, что он использует SVN для синхронизации файлов, и что он может заменить все это на монтирование NFS. Он даже сказал, что обернет «svn diff» в «make diff», потому что это кажется лучше, чем все мы знаем, как работает SVN.

Итак ... Я прошу собравшихся здесь помочь мне привести веские аргументы в пользу того, чтобы НЕ иметь Makefiles, сценарии оболочки и т. Д., Оборачивать команды Subversion, когда Subversion в основном используется для синхронизации файлов на разных машинах.

Вот мой список, пока что:

  1. На самом деле мы не контролируем эти данные, поэтому они не должны входить в SVN.
  2. Мы сказали, что его можно заменить монтированием NFS, так почему бы нам не сделать это.
  3. Доморощенные инструменты теперь обертывают SVN, и в программном обеспечении всегда будут ошибки, поэтому наши ревизии SVN теперь будут иметь ошибки, сделанные из ревизий при обнаружении ошибок.

... пожалуйста, обсудите / помогите мне сделать это, или скажите, почему вы не согласны!

Ответы [ 4 ]

4 голосов
/ 17 мая 2009

SVN не плохой инструмент для синхронизации файлов на компьютерах! Если я хочу, чтобы куча машин имела одну и ту же версию файла, то иметь их в Subversion и возможность проверить их - это находка. Да, вы можете использовать такие инструменты, как rsync, или использовать монтирование NFS, чтобы поддерживать их актуальность, но, по крайней мере, subversion позволяет вам сохранять все ревизии и выполнять откат / перемотку, когда вы хотите.

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

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

Человеческий аспект должен проявиться, когда вы подтверждаете, что все работает, прежде чем устанавливать производственный тег в дереве SVN.

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

2 голосов
/ 18 мая 2009

На самом деле SVN лучше, чем NFS. По крайней мере, он обеспечивает атомарно согласованное глобальное представление (т. Е. Вы не будете синхронизировать половинное зафиксированное представление файлов). Я бы поспорил против разработки автоматических коммитов, потому что она не допускает процесс рецензирования, но для административных заданий SVN весьма полезен. Мой 2с.

1 голос
/ 17 мая 2009

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

Ваш SVN-репозиторий - это то, что вы используете, чтобы помочь в создании версий и создании кода. Если то, что вы делаете, каким-либо образом ставит под угрозу это, то НЕ ДЕЛАЙТЕ ЭТОГО.

Если SVN, безусловно, лучший способ сделать это, то создайте отдельный репозиторий и используйте его, оставив критическое хранилище в покое.

0 голосов
/ 18 мая 2009

Только люди должны совершать коммиты, но я не вижу причин запрещать автоматические проверки и обновления. Единственное, что нужно, - это обеспечить, чтобы люди передавали рабочий и проверенный код туда, откуда производятся автоматические обновления.

NFS - это круто, но если сервер NFS сломается, у вас проблемы. Вы можете попробовать использовать что-то вроде GlusterFS, чтобы иметь несколько копий данных (но не пытайтесь ls каталог glusterfs, так как это O (количество файлов)).

Neil Trodden опубликовал отличное замечание по тегам в этой теме, это решило бы Вашу проблему, я полагаю.

...