Que versão do X introduziu o recurso Y?

8

Uma grande parte do meu trabalho diário é desenvolver software para uso em máquinas com versões diferentes do mesmo software, como bash , find e grep . Ao encontrar um recurso que seria útil, por exemplo, para simplificar o código, é importante saber se esse recurso está disponível nas ferramentas instaladas mais antigas. Para coisas críticas, também seria útil saber se esse recurso era novo ou existia há anos nas ferramentas instaladas mais antigas.

Quais são as maneiras rápidas de responder com autoridade para as ferramentas do Linux, especialmente o GNU Core Utils? Algumas possibilidades em ordem decrescente de precisão:

  • Busca binária binária (sic) executando as diferentes versões é, naturalmente, a resposta final, mas é de longe a mais demorada. Instalações mais antigas geralmente não estão disponíveis por motivos de segurança.
  • Ler o código é quase tão bom, mas pode ser demorada se o recurso for vagamente nomeado, o nome não corresponder diretamente a nomes de variáveis / funções / objetos ou se tiver sido implementado antes dele foi ativado.
  • Alterar registros , quando disponíveis, geralmente conectam alterações de recursos a versões de software.
  • Registros de confirmação podem fornecer dicas, mas não sabem em qual versão eles serão incluídos.
  • man pages raramente mencionam datas.
  • O mesmo se aplica ao Google , e você também teria dificuldade em excluir todas as fontes não autorizadas.
por l0b0 23.03.2011 / 09:49

4 respostas

7

Geralmente, há um changelog. Na verdade, isso (ou outros "avisos proeminentes" de mudanças) é exigido pela GPL! (Pelo menos, efetivamente para qualquer coisa com múltiplos contribuidores - veja a seção 2a da GPLv2.)

Para o pacote GNU coreutils - e para praticamente todo o resto do projeto GNU diretamente - este arquivo é definitivamente o primeiro lugar para procurar, e deve responder sua pergunta 95% do tempo.

    
por 23.03.2011 / 10:21
4

Por que não usar o controle de origem aferente para X para procurar o recurso Y? O repositório de origem é a melhor maneira de identificar quando um determinado recurso foi introduzido.

Para o coreutils, você pode acessar o link e pesquisar palavras-chave relacionadas ao Y nas mensagens de log ou em particular linhas de código que você identificou como pertencentes a Y. Você pode fazer isso diretamente na interface da web ou, melhor ainda, clonar o repositório de origem em sua estação e pesquisar usando git-bisect , git-blame e git-log - -grep .

Em seguida, use o git-describe para descobrir qual é a tag mais próximo de um compromisso específico. As tags são usadas principalmente para números de versão, portanto, ele fornecerá a versão que introduziu o commit.

Você pode adaptar o método acima, dependendo do X e do controle de origem.

    
por 23.03.2011 / 10:06
0

Em Debian e plataformas derivadas do Debian, como Ubuntu :

sudo apt-get changelog coreutils > changelog.txt 

fornece o changelog do GNU Core Utilities todo o caminho de volta para a versão 4.5.1-1 .

Não tenho certeza se existem soluções convenientes em outras plataformas.

    
por 10.07.2014 / 00:19
0

Verifique as NOTÍCIAS do coreutils arquivo de seu git repo .

    
por 31.08.2017 / 15:51

Tags