Как я могу использовать контроль версий более мощным способом? - PullRequest
4 голосов
/ 01 апреля 2009

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

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

Может кто-нибудь дать мне совет о том, как более эффективно использовать контроль версий?

Системы контроля версий, о которых я в основном говорю, это SVN и Git.

Ответы [ 6 ]

13 голосов
/ 01 апреля 2009

Вы можете начать здесь: Красная книга

Вы создаете теги для вещей, которые вы выпустили; вы создаете ветки для того, над чем работаете, и потенциально можете быть ошибочными / нестабильными. Ваш ствол должен быть как можно более устойчивым (мужчина, это звучит неправильно).

11 голосов
/ 01 апреля 2009

Мастер слияния и ветвления. Что меня удивляет в большинстве случаев использования контроля версий, так это то, что 90% людей, использующих его, не знают, как использовать его для поддержки двух разных веток одновременно, и используют его как систему линейного управления версиями при проверке изменений , Реальная сила контроля версий заключается в том, что он позволяет эффективно поддерживать две отдельные версии системы одновременно, что очень удобно, когда вам необходимо одновременно поддерживать рабочую версию и разрабатывать новую версию программного обеспечения. , Изучение того, как использовать такой инструмент, как Subclipse (и плагин Eclipse для Maven) или инструмент, такой как Git, для объединения изменений между ветками, - это то, что я хотел бы, чтобы больше людей, использующих Контроль версий, знали, как это сделать.

8 голосов
/ 01 апреля 2009

git ready содержит множество советов по использованию Git, от начинающих до продвинутых. См. Также Git Wiki для всех видов документации и советов по использованию Git.

Вот несколько вещей, о которых полезно узнать и которые не очевидны.

Изменить последовательность коммитов:

git rebase -i <base-rev>

Найдите, какой коммит нарушил ваши юнит-тесты, в данном случае make check; Вы можете использовать любую другую команду, которая может проверить на наличие конкретной ошибки или ошибки сборки и выйти с ненулевым статусом при ошибке:

git bisect start HEAD <known good revision>; git bisect run make check

Показать полезную информацию о пульте и его филиалах:

git remote show <remote> 

И ветвление в Git проще, чем что-либо:

git checkout -b branch-name master # create a new branch, starting it at master
git pull origin master # merge in changes from the master branch on origin server
git checkout master; git merge branch-name # merge changes you made on the branch
git branch -d branch-name # once you're done with the branch

Если вы хотите поделиться веткой с другими во время работы над ней или отправить ее на сервер для резервного копирования:

git checkout branch-name # assuming it's already been created
git push origin branch-name # push the branch to the origin server
4 голосов
/ 01 апреля 2009

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

2 голосов
/ 16 апреля 2009
2 голосов
/ 01 апреля 2009

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

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