Обработка и синхронизация собственной пользовательской версии библиотеки с открытым исходным кодом с помощью SVN - PullRequest
2 голосов
/ 12 мая 2009

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

Вопрос: как я могу хранить и управлять своей собственной "веткой" в моем SVN-репозитории?

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

Что я уже сделал, так это пометил папку (скажем, Ресурсы) соответствующим свойством svn: externals. Затем я могу обновить из официального транка «изнутри» рабочую копию, привязанную к моему репо. Очевидно, что я не могу сделать, это передать изменения. Похоже, ничего (временное перемещение, переключение, ...) не работает. Я даже пытался экспортировать в другую папку, затем вносить свои изменения и затем «каким-то образом» объединять ее, но единственным результатом была куча ошибок, большинство из которых жаловались на несоответствие руководств репо. Но, возможно, я пропустил некоторые детали:).

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

Ответы [ 3 ]

3 голосов
/ 13 мая 2009

Хотя вы не можете точно разветвляться между репозиториями, вы можете импортировать код в свой собственный репозиторий и затем выполнять слияния между репозиториями . (Связанный пост подразумевает, что есть проблемы с этой функцией, но я считаю, что она полностью поддерживается в последних выпусках SVN. SVN 1.6.1 имеет исправление ошибки , связанное с этим сценарием.)

Книга SVN описывает более общую стратегию, которая не использует перекрестные слияния репозитория. Это также работает, если сторонний код вообще не находится в хранилище SVN. См. Раздел Филиалы поставщика .

1 голос
/ 13 мая 2009

Проверьте поршень, он делает именно то, что вы хотите с легкостью.

http://piston.rubyforge.org/

Я использую его для поддержки обратного хранилища, и он работает довольно хорошо.

0 голосов
/ 13 мая 2009

Вместо SVN вы можете использовать распределенное программное обеспечение для управления версиями. Например, Git поддерживает синхронизацию веток с хранилищем SVN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...