Вопрос
Программа с открытым исходным кодом использует CVS для контроля версий. Я хотел бы сделать ряд исправлений ошибок и представить патч-бомбы разработчикам с правами коммитов. Я также хотел бы сохранить свой собственный полу-приватный форк, который в основном отслеживает основную кодовую базу, но включает в себя мои собственные функции (сейчас эти функции не должны быть включены в основную кодовую базу).
Я предпочитаю использовать mercurial для собственных нужд контроля версий, но я открыт для других систем контроля версий, если это необходимо.
Я бы хотел:
- Возможность легко создавать патч-бомбы для текущего источника CVS с моими собственными исправлениями ошибок
- Следите за историей на моих собственных функциях
- Внесите исправления и улучшения из основного дерева в мой новый ветвь
- Легко применяйте мои собственные исправления ошибок к моей новой функциональной вилке
- Возможность работать и отслеживать историю изменений без подключения к Интернету.
Какие у вас есть предложения для этого?
Моя текущая идея
Ниже приведены мои собственные предположения, чтобы дать вам лучшее представление о том, о чем я думаю.
У меня будет 3 ртутных хранилища.
Первые два репозитория управляются так, как указано в (https://wiki.mozilla.org/Using_Mercurial_locally_with_CVS). Один просто отражает последние изменения из CVS апстрима. Я делаю "cvs update", затем "hg commit" в этом репо. Второе репо содержит мой исправления ошибок в виде патчей с использованием расширения mq, и я вытаскиваю из первого репозитория и периодически повторяю свои патчи. Когда мои патчи включаются в основное дерево, я удаляю патчи из очереди патчей / делаю их постоянными коммитами .
Третий репо - мой местный форк. Это начнется как клон первого репо. Затем каждый раз, когда я делаю обновление первого репо, я извлекаю его из репо 3. Мои собственные функции будут непосредственно присутствовать в виде коммитов в этом репо. Когда я исправлю ошибку, я экспортирую патч из репо 2 и применю его к соответствующему пулу из репо 1.