При программировании я накапливаю фрагменты кода и классы полезности. Я хочу сохранить их для практического использования в будущем.Как управлять полезными модулями и фрагментами кода с помощью git, boost,
Вопрос вкратце - это лучший способ сделать это. Более подробно с примером:
При написании кода мы продолжаем многократно использовать наши приятные лакомые кусочки для покрытия общих задач. Однако, чтобы сделать наши проекты с открытым исходным кодом, скажем, с git на github, эти лакомые кусочки также должны быть доступны. Мне было интересно, как это сделать лучше всего.
- Могу ли я сделать свое личное коммунальное репо, которое проекты могут добавлять в качестве подмодулей в git?
- Или я делаю отдельные git-репозитории для каждого лакомого кусочка, поэтому проект может добавить определенную версию конкретного лакомого кусочка в качестве подмодуля. (это касается проблемы с библиотеками-утилитами, такими как boost, которые становятся огромными, даже если ваша программа может потребовать лишь небольшую часть)
- Или я объединил оба средства в ao утилиту repo с подмодулями, где внешние проекты могут иметь утилиту repo как подмодуль? Что произойдет, если они захотят использовать версию x tidbit a и версию y tidbit b? Может быть, просто иметь централизованный обзор?
Как и весь открытый код, такие фрагменты должны быть легкими, быстрыми, проверенными, переносимыми, документально и предпочтительно относительно автономными. Теперь я нахожу этот хороший код где-то, и он использует CTASSERT, который не переносится.
Что мне делать?
- я могу использовать повысить static_assert, но это добавляет большую зависимость к небольшому фрагменту кода, потому что повышение не является тривиальным, и на моей системе она составляет около 2 Гб. Чтобы усугубить ситуацию, он также добавляет эту зависимость для каждого проекта, используя фрагмент, который обеспечивает некоторые довольно простые функции. Кроме того, увеличение, насколько я знаю, не имеет git-репо, поэтому проект не может автоматически позаботиться об этих зависимостях с подмодулем.
- Делаю ли я еще один фрагмент и вытягиваю свое собственное время компиляции с глупым побочным эффектом заново изобретающего колеса и создавая больше кода, делающего то, что уже усиливает.
Im с нетерпением жду, как вы решаете эту проблему, а также общие мысли и рекомендации.
Похоже, вы задаете здесь два вопроса, один о зависимостях и один о SCM - вы можете разделить их? – Cascabel
В принципе, здесь есть много вопросов, примеры - просто иллюстрации. Я просто задаюсь вопросом, как люди берут на себя общую проблему, которая включает в себя все эти вопросы. – nus
Тем не менее, есть две очень разные идеи: как закодировать фрагменты (вы упоминаете зависимости, возможно, также именование и переносимость?) И как управлять ими (вы упоминаете git, возможно, и другие организационные вопросы). «Общий вопрос, связанный со всеми этими вопросами», на мой взгляд, немного шире сферы, чем один вопрос. Я не просто говорю, что это педантично - вы можете стать лучше с отдельными вопросами, каждый с более конкретным, информативным названием, чтобы привлечь людей. (Но я уверен, что вы все равно получите хорошие ответы здесь.) – Cascabel