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

По крайней мере, два замечательных программиста, Линус Торвальдс и Гвидо фон Россум, пренебрегают практикой помещения ключевых слов в файл, который раскрывается для отображения номера версии, последнего автора и т. Д.

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

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

Существует также проблема "откуда сделал этот файл", которая возникает, когда поспешный разработчик копирует файл из одного места в другое, используя файловую систему, а не извлекает его из хранилища с помощью инструмента; или, что более оправданно, когда файлы, находящиеся под контролем в местоположениях A, B и C, необходимо направить (с сортировкой вишни) в место распространения D.

Как вы справляетесь с местами, где ключевые слова VCS запрещены?

2 ответа

Решение

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

$Id$ тег, например, имеет то, что вы можете считать глобальным номером версии. Linux и я полагаю также, что разработка Python достаточно фрагментирована, поэтому ни одно число не может быть глобальным. Многие люди имеют свои собственные репозитории повсюду, которые заполняют их собственные $Id$ значения и затем эти патчи могут быть отправлены в репозитории Линуса или Гвидо, где они не имеют никакого смысла.

Однако в вашей среде у вас, вероятно, есть один центральный репозиторий, который бы их назначал, и это было бы хорошо. Похоже, вы используете Git. Интересно, можно ли настроить центральный репозиторий git для подстановки тегов, а локальные репозитории разработчиков нет. Или, возможно, лучше получить хеш коммита в теге.

За всю свою карьеру я никогда не использовал ключевые слова VCS более 30 лет. От самой примитивной системы VCS, которую я использовал, до настоящего времени (TFS), я использовал некоторую другую структуру, чтобы понять, "где я".

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

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

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

Другие вопросы по тегам