2010-01-21 2 views
0

Мой проект, над которым я работаю, управляется версией под SVN. Мне пришлось сделать большое количество рефакторингов. Для этого я взял свое рабочее пространство и создал новый репозиторий git. Впоследствии я делал рефакторинг и совершено в моем местном хранилище git как можно чаще, делал филиалы и т. Д.Слияние существующей ветви git с ранее неизвестным SVN

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

Есть ли возможность добавить ссылку SVN и/или создать этого предка?

+0

Вы пытались выполнить «git svn rebase», прежде чем нажимать на свои изменения? –

ответ

0

В этом случае это грязный хак, но если вы разбили все коммиты вниз, используя rebase, вы могли бы, вероятно, просто cherry-pick консолидированное изменение.

ОБНОВЛЕНИЕ: Кроме того, вы можете попробовать использовать rebase, чтобы переместить корень ветки, на которой вы делали рефакторинг, так, чтобы он отделялся от ветки, которая отслеживает репозиторий git-svn.

ОБНОВЛЕНИЕ 2: Как говорит ndim, нужный вариант rebase, вероятно, --onto.

+0

Вероятно, 'git rebase ... --onto ...' переместит корень. – ndim