패키지를 변경하고 테스트 한 후 나중에 풀 요청을 제출하고 싶습니다. 안전하고 효율적인 방법으로 어떻게합니까? 질문이 너무 넓게 느껴질 수 있습니다. 다음 문제에 대한 답변을 수락하겠습니다.
필자는 별도의 패키지 브랜치를 설치하고 필요할 때 자동으로 재 컴파일을 수행하면서 변덕스러운 지점과 안정적인 브랜치 사이를 전환 할 수있을 것으로 기대하지만
package.el
그렇게 할 수있는 간단한 방법은 제공하지 않는 것 같습니다. emacs-SE에 대한이 답변 은“패키지의 여러 복사본이 설치된 경우 첫 번째 패키지가로드됩니다”라고 알려주므로 수동으로 엉망이 될 수load-path
있지만 강력하지는 않습니다. 설치된 패키지 중에서 특정 버전의 패키지를 선택하는 표준 방법은 무엇입니까?여러 가지 브랜치를 Emacs에 노출시킬 수 있더라도 상당한 조정을 위해 패치되지 않은 브랜치를 "언로드"하고 부작용을 분리해야합니다.
unload-feature
이것을 올바르게 처리 합니까 아니면 다중 버전 패키지의 모든 테스터가 알아야 할 특성이 있습니까?로컬 버전을 설치하고 테스트하려면 어떻게합니까? 답은 패키지가 단순 (= 하나의 파일)인지 아니면 다중 파일인지에 따라 달라집니다. EmacsWiki는 멀티 파일 패키지에 대해 다음과 같이 말합니다.“ MELPA가 패키지를 빌드합니다 ”
defun
다중 파일 패키지에서 양식을 변경할 때마다 MELPA와 대화해야하는지 (또는)해야하는지 의심 하지만 질문은 남아 있습니다. 최소한 패키지 관리자에게 로컬 버전에 대해 알려 주어야한다면 어떻게해야합니까?로컬 버전의 패키지에 어떤 이름을 할당해야합니까? 여러 기능이나 버그에 대해 동시에 작업하려고한다고 가정합니다. 즉, 여러 가지가 있습니다. Emacs는 (의 행을 따라) 설명적인 방식으로 버전 이름을 지정할 수 없습니다
20170117.666-somebugorfeature
. 나는 패키지 자체의 이름을 분기당 접미사로 바꿀 수 있지만load-path
Q1에서 수동으로 엉망으로하는 것처럼 추한 해킹이므로 널리 받아 들여지지 않는 한 업스트림으로 보내려고하는 것으로 시도하지 않을 것입니다. .
내가 git이나 비슷한 vc로 패치를 적용하지 않았기 때문에 질문은 아마도 순진합니다. 그러나 많은 이맥스 사용자들에게는 이맥스 패키지를 패치하는 것이 그들의 첫 번째 (또는 유일한 유일한) 소셜 프로그래밍 노력 일 수 있기 때문에이 질문에 대한 대답은 여전히 가치가 있다고 생각합니다.
emacs -L
Cask를 사용하여 전체적으로 설치 한 패키지의 로컬 버전을로드하는 방법을 사용하고 있습니다. 나를 버린 한 가지 사실<package>-version
은 실제로 로컬 수정 버전을 실행하더라도 실행은 항상 전역 설치 버전을 반환 한다는 것입니다 . 때문에이 밝혀이었다<package>-version
이 패키지가의 버전을 가져옵니다packages.el
.