Как сделать git svn fetch + rebase за одну операцию? - PullRequest
8 голосов
/ 21 марта 2012

Я только что обнаружил, что, хотя в разделе rebase в git help svn написано

извлекает ревизий из родительского SVN текущего HEAD и перебазирует текущую (незафиксированную в SVN) работу против нее.

(мой акцент) это не значит, что rebase включает a git svn fetch. Если не упоминать, есть ли способ запустить команду single git svn, чтобы выполнить оба действия: 1017 *?

Причина, по которой я хочу это сделать, заключается в том, что я только пишу на одну ветку , поэтому я хочу rebase эту и я часто читаю другие ветви , поэтому я хочу до fetch тех.

Ответы [ 3 ]

20 голосов
/ 22 марта 2012

Я думаю, вы путаете git rebase и git svn rebase. Первые перемещения фиксируют текущую HEAD до определенной вами ревизии, тогда как вторая перемещает вашу текущую HEAD в конец ветви Subversion, в которой вы находитесь.

git svn rebase включает , включая git svn fetch --parent, то есть он будет получать любые новые коммиты Subversion в текущей ветке, но не любые коммиты Subversion из любой другой ветки (в отличие от обычной git svn fetch, который извлекается из всех веток).

Я подозреваю, что вы не хотите делать полный git svn fetch, когда вы делаете git svn rebase, так как это будет означать, что пройдет гораздо больше времени, прежде чем вы получите рабочую рабочую копию. Если вам нужны обычные git svn fetch es, я бы посоветовал настроить работу cron, которая будет выполнять выборку в фоновом режиме.

8 голосов
/ 22 марта 2012

Я также немного удивлен, узнав, что это на самом деле так.Но, чтобы ответить на ваш вопрос, вам просто нужно определить псевдоним:

git config --global alias.refetch '!git svn fetch && git svn rebase'

Тогда git refetch должен делать то, что вы хотите.

0 голосов
/ 21 марта 2012
git pull --rebase

Вы также можете настроить его, чтобы он по умолчанию перезагружался.Тогда вы можете:

git pull

ОБНОВЛЕНИЕ:

упс.Нужно больше кофе ...

Все, что я могу придумать, это написать то, что тебе нужно ..

...