Que tal procurar mensagens de confirmação em todos os garfos? Tentando evitar reinventar a roda quando o repositório principal tiver mais de 100 garfos!
Daniel Sokolowski
Alguma mudança desde então?
Pavel Šimerda
Quero pesquisar na rede commits
frumbert
Respostas:
68
A partir de 2017, é uma funcionalidade incluída no próprio GitHub .
O exemplo de pesquisa usada por eles é repo:torvalds/linux merge:false crypto policy
por que diabos eles removeram? Esse é um recurso realmente útil.
Josh Brown
1
Fator místico: I.quantos espaços.estes.a cadeia geralmente é suficiente.
Dbrower 13/02/15
11
Dica omita o -gsinalizador para os casos de uso mais comuns. Eu não procurei muito nisso, mas com -ga pesquisa parece voltar apenas um mês. git log -g --grep=fixenquanto no developramo de um repo que tem ~ 8000 commits abrangendo dois anos, só vai já em fevereiro 2.
Dan Dascalescu
1
@ DanDascalescu Strange, eu consegui encontrar confirmações voltando pelo menos 5 meses com a -gbandeira.
26615 Chrispy
134
Atualização (05/01/2017):
O GitHub publicou uma atualização que agora permite pesquisar nas mensagens de confirmação de sua interface do usuário. Consulte a publicação no blog para obter mais informações.
Eu tive a mesma pergunta e entrei em contato com alguém GitHub ontem:
Como eles mudaram o mecanismo de pesquisa para o Elasticsearch, não é possível procurar mensagens de confirmação usando a interface do usuário do GitHub. Mas esse recurso está na lista de desejos da equipe.
Infelizmente, não há data de lançamento para essa função no momento.
Você me economizou um tempo infrutífero no GitHub, imaginando como alcançar o que eu supunha que seria uma peça óbvia de funcionalidade. Portanto, agora temos que clonar o repositório localmente para grep através da linha de comando. Caramba, isso é progresso né ?! ;)
McNab
68
Até a pesquisa avançada na interface da Web da Web não permite pesquisar no campo mais importante - a mensagem de confirmação real. Isso é absolutamente ridículo. Github ajude!
Brad Thomas
22
Sim. Esqueça o fato de que eles criaram um serviço da Web que ajuda a revolucionar e popularizar o software de código aberto, o fato de eles não terem esse único recurso o torna uma farsa completa!
Jon Cairns
12
Obrigado por publicar o conteúdo do seu discurso com o GitHub em um local público facilmente encontrado. É absurdo que essa seja a única maneira de o público obter essas informações - é profundamente estúpido o GitHub não ter um rastreador de problemas públicos - mas na presença de tanta estupidez, o que você fez aqui é uma maneira útil de impedir centenas de outros perdem tempo enviando a mesma solicitação. Obrigado pelas centenas de horas de trabalho que você economizou.
Mark Amery
1
Bem, não muito melhor do rastreador pública de Atlasian, que está cheio de velhas questões em aberto 7 anos com 1000, de upvotes ...
Askdesigners
58
A resposta curta é que você não pode pesquisar mensagens de confirmação diretamente no site github.com. Por enquanto, recomendamos a git grepsolução local que outras pessoas deste segmento propuseram.
Em um determinado momento, o GitHub ofereceu uma git greppesquisa de estilo sobre as mensagens de confirmação para um único repositório. Infelizmente, essa abordagem expôs uma negação de serviço que poderia tornar um servidor de arquivos inacessível. Por esse motivo, removemos a git greppesquisa.
As estimativas atuais do verso do envelope colocam o número de confirmações no GitHub em torno da marca de 80 bilhões. Embora os engenheiros do Google riem pelas nossas costas, esse é um número bastante grande de documentos para armazenar no ElasticSearch. Adoraríamos tornar esse conjunto de dados pesquisável, mas não é um projeto trivial.
+1. Isso parece confirmar o que eu pensei que escrever a minha resposta : cometer mensagem não são indexados: você está trabalhando com a indexação git diff's(ou seja, o conteúdo dos commits, não os metadados commit)
VonC
Que tal apenas "pular para confirmar" botão? Atualmente, é acessível a partir da URL - stackoverflow.com/a/12214817/817632, mas não há interface para ela (não que eu saiba). Caso de uso - encontre um hash de confirmação em algum lugar no bower.json, em vez da versão, e queira ver exatamente o que esse commit faz. Isso economizará algum tempo pesquisando no Google.
Isso funcionou para mim, mas a resposta mais votada não.
makdad
21
Na página de ajuda para pesquisar código , parece que isso ainda não é possível.
Você pode procurar texto no seu repositório, incluindo a capacidade de escolher arquivos ou caminhos para pesquisar, mas não pode especificar que deseja pesquisar em confirmações.
Esse parece ser o caso de uso mais "padrão" quando se trata de pesquisar em um repositório. Especialmente para alguém que conhece um novo repositório com toneladas de confirmações. Eles definitivamente deveriam considerar adicionar isso.
Jose Browne
19
Você pode fazer isso com repositórios que foram rastreados pelo Google (os resultados variam de repositório para repositório).
Pesquise todas as ramificações de todos os repositórios rastreados para "alterar licença"
@DZenBot se não for um repositório público, é provável que você já tenha uma cópia local para o git grep, basta colocar esta resposta para aqueles que não querem clonar um repositório público inteiro para descobrir quando alguma alteração foi feita. Eu usá-lo principalmente para encontrar commits que o apoio de remoção para versões mais antigas do GTK ou quando as licenças mudar para GPL3
Agora você pode procurar por mensagens de confirmação ! (ainda apenas no ramo mestre)
Fevereiro de 2015: Não tenho certeza se isso seria possível, considerando a atual base de infraestrutura de pesquisa no Elasticsearch (introduzida em janeiro de 2013 ).
Tim Pease : Temos dois tipos de documentos: um é um arquivo de código-fonte e o outro é um repositório. A maneira como o git funciona é que você tem confirmações e possui uma ramificação para cada confirmação. Os documentos de repositório acompanham a confirmação mais recente para esse repositório específico que foi indexado. Quando um usuário envia uma nova confirmação para o Github, nós retiramos o documento do repositório do elasticsearch. Em seguida, vemos o commit indexado mais recentemente e, em seguida, obtemos uma lista de todos os arquivos que foram modificados, adicionados ou excluídos entre esse push recente e o que indexamos anteriormente. Então podemos ir em frente e apenas atualizar os documentos que foram alterados. Não precisamos indexar novamente toda a árvore do código-fonte toda vez que alguém pressiona.
Andrew Cholakian: Então, vocês apenas indexam, suponho , o ramo principal.
Tim Pease: Correto. É apenas o chefe do ramo principal que você entrará lá e ainda há muitos dados, dois bilhões de documentos, 30 terabytes.
Andrew Cholakian: Isso é incrivelmente grande.
[...]
Tim Pease: Com a indexação do código fonte no push, é um processo de autocorreção.
Temos esse documento de repositório que controla o último commit indexado. Se perdemos, perdemos apenas três confirmações onde esses trabalhos falham, a próxima confirmação que chega, ainda estamos analisando a diferença entre a confirmação anterior que indexamos e a que estamos vendo com esse novo envio.
Você faz um git diffe obtém todos os arquivos que foram atualizados, excluídos ou adicionados. Você pode apenas dizer: “Ok, precisamos remover esses arquivos. Precisamos adicionar esses arquivos e tudo mais. ” É auto-reparável e é essa a abordagem que adotamos em praticamente toda a arquitetura.
Isso significa que nem todos os ramos de todo o repo seriam indexados com essa abordagem.
Uma pesquisa de mensagens de confirmação global não está disponível no momento.
E o próprio Tim Pease confirma que as mensagens de confirmação não estão indexadas .
Se você possui uma versão local do repositório, tente este script bruto que escrevi para abrir as páginas do GitHub para todos os commits correspondentes ao seu termo de pesquisa em novas guias no navegador padrão:
#!/bin/sh
for sha1 in $(git rev-list HEAD -i --grep="$1"); do
python -mwebbrowser https://github.com/RepoOwnerUserName/RepoName/commit/$sha1 >/dev/null 2>/dev/null
done
Apenas substitua https://github.com/RepoOwnerUserName/RepoName/pela URL GitHub atual do seu repositório, salve o script em algum lugar (por exemplo githubsearch.sh, torne-o executável ( chmod +x githubsearch.sh) e adicione o seguinte alias ao seu ~/.bashrcarquivo:
alias githubsearch='/path/to/githubsearch.sh'
Então, de qualquer lugar no seu repositório Git, faça isso no terminal:
githubsearch "what you want to search for"
e quaisquer confirmações que correspondam ao seu termo de pesquisa (sem distinção entre maiúsculas e minúsculas) terão as páginas correspondentes do GitHub abertas no navegador. (Esteja ciente de que, se o seu termo de pesquisa aparecer em centenas de confirmações, isso poderá travar o navegador e consumir a CPU do seu PC por um tempo.)
Respostas:
A partir de 2017, é uma funcionalidade incluída no próprio GitHub .
O exemplo de pesquisa usada por eles é
repo:torvalds/linux merge:false crypto policy
fonte
Você costumava fazer isso, mas o GitHub removeu esse recurso em algum momento de meados de 2013. Para conseguir isso localmente, você pode:
(Use a
-g
bandeira se desejar pesquisar outras ramificações e confirmações pendentes.)fonte
-g
sinalizador para os casos de uso mais comuns. Eu não procurei muito nisso, mas com-g
a pesquisa parece voltar apenas um mês.git log -g --grep=fix
enquanto nodevelop
ramo de um repo que tem ~ 8000 commits abrangendo dois anos, só vai já em fevereiro 2.-g
bandeira.Atualização (05/01/2017):
O GitHub publicou uma atualização que agora permite pesquisar nas mensagens de confirmação de sua interface do usuário. Consulte a publicação no blog para obter mais informações.
Eu tive a mesma pergunta e entrei em contato com alguém GitHub ontem:
Como eles mudaram o mecanismo de pesquisa para o Elasticsearch, não é possível procurar mensagens de confirmação usando a interface do usuário do GitHub. Mas esse recurso está na lista de desejos da equipe.
Infelizmente, não há data de lançamento para essa função no momento.
fonte
A resposta curta é que você não pode pesquisar mensagens de confirmação diretamente no site github.com. Por enquanto, recomendamos a
git grep
solução local que outras pessoas deste segmento propuseram.Em um determinado momento, o GitHub ofereceu uma
git grep
pesquisa de estilo sobre as mensagens de confirmação para um único repositório. Infelizmente, essa abordagem expôs uma negação de serviço que poderia tornar um servidor de arquivos inacessível. Por esse motivo, removemos agit grep
pesquisa.As estimativas atuais do verso do envelope colocam o número de confirmações no GitHub em torno da marca de 80 bilhões. Embora os engenheiros do Google riem pelas nossas costas, esse é um número bastante grande de documentos para armazenar no ElasticSearch. Adoraríamos tornar esse conjunto de dados pesquisável, mas não é um projeto trivial.
fonte
git diff's
(ou seja, o conteúdo dos commits, não os metadados commit)Isso foi removido do GitHub. Eu uso:
Você também pode filtrar por autor:
fonte
Na página de ajuda para pesquisar código , parece que isso ainda não é possível.
Você pode procurar texto no seu repositório, incluindo a capacidade de escolher arquivos ou caminhos para pesquisar, mas não pode especificar que deseja pesquisar em confirmações.
Talvez sugira isso para eles ?
fonte
Você pode fazer isso com repositórios que foram rastreados pelo Google (os resultados variam de repositório para repositório).
Pesquise todas as ramificações de todos os repositórios rastreados para "alterar licença"
Pesquise a ramificação principal de todos os repositórios rastreados para "alterar licença":
Pesquise na ramificação principal de todos os repositórios rastreados do twitter por "alterar licença"
Pesquise em todos os ramos do repositório twitter / some_project por "alterar licença"
fonte
Atualize janeiro de 2017 (dois anos depois):
Agora você pode procurar por mensagens de confirmação ! (ainda apenas no ramo mestre)
Fevereiro de 2015: Não tenho certeza se isso seria possível, considerando a atual base de infraestrutura de pesquisa no Elasticsearch (introduzida em janeiro de 2013 ).
Como resposta, "tirando fontes confiáveis e / ou oficiais", aqui está uma entrevista feita com o pessoal do GitHub encarregado de apresentar o Elasticsearch no GitHub (agosto de 2013)
Isso significa que nem todos os ramos de todo o repo seriam indexados com essa abordagem.
Uma pesquisa de mensagens de confirmação global não está disponível no momento.
E o próprio Tim Pease confirma que as mensagens de confirmação não estão indexadas .
Observe que não é impossível obter a indexação local de um clone local da pesquisa elástica: consulte " Pesquisando um repositório git com ElasticSearch "
Mas para um repo específico, o mais fácil é cloná-lo e fazer um:
(Mais opções em " Como pesquisar em um repositório Git por mensagem de confirmação? ")
fonte
Como isso foi removido do GitHub, eu tenho usado
gitk
no Linux para fazer isso.Do terminal, vá para o seu repositório e digite
gitk
.No meio da GUI, há uma caixa de pesquisa. Ele fornece uma boa seleção de filtros:
Escopo - contendo, tocando caminhos, adicionando / removendo string, alterando correspondência de linha
Tipo de correspondência - Exato / IgnCase / Regexp
Campos de pesquisa - Todos os campos / Título / Comentários / Confirmador
fonte
Isso funciona bem no Eclipse , até o GitHub adicionar o recurso:
Guia do usuário / EGit, Procurando confirmações
fonte
Se você possui uma versão local do repositório, tente este script bruto que escrevi para abrir as páginas do GitHub para todos os commits correspondentes ao seu termo de pesquisa em novas guias no navegador padrão:
Apenas substitua
https://github.com/RepoOwnerUserName/RepoName/
pela URL GitHub atual do seu repositório, salve o script em algum lugar (por exemplogithubsearch.sh
, torne-o executável (chmod +x githubsearch.sh
) e adicione o seguinte alias ao seu~/.bashrc
arquivo:Então, de qualquer lugar no seu repositório Git, faça isso no terminal:
e quaisquer confirmações que correspondam ao seu termo de pesquisa (sem distinção entre maiúsculas e minúsculas) terão as páginas correspondentes do GitHub abertas no navegador. (Esteja ciente de que, se o seu termo de pesquisa aparecer em centenas de confirmações, isso poderá travar o navegador e consumir a CPU do seu PC por um tempo.)
fonte
A partir de meados de 2019, digite o que você deseja pesquisar na caixa de pesquisa superior esquerda e clique em "Confirmações".
fonte