В настоящее время я работаю над проектом, в котором SVN используется как репозиторий. Локально я делаю несколько "экспериментов" с кодом, который я не хочу связывать с репо. Поэтому я использую git локально поверх рабочего каталога SVN и использую несколько ветвей для разных "экспериментов". Таким образом, это выглядит, например. как это.
C0 ---- C7 (master)
\
\---- C1 ---- C2 ---- C4 (exp1)
\ \ \
\ \ \---- C3 (exp2)
\ \
\ \---- C5 (exp3)
\
\---- C6 (exp4)
На ветке master
Я хочу иметь незанятое репо SVN, т.е. C0 является SVN Repo Revision x и C7 является SVN Repo Revision x + n.
Как-то легко можно перегрузить все ветки exp
на C7 сразу таким образом, чтобы дерево выглядело следующим образом:
C0 ---- C7 (master)
\
\---- C1' ---- C2' ---- C4' (exp1)
\ \ \
\ \ \---- C3' (exp2)
\ \
\ \---- C5' (exp3)
\
\---- C6' (exp4)
Я хочу использовать rebase, так как я не хочу изменять состояние моего локального SVN Checkout и хочу, чтобы мои изменения были построены поверх версий SVN.
Мне также интересны решения, которые работают из SourceTree без использования оболочки.