Как призвать более частые фиксации к SVN

Группа разработчиков, о которых я работаю с коммутируемым от VSS до SVN половину года назад. Переход от Регистрации Контроля до Фиксации Обновления был труден в ряде пользователей. Теперь, когда они больше не вынуждаются зарегистрироваться в своих файлах, когда они сделаны (или более точно, теперь, когда никто больше не видит, что им проверили файл и говорят им перепроверять в том, для выпуска блокировки на файле), это произошло больше чем в одном случае, что пользователи забыли Фиксировать свои изменения, пока после они не были завершены.

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

  1. Дорожка, для чего пользователи файлов отредактировали, но еще не Фиксировали изменений
  2. Поощрите пользователей более согласовываться с Фиксацией изменений, когда они будут сделаны
  3. Справка разрушает пользовательское образование, необходимое, чтобы привыкнуть людей для новой парадигмы управления версиями

Приветствие решений Out-of-the-box (т.е.: настольная программа, которая напоминает пользователям фиксировать, если они не сделали так в данном интервале, автоматически получите статистику пользовательских уровней Фиксации и пошлите предупреждение электронных писем, если частота опускается ниже определенного порога, и т.д.).

14
задан Community 23 May 2017 в 11:53
поделиться

10 ответов

... пользователи забыли зафиксировать свои изменения, пока они не были завершены.

Я думаю, что проблема именно здесь. Как можно «завершить» функцию / исправление, если она не отмечена? У вас есть система отслеживания проблем, которая фиксирует нерешенные проблемы? У вас есть система непрерывной интеграции, которая запускает модульные тесты сразу после проверки?

Если разработчики просто занимаются своими делами без ответственности, то неудивительно, что вы сталкиваетесь с проблемами, заставляя всех сотрудничать . Вам понадобится какой-то надзор (руководитель проекта? Руководитель группы?), Который будет отвечать за обеспечение сотрудничества отдельных разработчиков с остальной частью команды разработчиков.

14
ответ дан 1 December 2019 в 07:06
поделиться

Используете ли вы какое-либо программное обеспечение для отслеживания ошибок / функций?
Вы можете попросить их указать номер версии при отметке выполненная работа.

6
ответ дан 1 December 2019 в 07:06
поделиться

Если вы раньше использовали VSS, то, скорее всего, вы работаете в Visual Studio. В AnkhSVN есть окно ожидающих изменений, подобное тому, что есть в TFS и VSS. Это окно автоматически показывает, какие файлы локально изменены в вашем решении.

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

[См. этот снимок экрана более старой версии AnkhSVN]

6
ответ дан 1 December 2019 в 07:06
поделиться

Я думаю, что Проблема, которая у вас есть, на самом деле заключается в отсутствии непрерывной системы сборки, сочетающейся с отслеживанием ошибок / функций / изменений. С системой отслеживания ошибок и непрерывной сборкой разработчик может заявить о «завершенности» только после того, как его изменения внесены в автоматизированную сборку, и выпуск, содержащий изменения, собран, пройдет тесты проверки сборки и будет помещен в место сброса выпуска. Поскольку единственный способ внести изменения в сборку - это проверить (возможна обратная интеграция функциональной ветки в основную ветку / ствол), разработчикам придется проверять, иначе они никогда ничего не закончат. .

5
ответ дан 1 December 2019 в 07:06
поделиться

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

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

4
ответ дан 1 December 2019 в 07:06
поделиться

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

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

2
ответ дан 1 December 2019 в 07:06
поделиться

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

Тем не менее, похоже, что здесь есть что-то фундаментально неправильное. Как ваши разработчики попадают со своими изменениями в выпускаемый продукт, не проходя через VCS? Вам следует закрыть этот черный ход.

1
ответ дан 1 December 2019 в 07:06
поделиться

Массивы на Java ковариантны. Это означает, что TSub [] является подтипом TSuper [] , если TSub является подтипом TSuper .

Имеется int [] [] , который является массивом int [] . Теперь, как отмечали другие, любой массив в Java является подтипом Object , поэтому int [] является подтипом Object . Так, благодаря ковариации массива, int [] [] является подтипом Object [] (подстановка TSub = int [] и TSuper = Object в приведенном выше определении ковариации).

Edit - Чтобы понять, почему ковариация важна здесь, учтите, что сделать то же самое с List < T > не получится:

List<Object> ref2 = new List<int[]>()
-121--3832458-
/// Calculates the SHA1 for a given string
let calcSHA1 (text:string) =
    text 
      |> System.Text.Encoding.ASCII.GetBytes
      |> (new System.Security.Cryptography.SHA1CryptoServiceProvider()).ComputeHash
      |> Array.fold (fun acc e -> 
           let t = System.Convert.ToString(e, 16)
           if t.Length = 1 then acc + "0" + t else acc + t) 
           ""
/// Calculates the SHA1 like git
let calcGitSHA1 (text:string) =
    let s = text.Replace("\r\n","\n")
    sprintf "blob %d%c%s" (s.Length) (char 0) s
      |> calcSHA1

Это решение в F #.

-121--2507339-

Автоматизируйте сборки и развертывания и сделайте их частью процесса, чтобы ничего не было "сделано" до тех пор, пока они не будут протестированы на тестовом сервере

1
ответ дан 1 December 2019 в 07:06
поделиться

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

Как разработчик может закончить что-то и забыть проверить это? Является ли процесс доставки таким, что пользователь запускает сборку с собственной машины разработчика?

0
ответ дан 1 December 2019 в 07:06
поделиться

Хороший трекер ошибок / функций позволит вам добавить номер ошибки при фиксации изменений. Например, если я запускаю Redmine, я могу выполнить фиксацию с помощью «Fixes # 323» где-нибудь в моем сообщении о фиксации Subversion, и он автоматически закроет ошибку / задачу 323. Его установка очень проста; вам просто нужно указать Redmine, где находится репозиторий, который в любом случае запрашивается.

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

Trac также делает это, как и многие другие.

0
ответ дан 1 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: