mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-28 07:45:00 +00:00
Always issue a full prompt in vc-merge-branch operation.
* vc/vc.el (vc-merge): Remove optional arg PROMPT. Always prompt for a merge location. * vc/vc-bzr.el (vc-bzr-pull): Remove unused var. (vc-bzr-merge-branch): Always prompt. (vc-bzr-async-command): Use the full branch filename.
This commit is contained in:
parent
8f5f1e686e
commit
3d92f44ea0
@ -1,3 +1,12 @@
|
||||
2010-11-23 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* vc/vc.el (vc-merge): Remove optional arg PROMPT. Always prompt
|
||||
for a merge location.
|
||||
|
||||
* vc/vc-bzr.el (vc-bzr-pull): Remove unused var.
|
||||
(vc-bzr-merge-branch): Always prompt.
|
||||
(vc-bzr-async-command): Use the full branch filename.
|
||||
|
||||
2010-11-23 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* shell.el (shell): Use current-buffer by default if it's already
|
||||
|
@ -256,7 +256,9 @@ some window, but don't select it."
|
||||
;; TODO: set up hyperlinks.
|
||||
(let* ((dir default-directory)
|
||||
(root (vc-bzr-root default-directory))
|
||||
(buffer (get-buffer-create (format "*vc-bzr : %s*" root))))
|
||||
(buffer (get-buffer-create
|
||||
(format "*vc-bzr : %s*"
|
||||
(expand-file-name root)))))
|
||||
(with-current-buffer buffer
|
||||
(setq default-directory root)
|
||||
(goto-char (point-max))
|
||||
@ -288,7 +290,7 @@ prompt for the Bzr command to run."
|
||||
"^parent_location\\s-*=\\s-*[^\n[:space:]]+"
|
||||
branch-conf)))
|
||||
(command (if bound "update" "pull"))
|
||||
args buf)
|
||||
args)
|
||||
;; If necessary, prompt for the exact command.
|
||||
(when (or prompt (not (or bound parent)))
|
||||
(setq args (split-string
|
||||
@ -302,31 +304,36 @@ prompt for the Bzr command to run."
|
||||
args (cddr args)))
|
||||
(vc-bzr-async-command command args)))
|
||||
|
||||
(defun vc-bzr-merge-branch (prompt)
|
||||
(defun vc-bzr-merge-branch ()
|
||||
"Merge another Bzr branch into the current one.
|
||||
If a default merge source is defined (i.e. an upstream branch or
|
||||
a previous merge source), this normally runs \"bzr merge --pull\".
|
||||
If optional PROMPT is non-nil or no default merge source is
|
||||
defined, prompt for the Bzr command to run."
|
||||
(let* ((vc-bzr-program vc-bzr-program)
|
||||
(command "merge")
|
||||
(args '("--pull"))
|
||||
command-string args buf)
|
||||
(when (or prompt
|
||||
;; Prompt if there is no default merge source.
|
||||
(null
|
||||
(string-match
|
||||
"^\\(parent_location\\|submit_branch\\)\\s-*=\\s-*[^\n[:space:]]+"
|
||||
(vc-bzr--branch-conf default-directory))))
|
||||
(setq args (split-string
|
||||
(read-shell-command
|
||||
"Run Bzr (like this): "
|
||||
(concat vc-bzr-program " " command " --pull")
|
||||
'vc-bzr-history)
|
||||
" " t))
|
||||
(setq vc-bzr-program (car args)
|
||||
command (cadr args)
|
||||
args (cddr args)))
|
||||
Prompt for the Bzr command to run, providing a pre-defined merge
|
||||
source (an upstream branch or a previous merge source) as a
|
||||
default if it is available."
|
||||
(let* ((branch-conf (vc-bzr--branch-conf default-directory))
|
||||
;; "bzr merge" without an argument defaults to submit_branch,
|
||||
;; then parent_location. We extract the specific location
|
||||
;; and add it explicitly to the command line.
|
||||
(location
|
||||
(cond
|
||||
((string-match
|
||||
"^submit_branch\\s-*=\\s-*\\(?:file://\\)?\\([^\n[:space:]]+\\)$"
|
||||
branch-conf)
|
||||
(match-string 1 branch-conf))
|
||||
((string-match
|
||||
"^parent_location\\s-*=\\s-*\\(?:file://\\)?\\([^\n[:space:]]+\\)$"
|
||||
branch-conf)
|
||||
(match-string 1 branch-conf))))
|
||||
(cmd
|
||||
(split-string
|
||||
(read-shell-command
|
||||
"Run Bzr (like this): "
|
||||
(concat vc-bzr-program " merge --pull"
|
||||
(if location (concat " " location) ""))
|
||||
'vc-bzr-history)
|
||||
" " t))
|
||||
(vc-bzr-program (car cmd))
|
||||
(command (cadr cmd))
|
||||
(args (cddr cmd)))
|
||||
(vc-bzr-async-command command args)))
|
||||
|
||||
(defun vc-bzr-status (file)
|
||||
|
@ -316,10 +316,10 @@
|
||||
;; Merge the changes between REV1 and REV2 into the current working file
|
||||
;; (for non-distributed VCS).
|
||||
;;
|
||||
;; - merge-branch (prompt)
|
||||
;; - merge-branch ()
|
||||
;;
|
||||
;; Merge another branch into the current one. If PROMPT is non-nil,
|
||||
;; or if necessary, prompt for a location to merge from.
|
||||
;; Merge another branch into the current one, prompting for a
|
||||
;; location to merge from.
|
||||
;;
|
||||
;; - merge-news (file)
|
||||
;;
|
||||
@ -1828,12 +1828,11 @@ The headers are reset to their non-expanded form."
|
||||
'modify-change-comment files rev comment))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-merge (&optional arg)
|
||||
(defun vc-merge ()
|
||||
"Perform a version control merge operation.
|
||||
On a distributed version control system, this runs a \"merge\"
|
||||
operation to incorporate changes from another branch onto the
|
||||
current branch, prompting for an argument list if required.
|
||||
Optional prefix ARG forces a prompt.
|
||||
current branch, prompting for an argument list.
|
||||
|
||||
On a non-distributed version control system, this merges changes
|
||||
between two revisions into the current fileset. This asks for
|
||||
@ -1841,14 +1840,14 @@ two revisions to merge from in the minibuffer. If the first
|
||||
revision is a branch number, then merge all changes from that
|
||||
branch. If the first revision is empty, merge the most recent
|
||||
changes from the current branch."
|
||||
(interactive "P")
|
||||
(interactive)
|
||||
(let* ((vc-fileset (vc-deduce-fileset t))
|
||||
(backend (car vc-fileset))
|
||||
(files (cadr vc-fileset)))
|
||||
(cond
|
||||
;; If a branch-merge operation is defined, use it.
|
||||
((vc-find-backend-function backend 'merge-branch)
|
||||
(vc-call-backend backend 'merge-branch arg))
|
||||
(vc-call-backend backend 'merge-branch))
|
||||
;; Otherwise, do a per-file merge.
|
||||
((vc-find-backend-function backend 'merge)
|
||||
(vc-buffer-sync)
|
||||
|
Loading…
Reference in New Issue
Block a user