Y 기능을 도입한 X 버전은 무엇입니까?

Y 기능을 도입한 X 버전은 무엇입니까?

bash내 하루 업무 find의 대부분 grep은 . 유용한 기능(예: 코드 단순화)을 발견하면 가장 오래된 설치 도구에서 해당 기능을 사용할 수 있는지 아는 것이 중요합니다. 중요한 사항의 경우, 이 기능이 새로운 기능인지 아니면 수년 동안 가장 오래된 설치 도구에 존재했는지 아는 것도 유용합니다.

이 질문에 빠르게 답할 수 있는 방법이 있나요?권위있게Linux 도구, 특히 GNU Core Utils는 어떻습니까? 몇 가지 가능성(정확도가 낮아지는 순서대로):

  • 이진 검색(원문) 다른 버전을 실행하는 것이 물론 궁극적인 답이지만, 가장 시간이 많이 소요되는 방법이기도 합니다. 보안상의 이유로 일반적으로 이전 설치를 사용할 수 없습니다.
  • 코드 읽기거의 비슷하지만 기능 이름이 모호하거나 이름이 변수/함수/객체 이름과 직접적으로 일치하지 않거나 활성화되기 전에 구현된 경우 시간이 많이 걸릴 수 있습니다.
  • 변경 로그, 가능한 경우 일반적으로 기능 변경 사항을 소프트웨어 버전과 연결합니다.
  • 커밋 로그힌트를 제공할 수는 있지만 어떤 버전에 포함될지는 모르겠습니다.
  • 매뉴얼 페이지날짜는 거의 언급되지 않습니다.
  • 동일하게 적용됩니다구글 검색, 신뢰할 수 없는 출처를 모두 제외하는 것도 어렵습니다.

답변1

일반적으로 변경 로그가 있습니다. 사실, 이것은(또는 다른 변경 사항에 대한 "눈에 띄는 통지") 것이 GPL에 의해 요구됩니다! (적어도 이는 여러 기여자가 있는 모든 경우에 해당됩니다. GPLv2 섹션 2a를 참조하세요.)

GNU coreutils 패키지와 GNU 프로젝트에서 직접 제공되는 거의 모든 항목의 경우 이 파일이 가장 먼저 살펴봐야 하며 질문에 95%의 답변을 제공합니다.

답변2

기능 Y를 검색하기 위해 X에 전달된 소스 제어를 사용하는 것은 어떨까요? 소스 저장소는 특정 기능이 도입되는 시기를 식별하는 가장 좋은 방법입니다.

coreutils의 경우 다음으로 이동할 수 있습니다.http://git.savannah.gnu.org/cgit/coreutils.git그리고 로그 메시지에서 Y와 관련된 키워드 또는 Y에 속하는 것으로 식별되는 특정 코드 줄을 검색하세요. 웹 인터페이스에서 직접 이 작업을 수행할 수 있으며 더 나은 방법은 소스 저장소를 사이트에 복제하고 다음을 사용하는 것입니다.자식 이등분,자식 비난그리고자식 로그 --grep.

그런 다음 사용자식 설명특정 커밋에 가장 가까운 태그를 찾습니다. 태그는 주로 버전 번호에 사용되므로 커밋이 도입된 버전을 알려줍니다.

위의 접근 방식을 X 및 해당 소스 제어에 적용할 수 있습니다.

답변3

존재하다더반및 다음과 같은 데비안 파생 플랫폼우분투:

sudo apt-get changelog coreutils > changelog.txt 

버전까지 GNU 핵심 유틸리티의 변경 로그를 제공합니다 4.5.1-1.

다른 플랫폼에도 비슷한 편리한 솔루션이 있는지 확실하지 않습니다.

답변4

관련 정보