Интересно, можно ли настроить систему SVN subversion (кстати, я на Ubuntu 11.10) для конкретной папки с двумя разными источниками и отслеживать изменения одновременно?
Ситуация следующая:
Существует проект с открытым исходным кодом, который регулярно обновляется (из svn: // ...).Я использую это в качестве основы для добавления некоторых функций, которые мне нужны.Я не имею права отправлять свои изменения или делать ветвления или что-то подобное на разработчиков svn.
Изменение моего кода Я отслеживаю то, что я изменил через локальный svn (file: /// usr / ...)
Я хотел бы время от времени объединять мою версию с официальными обновлениями, но при этом сохраняю свой локальный svn.Как мне его настроить?
Или было бы проще иметь SVN (для официальной Subversion) + какую-то другую систему, например Git?
p / s / Я работаю только над кодом самв Eclipse с подключаемым модулем Subclipse.
UPDATE1:
при просмотре книги SVN, вот как я, вероятно, должен сделать ветвь в моем случае:
Первоначальный импорт:
svn import /path/to/3rd-party-code \
file:///usr/.../vendor/name/current \
-m "importing initial 1.0 vendor drop"
Пометить это:
svn copy file:///usr/.../vendor/name/current \
file:///usr/.../vendor/name/1.0 \
-m "tagging name-1.0"
Вывести в транк:
svn copy file:///usr/.../vendor/name/1.0 \
file:///usr/.../trunk/ \
-m "bringing name-1.0 into the trunk"
А затем извлечь из транка и начать модификацию.Итак, как все меняется с «внешними»?
Обновление 2:
Это то, как все должно быть с нуля:
svnadmin create /usr/.../svnrepo
svn import svn://path/to/3rd-party-code \
file:///usr/.../svnrepo/name/branch/official \
-m "importing initial XXXX rev. vendor drop"
svn copy file:///usr/.../svnrepo/name/branch/official \
file:///usr/.../svnrepo/name/trunk \
-m "bringing rev XXXX into the trunk"
svn propedit svn:externals svn://path/to/3rd-party-code name/branch/official
Слияние:
svn merge -r XXXX:HEAD name/branch/official
svn ci -m "Merged YYYY official revision to trunk"
ОБНОВЛЕНИЕ 3:
svnadmin create /usr/.../svnrepo
svn mkdir -m "Create folders" \
file:///usr/../svnrepo/name/branches \
file:///usr/../svnrepo/name/branches/official \
file:///usr/../svnrepo/name/trunk
Внешние:
svn propedit svn:externals file:///usr/.../svnrepo/name/branches/official
(ввод "svn: // путь / к / сторонний код")
svn copy file:///usr/.../svnrepo/name/branches/official \
file:///usr/.../svnrepo/name/trunk \
-m "bringing rev XXXX into the trunk"
Теперь проблема в том, что когда я "соединяю" транк, я получаю следующую структуру:
official/svn:externals/folder1/file1
Что-то, чего я точно не хочу:)
Слияние:
svn merge name/branches/official
svn ci -m "Merged YYYY official revision to trunk"