Tôi muốn thay đổi một gói, kiểm tra nó và hy vọng gửi yêu cầu kéo sau đó. Làm thế nào để tôi làm điều đó một cách an toàn và hiệu quả? Câu hỏi có thể cảm thấy quá rộng, tôi sẽ chấp nhận câu trả lời bao gồm các vấn đề sau:
Tôi hy vọng sẽ cài đặt một nhánh riêng của gói và có thể chuyển đổi giữa nó và nhánh ổn định theo ý thích, với việc biên dịch lại được thực hiện tự động khi cần thiết, nhưng
package.el
dường như không cung cấp một cách đơn giản để làm điều đó. Câu trả lời này trên emacs-SE thông báo cho chúng tôi rằng Nếu một bản sao của gói được cài đặt, thì bản đầu tiên sẽ được tải lên vì vậy tôi đoán người ta có thể tự làm rốiload-path
nhưng điều này không cảm thấy mạnh mẽ. Cách tiêu chuẩn để chọn một phiên bản cụ thể của gói được cài đặt là gì?Ngay cả khi tôi quản lý để hiển thị một số chi nhánh cho Emacs, đối với các chỉnh sửa quan trọng, tôi cần đảm bảo rằng chi nhánh chưa được chỉnh sửa là không được tải xuống và các tác dụng phụ của nó bị cô lập. Liệu
unload-feature
xử lý việc này đúng cách hay có thể nó có những đặc điểm riêng mà mọi người thử nghiệm các gói đa phiên bản nên biết?Làm cách nào để cài đặt và kiểm tra phiên bản cục bộ? Câu trả lời dường như phụ thuộc vào việc gói đơn giản (= một tệp) hay đa tệp. EmacsWiki nói về các gói multifile: MELPA xây dựng các gói cho bạn . Tôi nghi ngờ rằng tôi phải (hoặc nên) nói chuyện với MELPA mỗi khi tôi thay đổi một
defun
biểu mẫu trong gói đa biến nhưng câu hỏi vẫn còn. Ít nhất tôi cần nói với người quản lý gói về phiên bản địa phương, và nếu vậy, tôi phải làm thế nào?Tôi nên gán tên nào cho các phiên bản địa phương của gói? Giả sử tôi muốn làm việc trên nhiều tính năng hoặc lỗi đồng thời, có nghĩa là có nhiều nhánh. Emacs sẽ không cho phép đặt tên phiên bản theo cách mô tả (dọc theo dòng
20170117.666-somebugorfeature
). Tôi đoán rằng tôi có thể đổi tên chính gói đó, hậu tố cho mỗi nhánh, nhưng một lần nữa, như làm rối thủ côngload-path
trong Q1, đây là một hack xấu xí, vì vậy tôi sẽ không thử nó với thứ gì đó mà tôi dự định gửi ngược dòng trừ khi đó là một thực tế được chấp nhận rộng rãi .
Các câu hỏi có lẽ là ngây thơ, vì tôi không bao giờ viết một bản vá không áp dụng một bản vá với git hoặc một vcs tương tự. Tuy nhiên, đối với nhiều người dùng Emacs, việc vá gói Emacs có thể là nỗ lực lập trình xã hội đầu tiên (hoặc có thể là duy nhất) của họ, đó là lý do tại sao, tôi tin rằng, câu trả lời cho câu hỏi này vẫn có giá trị.
emacs -L
phương pháp để tải phiên bản cục bộ của gói mà tôi cũng đã cài đặt trên toàn cầu bằng Cask. Một điều khiến tôi thất vọng là việc chạy<package>-version
luôn trả về phiên bản được cài đặt toàn cầu, ngay cả khi tôi thực sự đang chạy phiên bản sửa đổi cục bộ. Hóa ra điều này là do<package>-version
gói này lấy phiên bản từpackages.el
.