emacs-bug-tracker
[Top][All Lists]
Advanced

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

bug#48698: closed ([PATCH] git-download: Fix 'git-predicate' handling of


From: GNU bug Tracking System
Subject: bug#48698: closed ([PATCH] git-download: Fix 'git-predicate' handling of deleted files.)
Date: Fri, 28 May 2021 10:11:01 +0000

Your message dated Fri, 28 May 2021 12:10:09 +0200
with message-id <87v973i2ym.fsf@gnu.org>
and subject line Re: bug#48698: [PATCH] git-download: Fix 'git-predicate' 
handling of deleted files.
has caused the debbugs.gnu.org bug report #48698,
regarding [PATCH] git-download: Fix 'git-predicate' handling of deleted files.
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
48698: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=48698
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: [PATCH] git-download: Fix 'git-predicate' handling of deleted files. Date: Fri, 28 May 2021 00:17:59 +1000
When git-predicate is used on an active worktree, some files in the
index might not exist on the filesystem.  Instead of failing with "No
such file or directory", these should be ignored.

* guix/git-download.scm (git-predicate): Skip missing files.
---
 guix/git-download.scm | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/guix/git-download.scm b/guix/git-download.scm
index 199effece5..8d8e1c865f 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -231,11 +231,13 @@ absolute file name and STAT is the result of 'lstat'."
     (lambda ()
       (let* ((files  (git-file-list directory))
              (inodes (fold (lambda (file result)
-                             (let ((stat
-                                    (lstat (string-append directory "/"
-                                                          file))))
-                               (vhash-consv (stat:ino stat) (stat:dev stat)
-                                            result)))
+                             (let* ((path (string-append directory "/" file))
+                                    (stat (and (file-exists? path)
+                                               (lstat path))))
+                               (if stat
+                                   (vhash-consv (stat:ino stat)
+                                                (stat:dev stat) result)
+                                   result)))
                            vlist-null
                            files)))
         (lambda (file stat)
-- 
2.31.1




--- End Message ---
--- Begin Message --- Subject: Re: bug#48698: [PATCH] git-download: Fix 'git-predicate' handling of deleted files. Date: Fri, 28 May 2021 12:10:09 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Hi Andrew,

Andrew Whatson <whatson@gmail.com> skribis:

> When git-predicate is used on an active worktree, some files in the
> index might not exist on the filesystem.  Instead of failing with "No
> such file or directory", these should be ignored.
>
> * guix/git-download.scm (git-predicate): Skip missing files.

I pushed a slightly different version as
50d5bb1f3e3f080212436db1b8666d061a8ae1d2, mostly avoiding the extra
‘stat’ call induced by ‘file-exists?’.

Thanks,
Ludo’.


--- End Message ---

reply via email to

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