Контроль актуальности исходников
Столкнулся с такой проблемой и пока никак не могу найти хорошего решения. Суть следующая. В разных проектах я нередко использую одни и те же решения. При этом иногда эти решения - просто один файл с исходным кодом (например, удобная мне обертка какой-то библиотеки, нужной в разных проектах, удобные шаблоны).
Оформлять такой нужный для разных проектов файл с исходными кодами в виде отдельного решения, лежащего где-то вне этих проектов, чтобы они на него ссылались, не имеет смысла, он может быть очень небольшим и незначительным. Я боюсь, что такое место быстро превратится в помойку.
Поэтому хранить его в одном месте так, чтобы все проекты, его использующие, могли ссылаться на это место, не получается. В итоге для разных проектов у меня разные копии этого файла. При этом, со временем, в нем могут найтись баги и где-то исправиться, какие-то вещи оптимизироваться. И версии такого файла начинают плодиться в разных проектах, при том, что на самом деле исправление бага хотелось бы, конечно, распространить на все проекты, использующие этот файл.
Т.е. нужна какая-то схема контроля версии (но опять же, выносить такое решение в какую-то внешнюю папку, вроде "утилиты", по-моему, не очень разумно) разного рода исходников для разных проектов, но я никак не могу придумать такую систему. Пытался писать в файле комментарий с указанием его версии / даты изменения - не удобно. Как быть? Наверняка многие сталкивались с таким, наверняка есть какое-то классическое решение, какое?
Или все-таки лучше выносить куда-то?
Вопрос очень размытый, но если у кого есть какие-то мысли, я был бы им рад.
Мне все же видится собственная директория с продуманной внутренней иерархией (все же там должны лежать собственные наработки, про которые вы все знаете). Пусть это будет так называемая master-копия. Я беру оттуда файлы, использую в конкретном проекте, потому туда же возвращаю измененную версию, если конечно были какие-то изменения. При коммите измененной версии в базу системы управления версиями можно написать комментарий (или вести отдельный changelog).