GNU bug report logs -
#32740
[PATCH] git-download: Don't assume the git checkout is the parent of ".git".
Previous Next
Reported by: Marius Bakke <mbakke <at> fastmail.com>
Date: Sat, 15 Sep 2018 10:11:01 UTC
Severity: normal
Tags: patch
Done: Marius Bakke <mbakke <at> fastmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#32740: [PATCH] git-download: Don't assume the git checkout is the parent of ".git".
which was filed against the guix-patches package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 32740 <at> debbugs.gnu.org.
--
32740: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32740
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
ludo <at> gnu.org (Ludovic Courtès) writes:
> Hello!
>
> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> From e8b443e1de0a5b1e3dfeee024cd0625790f4f834 Mon Sep 17 00:00:00 2001
>> From: Marius Bakke <mbakke <at> fastmail.com>
>> Date: Sat, 15 Sep 2018 11:53:40 +0200
>> Subject: [PATCH] git-download: Don't assume the working directory is the
>> parent of ".git".
>>
>> * guix/git-download.scm (git-file-list): Use REPOSITORY-WORKING-DIRECTORY to
>> locate checkout. Rename from "top" to "workdir".
>> ---
>> guix/git-download.scm | 13 ++++++-------
>> 1 file changed, 6 insertions(+), 7 deletions(-)
>>
>> diff --git a/guix/git-download.scm b/guix/git-download.scm
>> index 24cf11be5..eb20927c7 100644
>> --- a/guix/git-download.scm
>> +++ b/guix/git-download.scm
>> @@ -156,22 +156,21 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f."
>> The result is similar to that of the 'git ls-files' command, except that it
>> also includes directories, not just regular files. The returned file names
>> are relative to DIRECTORY, which is not necessarily the root of the checkout."
>> - (let* ((directory (canonicalize-path directory))
>> + (let* ((directory (string-append (canonicalize-path directory) "/"))
>
> Could you just add a comment here explaining that
> ‘repository-working-directory’ always appends a trailing slash?
Good idea.
> Otherwise LGTM, thank you!
Pushed as 280fc8351230a8fea086d9bbce919ba8395f312c, thanks!
[signature.asc (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
This makes it play nicely with worktrees.
* guix/git-download.scm (git-file-list): Use REPOSITORY-WORKING-DIRECTORY to
locate checkout. Rename from "top" to "workdir".
---
Notes:
Guix,
This fixes (current-guix) for me in a worktree. Testing needed on other git
setups!
guix/git-download.scm | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/guix/git-download.scm b/guix/git-download.scm
index 24cf11be5..a7c8173f4 100644
--- a/guix/git-download.scm
+++ b/guix/git-download.scm
@@ -158,19 +158,22 @@ also includes directories, not just regular files. The returned file names
are relative to DIRECTORY, which is not necessarily the root of the checkout."
(let* ((directory (canonicalize-path directory))
(dot-git (repository-discover directory))
- (top (dirname dot-git))
(repository (repository-open dot-git))
+ (workdir (canonicalize-path
+ ;; XXX: This variable is mistakenly private in Guile-Git 0.1.0.
+ ((@@ (git repository) repository-working-directory)
+ repository)))
(head (repository-head repository))
(oid (reference-target head))
(commit (commit-lookup repository oid))
(tree (commit-tree commit))
(files (tree-list tree)))
(repository-close! repository)
- (if (string=? top directory)
+ (if (string=? workdir directory)
files
(let ((relative (string-append
(string-drop directory
- (+ 1 (string-length top)))
+ (+ 1 (string-length workdir)))
"/")))
(filter-map (lambda (file)
(and (string-prefix? relative file)
--
2.19.0
This bug report was last modified 6 years and 242 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.