This does not special optimisation to minimise the data. I guess this is also a good point to hear objections to the current way the VC data is handled. Here is an example entry from "archive-contents", note the new `:upstream' entry in the metadata field (the last element of the vector): --8<---------------cut here---------------start------------->8--- (setup . [(1 3 0) ((emacs (26 1))) "Helpful Configuration Macro" tar ((:url . "https://git.sr.ht/~pkal/setup") (:keywords "lisp" "local") (:maintainer "Philip Kaludercic" . "~pkal/public-inbox@lists.sr.ht") (:authors --> ("Philip Kaludercic" . "philipk@posteo.net")) (:upstream Git "https://git.sr.ht/~pkal/setup" nil nil) (:commit . "eece09d1151fd641f31d738b8c62742918993e95"))]) --8<---------------cut here---------------end--------------->8--- or --8<---------------cut here---------------start------------->8--- (smalltalk-mode . [(4 0) nil "Major mode for the GNU Smalltalk programming language" tar ((:maintainer "Derek Zhou" . "derek@3qin.us") (:url . "https://elpa.gnu.org/packages/smalltalk-mode.html") --> (:upstream Git "https://git.savannah.gnu.org/git/emacs/elpa.git" nil "externals/smalltalk-mode") (:commit . "570b705db9a02bb48cd61652639401715f419447"))]) --8<---------------cut here---------------end--------------->8--- The value corresponding to :upstream is a list of the form (VC-BACKEND REPOSITORY-URL SUBDIRECTORY BRANCH) I have been wondering if it would be better to use a {a,p}list instead, which would be more flexible if changes would become necessary in the future. Perhaps I am even missing something right now? At the same time I don't mean to burden the ELPA server by increasing the size of the file that is regularly queried. Perhaps REPOSITORY-URL could have special values such as `:url' to indicate that the package URL is the same as the repository and `:elpa'/`:nongnu' to indicate that the default repository is being used. Or is this just premature optimisation?