Без Regex
:
Public Function maxNums(str As String) As Double
Dim i As Long, L As Long, s As String, wf As WorksheetFunction, brr()
Set wf = Application.WorksheetFunction
L = Len(str)
For i = 1 To L
s = Mid(str, i, 1)
If s Like "[0-9]" Or s = "." Then
Else
Mid(str, i, 1) = " "
End If
Next i
str = wf.Trim(str)
arr = Split(str, " ")
ReDim brr(LBound(arr) To UBound(arr))
For i = LBound(arr) To UBound(arr)
brr(i) = CDbl(arr(i))
Next i
maxNums = wf.Max(brr)
End Function
Несколько примечаний по тому, как мерзавец работает (не технический):
Когда Вы повторно базируетесь, мерзавец берет рассматриваемые фиксации, и "возвращает" их сверху чистой истории. Это должно препятствовать тому, чтобы история показала:
Description: tree -> mywork -> merge -> mywork -> merge -> mywork -> merge
Commit SHA1: aaaa -> bbbb -> cccc -> dddd -> eeee -> ffff -> gggg
После переосновы это может быть похожим на это (или подобный):
Description: tree -> rebase
Commit SHA1: aaaa -> hhhh
Проблема - то, что новая фиксация, которую Вы пытаетесь продвинуть там, НЕ является потомком фиксации на подсказке ответвления, к которому Вы продвигаете.
Теперь, Вы знаете, что та же информация находится в фиксациях, но мерзавец ответственен путем не просто перезаписи тех фиксаций там (bbbb-gggg в примере выше).
Совместно использованная модель Repo
Если Вы используете общий репозиторий, то вещи как это могут стать могущественными сбивающий с толку. Позвольте мне объяснить почему. Скажите, что другой разработчик раскрыл ответвление, и у них есть фиксации aaaa-> gggg в их ответвлении. Затем они делают фиксацию iiii
В это время Вы повторно основывали и вызвали нажатие, заставив дерево быть похожими на это:
Description: tree -> rebase
Commit SHA1: aaaa -> hhhh
Когда другой разработчик пытается продвинуть, он получает сообщение "неускоренной перемотки вперед". Когда он делает слияние, затем обе истории являются RELINKED вместе, и Вы заканчиваете с путаницей
Что-то вроде этого (грязное):
Description: tree -> rebase -> mywork -> merge -> mywork -> merge -> mywork -> merge -> devwork -> merge
Commit SHA1: aaaa -> hhhh -> bbbb -> cccc -> dddd -> eeee -> ffff -> gggg -> iiii -> jjjj
Другими словами, если другие вытягивают И продвигают, лучше, что Вы придерживаетесь слияния мерзавца, или СТАРАЕТЕСЬ НЕ ПРОДВИГАТЬ до окончания переосновы (и только повторно основываете свою работу).
Публично Видимая модель репозитория
Возможно, Вы используете другое (больше gittish) модель, где Вы просто хотите, чтобы люди смогли вытянуть от Вашего repo. В этом случае нажатие мерзавца - сила не слишком плоха, потому что затем они могут иметь дело с не отставанием от него. Они могут повторно основывать свои изменения, чтобы быть сверх Ваших изменений прежде, чем дать их патчи Вам. Это препятствует Вашему repo то, чтобы быть всем испорченным.
Однако может быть лучший путь к Вам. нажатие мерзавца - зеркало
Из http://www.kernel.org/pub/software/scm/git/docs/git-push.html
Вместо того, чтобы назвать каждого касательно продвинуть, указывает, что все судьи под $GIT_DIR/refs/(который включает, но не ограничен судьями/головами/, судьи/пульты ДУ / и судьи/теги/) быть зеркально отраженным в удаленный репозиторий. Недавно созданные локальные судьи будут продвинуты к удаленному концу, локально обновленные судьи будут силой, обновленной на удаленном конце, и удаленные судьи будут удалены из удаленного конца. Это - значение по умолчанию если удаленный параметр конфигурации.. зеркало установлено.
Одна из больших вещей о мерзавце - то, что это очень гибко и допускает многих другой вид рабочих процессов. Но это - реальная сила, заключается в том, что это - распределенная модель, таким образом, я полагаю, что большую часть ROI можно пожинать при помощи его тот путь.