Почему делает мерзавца-svn dcommit, оставляют дублирующиеся фиксации в моем мерзавце repo? Я могу остановить его делающий это?

Анализируя ответ Махди, я пришел к выводу, что большую часть времени проводил, занимаясь np.roll(). Убрав необходимость в броске и все еще используя numpy, я сократил время выполнения до 4-5 мксек на цикл по сравнению с 41 мкс Махди (для сравнения, функция Махди в среднем занимала 37 мкс на моей машине).

def polygon_area(x,y):
    correction = x[-1] * y[0] - y[-1]* x[0]
    main_area = np.dot(x[:-1], y[1:]) - np.dot(y[:-1], x[1:])
    return 0.5*np.abs(main_area + correction)

При вычислении корректирующего члена, а затем нарезке массивов, нет необходимости свернуть или создать новый массив.

Тесты:

10000 iterations
PolyArea(x,y): 37.075µs per loop
polygon_area(x,y): 4.665µs per loop

Время было сделано с использованием модуля time и time.clock()

7
задан Alex Scordellis 1 June 2009 в 16:40
поделиться

1 ответ

Я не думаю, что вы действительно что-то упускаете. Однако вы можете делать ненужную работу. В этом случае у вас есть два указателя на фиксацию «больше работы», и вы просите git-svn переместить один из них. Другой все еще остается на своем месте.

На самом деле вам не нужна ветвь master . Git-svn не заботится о том, какую ветку вы фиксируете. IIRC, он использует первый svn-remote, который может найти среди предков текущего коммита.

Я предлагаю другую версию рабочего процесса:

git checkout -b story-xyz remotes/trunk
git commit -a -m "work"
git commit -a -m "more work"
git svn fetch
git rebase remotes/trunk (with -i, perhaps)
git svn dcommit

Это должно дать вам дерево без дополнительной ветви. Тем не менее, вы должны быть осторожны с слияниями с перемоткой вперед.

4
ответ дан 7 December 2019 в 14:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: