;;; Maintain external packages.
+(defconst archive--elpa-git-url "git+ssh://git.sv.gnu.org/srv/git/emacs/elpa")
+
(defun archive-add/remove/update-externals ()
(let ((exts (with-current-buffer (find-file-noselect "externals-list")
(goto-char (point-min))
(output
(with-temp-buffer
;; FIXME: Use git-new-workdir!
- (call-process "git" nil t nil "branch" "--track"
- branch (concat "origin/" branch))
(call-process "git" nil t nil "clone"
- "--shared" "--branch" branch "../" dir)
- (let ((default-directory (file-name-as-directory
- (expand-file-name dir))))
- ;; (call-process "git" nil t nil "branch"
- ;; "-m" branch "master")
- (call-process "git" nil t nil "remote"
- "set-url" "--push" "origin"
- "git+ssh://git.sv.gnu.org/srv/git/emacs/elpa.git"))
+ "--reference" ".." "--branch" branch
+ archive--elpa-git-url dir)
(buffer-string))))
(message "Cloning branch %s:\n%s" dir output)))
((not (file-directory-p (concat dir "/.git")))