Как вы можете предотвратить путаницу файлов, если ключевые слова контроля версий запрещены?
По крайней мере, два замечательных программиста, Линус Торвальдс и Гвидо фон Россум, пренебрегают практикой помещения ключевых слов в файл, который раскрывается для отображения номера версии, последнего автора и т. Д.
Я знаю, как различия между ключевыми словами загромождают различия. Одна из причин, по которой мне нравится DiffZilla SlickEdit, заключается в том, что она может быть настроена на пропуск ведущих комментариев.
Однако у меня остались яркие воспоминания о командном программировании, где у нас было четыре версии файла (два разных выпуска, одноразовый заказчик и версия для разработки), все из которых были открыты для исправления одновременно, и было весьма полезно проверить это с помощью Взгляд на то, что каждый раз, когда мы переходили к включенному заголовку, мы получали правильный заголовок, и каждый раз, когда мы вставляли код, источник и назначение были тем, что мы ожидали.
Существует также проблема "откуда сделал этот файл", которая возникает, когда поспешный разработчик копирует файл из одного места в другое, используя файловую систему, а не извлекает его из хранилища с помощью инструмента; или, что более оправданно, когда файлы, находящиеся под контролем в местоположениях A, B и C, необходимо направить (с сортировкой вишни) в место распространения D.
Как вы справляетесь с местами, где ключевые слова VCS запрещены?
2 ответа
Это не совсем отвечает на ваш вопрос, но я полагаю, что у Линуса и Гвидо есть причины не любить ключевые слова, которые не относятся к корпоративному развитию небольшой группы.
$Id$
тег, например, имеет то, что вы можете считать глобальным номером версии. Linux и я полагаю также, что разработка Python достаточно фрагментирована, поэтому ни одно число не может быть глобальным. Многие люди имеют свои собственные репозитории повсюду, которые заполняют их собственные $Id$
значения и затем эти патчи могут быть отправлены в репозитории Линуса или Гвидо, где они не имеют никакого смысла.
Однако в вашей среде у вас, вероятно, есть один центральный репозиторий, который бы их назначал, и это было бы хорошо. Похоже, вы используете Git. Интересно, можно ли настроить центральный репозиторий git для подстановки тегов, а локальные репозитории разработчиков нет. Или, возможно, лучше получить хеш коммита в теге.
За всю свою карьеру я никогда не использовал ключевые слова VCS более 30 лет. От самой примитивной системы VCS, которую я использовал, до настоящего времени (TFS), я использовал некоторую другую структуру, чтобы понять, "где я".
Я редко бываю в ситуации, когда мне нужно работать только с одним файлом. У меня обычно есть все остальные файлы, необходимые для создания проекта или набора проектов. Я обычно использую ветвление (или потоки в одном случае), и я работаю над некоторым фрагментом данной ветви или потока.
Если я работаю над несколькими ветками или потоками, у меня будет по одному дереву каталогов для каждой. Все, что мне нужно сделать, чтобы узнать, над каким файлом я работаю, это проверить путь к файлу, в худшем случае.
В лучшем случае система контроля версий точно скажет вам, над какой версией файла вы работаете, какова история изменений, кто еще работает над разными версиями файла и что еще вы хотели бы знать,