From: Nguyen Thai Ngoc Duy <pclouds@gmail.com>
To: Matthijs Kooijman <matthijs@stdin.nl>
Cc: git@vger.kernel.org
Subject: Re: git-add says 'pathspec did not match any files' for git repository in /
Date: Fri, 25 Mar 2011 19:56:35 +0700 [thread overview]
Message-ID: <20110325125635.GA28118@do> (raw)
In-Reply-To: <20110325100254.GH30350@login.drsnuggles.stderr.nl>
On Fri, Mar 25, 2011 at 11:02:54AM +0100, Matthijs Kooijman wrote:
> Hey folks,
>
> I've been using git for keeping config files using a repository in /.
> In 1.7.4.1, this seems to be broken again. Committing, diffing and
> status work this time, but git add gives a pathspec did not match any
> files error when adding a file while the current working directory is
> not /.
We have t1509 to guard these cases (and it does indeed show
breakages). The problem is that the test requires chroot and cannot be
run automatically. I need to think of writing better tests.
The following makes t1509 pass again for me. You may want to try and
see if it fixes it for you.
diff --git a/setup.c b/setup.c
index 03cd84f..c18ea9c 100644
--- a/setup.c
+++ b/setup.c
@@ -390,15 +390,25 @@ static const char *setup_explicit_git_dir(const char *gitdirenv,
return NULL;
}
- if (!prefixcmp(cwd, worktree) &&
- cwd[strlen(worktree)] == '/') { /* cwd inside worktree */
- set_git_dir(real_path(gitdirenv));
- if (chdir(worktree))
- die_errno("Could not chdir to '%s'", worktree);
- cwd[len++] = '/';
- cwd[len] = '\0';
- free(gitfile);
- return cwd + strlen(worktree) + 1;
+ if (!prefixcmp(cwd, worktree)) {
+ if (strlen(worktree) == offset_1st_component(worktree)) {
+ set_git_dir(real_path(gitdirenv));
+ if (chdir(worktree))
+ die_errno("Could not chdir to '%s'", worktree);
+ cwd[len++] = '/';
+ cwd[len] = '\0';
+ free(gitfile);
+ return cwd + offset_1st_component(worktree);
+ }
+ if (cwd[strlen(worktree)] == '/') { /* cwd inside worktree */
+ set_git_dir(real_path(gitdirenv));
+ if (chdir(worktree))
+ die_errno("Could not chdir to '%s'", worktree);
+ cwd[len++] = '/';
+ cwd[len] = '\0';
+ free(gitfile);
+ return cwd + strlen(worktree) + 1;
+ }
}
/* cwd outside worktree */
--
Duy
next prev parent reply other threads:[~2011-03-25 12:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-25 10:02 git-add says 'pathspec did not match any files' for git repository in / Matthijs Kooijman
2011-03-25 12:56 ` Nguyen Thai Ngoc Duy [this message]
2011-03-25 13:49 ` [PATCH] setup: return correct prefix if worktree is '/' Nguyễn Thái Ngọc Duy
2011-03-25 14:17 ` Michael J Gruber
2011-03-25 15:11 ` Nguyen Thai Ngoc Duy
2011-03-25 15:52 ` [PATCH] dir.c: do not trip over difference in "/" Michael J Gruber
2011-03-26 7:59 ` Nguyen Thai Ngoc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110325125635.GA28118@do \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=matthijs@stdin.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.