emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is this a bug in vc-svn?


From: Leo
Subject: Re: Is this a bug in vc-svn?
Date: Fri, 20 Oct 2006 19:35:36 +0100
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/23.0.0 (gnu/linux)

On Fri, 20/10/06, Stefan Monnier wrote:

[...]

>
> The patch below should fix it.
>
>
>         Stefan
>
>
> Index: lisp/vc-svn.el
> ===================================================================
> RCS file: /sources/emacs/emacs/lisp/vc-svn.el,v
> retrieving revision 1.27
> diff -u -r1.27 vc-svn.el
> --- lisp/vc-svn.el    9 Feb 2006 03:47:00 -0000       1.27
> +++ lisp/vc-svn.el    20 Oct 2006 07:51:17 -0000
> @@ -125,8 +125,7 @@
>                 ;; an `error' by vc-do-command.
>                 (error nil))))
>          (when (eq 0 status)
> -          (vc-svn-parse-status t)
> -          (eq 'SVN (vc-file-getprop file 'vc-backend)))))))
> +          (vc-svn-parse-status file))))))
>  
>  (defun vc-svn-state (file &optional localp)
>    "SVN-specific version of `vc-state'."
> @@ -134,8 +133,7 @@
>    (with-temp-buffer
>      (cd (file-name-directory file))
>      (vc-svn-command t 0 file "status" (if localp "-v" "-u"))
> -    (vc-svn-parse-status localp)
> -    (vc-file-getprop file 'vc-state)))
> +    (vc-svn-parse-status file)))
>  
>  (defun vc-svn-state-heuristic (file)
>    "SVN-specific state heuristic."
> @@ -149,7 +147,7 @@
>      ;; enough.  Otherwise it might fail with remote repositories.
>      (with-temp-buffer
>        (vc-svn-command t 0 nil "status" (if localp "-v" "-u"))
> -      (vc-svn-parse-status localp))))
> +      (vc-svn-parse-status))))
>  
>  (defun vc-svn-workfile-version (file)
>    "SVN-specific version of `vc-workfile-version'."
> @@ -488,10 +486,10 @@
>        ;; behavior for different modules on the same server.
>        (match-string 1))))
>  
> -(defun vc-svn-parse-status (localp)
> +(defun vc-svn-parse-status (&optional filename)
>    "Parse output of \"svn status\" command in the current buffer.
> -Set file properties accordingly.  Unless FULL is t, parse only
> -essential information."
> +Set file properties accordingly.  Unless FILENAME is non-nil, parse only
> +information about FILENAME and return its status."
>    (let (file status)
>      (goto-char (point-min))
>      (while (re-search-forward
> @@ -500,7 +498,9 @@
>                 (buffer-substring (point) (line-end-position))))
>        (setq status (char-after (line-beginning-position)))
>        (unless (eq status ??)
> -     (vc-file-setprop file 'vc-backend 'SVN)
> +     ;; `vc-BACKEND-registered' must not set vc-backend,
> +     ;; which is instead set in vc-registered.
> +     (unless filename (vc-file-setprop file 'vc-backend 'SVN))
>       ;; Use the last-modified revision, so that searching in vc-print-log
>       ;; output works.
>       (vc-file-setprop file 'vc-workfile-version (match-string 3))
> @@ -522,7 +522,8 @@
>          (if (eq (char-after (match-beginning 1)) ?*)
>              'needs-merge
>            'edited))
> -       (t 'edited)))))))
> +       (t 'edited)))))
> +    (if filename (vc-file-getprop filename 'vc-state))))
>  
>  (defun vc-svn-dir-state-heuristic (dir)
>    "Find the SVN state of all files in DIR, using only local information."

Yes, it's fixed.

-- 
Leo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]