emacs-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] vc-git: Do not show `.git/*' files with vc-dir


From: Dan Nicolaescu
Subject: Re: [PATCH] vc-git: Do not show `.git/*' files with vc-dir
Date: Wed, 30 Jun 2010 15:35:39 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Eric James Michael Ritz <address@hidden> writes:

> On 06/30/2010 08:58 AM, Deniz Dogan wrote:
>> 2010/6/30 Deniz Dogan <address@hidden>:
>>> 2010/6/30 Eric James Michael Ritz <address@hidden>:
>>>> +  (cond ((string-match ".git" file)
>>>
>>> Wouldn't "\\`\\.git\\'" be more appropriate? ".git" would match
>>> anything which contains "git" preceded by at least one character.
>>>
>>
>> Or actually, (string= ".git" file), I suppose. :)
>
> Whoops, you’re right.  Thanks for the catch :)  Fixed patch below:
>
> diff --git a/lisp/vc-git.el b/lisp/vc-git.el
> index 24062a0..62e0c55 100644
> --- a/lisp/vc-git.el
> +++ b/lisp/vc-git.el
> @@ -171,16 +171,21 @@ If nil, use the value of `vc-diff-switches'.  If t, use 
> no switches."
>
>  (defun vc-git-state (file)
>    "Git-specific version of `vc-state'."
> -  ;; FIXME: This can't set 'ignored yet
> -  (if (not (vc-git-registered file))
> -      'unregistered
> -    (vc-git--call nil "add" "--refresh" "--" (file-relative-name file))
> -    (let ((diff (vc-git--run-command-string
> -                 file "diff-index" "-z" "HEAD" "--")))
> -      (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} 
> [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0"
> -                               diff))
> -       (vc-git--state-code (match-string 1 diff))
> -     (if (vc-git--empty-db-p) 'added 'up-to-date)))))
> +  ;; We never want to perform VC operations on files in the `.git'
> +  ;; directory.
> +  (cond ((string= ".git" file)

file is an absolute file name, so this condition cannot be true.

I still need to think what the best way of solving this is...


> +         nil)
> +        ;; FIXME: This can't set 'ignored yet.
> +        ((not (vc-git-registered file))
> +         'unregistered)
> +        (t
> +         (vc-git--call nil "add" "--refresh" "--" (file-relative-name file))
> +         (let ((diff (vc-git--run-command-string
> +                      file "diff-index" "-z" "HEAD" "--")))
> +           (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} 
> [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0"
> +                                       diff))
> +               (vc-git--state-code (match-string 1 diff))
> +             (if (vc-git--empty-db-p) 'added 'up-to-date))))))
>
>  (defun vc-git-working-revision (file)
>    "Git-specific version of `vc-working-revision'."



reply via email to

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