Более чистый путь в Свифте должен быть:
extension UINavigationController {
func replaceTopViewController(with viewController: UIViewController, animated: Bool) {
var vcs = viewControllers
vcs[vcs.count - 1] = viewController
setViewControllers(vcs, animated: animated)
}
}
Ясно, что такая интеграция не является чем-то важным для работы программного обеспечения. При некоторой дисциплине каждая регистрация может сопровождаться номером ошибки вручную, и при каждом разрешении ошибки можно вручную добавить тег управления версиями.
При прочих равных, однако, я лично всегда предпочитаю автоматизацию ' дисциплина пользователей, ведь последние всегда рано или поздно время от времени подведут. Не потому, что пользователи злонамерены или некомпетентны, а просто потому, что люди не могут быть на 100% бдительными все время.
Это вопрос о размере вашего кода и количестве ошибок, которые вам нужно отслеживать.
И это также действительно полезно для не кодировщиков в организации, то есть менеджеров и службы поддержки. Они могут найти ответы на такие вопросы, как «Когда и где была исправлена эта ошибка» ...
Я думаю, что полезно проводить различие между ошибками, обнаруженными внутри организации, занимающейся разработкой, например, в результате коллегиального обзора кода, и ошибками, обнаруженными группой тестирования, которая является внешней по отношению к организации разработки.
(небольшое) преимущество координации управления версиями с ошибками, обнаруженными внешней группой тестирования, будет для исторической справки.
Большим преимуществом является координация ошибок, обнаруженных посредством коллегиального обзора кода, с контролем версий - тем самым вы можете подтвердить, что все код не содержит ошибок рецензирования перед тем, как передать его внешним тестовым группам; общее требование.
К вашему сведению, Code Collaborator от SmartBear, Inc. прекрасно справляется с этим.
Я считаю очень полезной интеграцию SVN с TRAC. С помощью перехватчиков SVN фиксируется в репозитории с номером тикета, вставляет комментарий к тикету со ссылкой на красивое визуальное HTML-представление номера ревизии, показывающее вставки, удаления и различия.
Как руководитель небольшой группы программистов, я считаю это полезным инструментом для проверки кода, так что я могу убедиться, что фиксация действительно решает связанную проблему. Я бы не назвал эту интеграцию необходимой, но это была хорошая бесплатная добавка к моему трекеру проблем, которую я полюбил.
Я обнаружил, что интеграция с системой управления версиями чрезвычайно полезна для поддержки и управления несколькими версиями (стабильной, основной для разработки и т. Д.) Проекта.
Использование интеграции управления версиями и немного Дисциплина со стороны программистов по ссылкам на тикеты в коммитах (или некоторые хуки перед фиксацией для принудительного запроса тикетных ссылок) позволила нам быстро и легко создавать списки ревизий, которые требуются для исправления любой данной ошибки. Это очень важно при объединении исправлений в различные стабильные ветви кода.
Это не является необходимостью, но, безусловно, облегчает жизнь для управления выпусками.
Я использовал SVN + Trac и продукт Atlassian Jira с Fisheye SVN плагин и обнаружили, что оба инструмента очень хороши. Trac кажется немного проще, но очень удобен в использовании. Jira, на мой взгляд,