Как перерыть всего Мерзавца и Подвижные фиксации в репозитории для определенной строки?

Что-то вроде:

library(drc)

Разделить фрейм данных на список фреймов данных, по одному на страну:

split_df <- split(final.df, final.df$county)

Функция для подгонки модели для набора данных вернуть коэффициенты:

fitfun <- function(d) {
    mL <- drm(percent_farm_tractor ~ year, data = d, fct = L.3(), type = "continuous")
    return(coef(mL))
}

Применить функцию к каждому фрагменту данных:

lapply(split_df, fitfun)
287
задан Kenny Evitt 24 January 2018 в 04:38
поделиться

7 ответов

Вы можете увидеть свисающие коммиты с git log -g .

-g, --walk-reflogs
 Instead of walking the commit ancestry chain, walk reflog entries from
 the most recent one to older ones. 

Так что вы можете сделать это чтобы найти конкретную строку в сообщении коммита, которая свисает:

git log -g --grep=search_for_this

В качестве альтернативы, если вы хотите найти изменения для определенной строки, вы можете использовать опцию поиска кирки "-S":

git log -g -Ssearch_for_this
# this also works but may be slower, it only shows text-added results
git grep search_for_this $(git log -g --pretty=format:%h)

Git 1.7. 4 добавит опцию -G , что позволит вам передать -G , чтобы найти, когда была перемещена строка, содержащая , что -S не может сделать. -S сообщит вам только об изменении общего числа строк, содержащих строку (т.е. добавление / удаление строки).

Наконец, вы можете использовать gitk для визуализации висячих коммитов с помощью:

gitk --all $(git log -g --pretty=format:%h)

А затем использовать его функции поиска искать неуместный файл. Вся эта работа при условии, что недостающий коммит не "истек"

330
ответ дан richq 23 November 2019 в 01:48
поделиться

Any command that takes references as arguments will accept the --all option documented in the man page for git rev-list as follows:

   --all
       Pretend as if all the refs in $GIT_DIR/refs/ are listed on the
       command line as <commit>.

So for instance git log -Sstring --all will display all commits that mention string and that are accessible from a branch or from a tag (I'm assuming that your dangling commits are at least named with a tag).

5
ответ дан adl 23 November 2019 в 01:48
поделиться

Не знаю насчет git, но в Mercurial я бы просто передавал вывод hg log некоторому sed / Perl / любой скрипт для поиска того, что вы ищете. Вы можете настроить вывод hg log, используя шаблон или стиль, чтобы облегчить поиск, если хотите.

Это будет включать все именованные ветви в репо. У Mercurial нет чего-то похожего на свисающие шарики afaik.

2
ответ дан Kurt Schelfthout 23 November 2019 в 01:48
поделиться

В дополнение к richq ответу об использовании git log -g --grep = или git grep -e $ (git log -g --pretty = format:% h) : посмотрите на следующие сообщения в блоге Junio ​​C Hamano, текущий git keeper


Резюме

Оба git grep и git log --grep ориентированы на линии , в том смысле, что они ищут линии, которые соответствуют указанному шаблону.

Вы можете использовать git log --grep = --grep = (или git log --author = --grep = , который внутренне переводит на два - grep ), чтобы найти коммиты, которые соответствуют или шаблонам (неявный ИЛИ семантический).

ориентированный на строку, полезная семантика И заключается в использовании git log --all-match --grep = --grep = для поиска commit с и строкой, совпадающей с первой, и строкой, совпадающей со второй.

С помощью git grep вы можете комбинировать несколько шаблонов (все, которые должны использовать -e < regexp> form) с - или (по умолчанию), - и , - не , ( и ) . Для grep - all-match означает, что файл должен содержать строки, соответствующие каждой из альтернатив.

Из-за ориентации на строки полезная семантика И заключается в использовании git log --all-match --grep = --grep = чтобы найти коммит , у которого есть и строка, совпадающая с первой, и строка, совпадающая со второй.

С помощью git grep вы можете комбинировать несколько паттернов (все, которые должны использовать -e форма) с - или (по умолчанию), - и , - не , ( и ) . Для grep - all-match означает, что файл должен содержать строки, соответствующие каждой из альтернатив.

Из-за ориентации на строки полезная семантика И заключается в использовании git log --all-match --grep = --grep = чтобы найти коммит , у которого есть и строка, совпадающая с первой, и строка, совпадающая со второй.

С помощью git grep вы можете комбинировать несколько паттернов (все, которые должны использовать -e форма) с - или (по умолчанию), - и , - не , ( и ) . Для grep - all-match означает, что файл должен содержать строки, соответствующие каждой из альтернатив.

чтобы найти коммит , который имеет и строку, совпадающую с первой, и строку, совпадающую со второй.

С помощью git grep вы можете комбинировать несколько паттернов (все которые необходимо использовать форму -e ) с - или (по умолчанию), - и , - не , ( и ) . Для grep - all-match означает, что файл должен содержать строки, соответствующие каждой из альтернатив.

чтобы найти коммит , который имеет и строку, совпадающую с первой, и строку, совпадающую со второй.

С помощью git grep вы можете комбинировать несколько паттернов (все которые необходимо использовать форму -e ) с - или (по умолчанию), - и , - не , ( и ) . Для grep - all-match означает, что файл должен содержать строки, соответствующие каждой из альтернатив.

24
ответ дан 23 November 2019 в 01:48
поделиться

С Mercurial вы делаете

$ hg grep "search for this" [file...]

Существуют и другие опции, которые сужают диапазон проверяемых ревизий.

5
ответ дан 23 November 2019 в 01:48
поделиться

В Mercurial вы используете hg log --keyword для поиска ключевых слов в сообщениях фиксации и hg log --user для поиска конкретного пользователя. См. hg help log , чтобы узнать о других способах ограничения журнала.

54
ответ дан 23 November 2019 в 01:48
поделиться

Основываясь на ответе rq, я обнаружил, что эта строка выполняет то, что я хочу:

git grep "search for something" $(git log -g --pretty=format:%h -S"search for something")

Которая сообщит идентификатор фиксации, имя файла и отобразит соответствующую строку, например:

91ba969:testFile:this is a test

.. Кто-нибудь согласен с тем, что это было бы хорошим вариантом для включения в стандартную команду git grep?

11
ответ дан 23 November 2019 в 01:48
поделиться
Другие вопросы по тегам:

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