git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Make Git accept absolute path names for files within the work tree

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 27, 2007, 00:24 UTC
Message-ID
<7vmyt0edso.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1196119109-27483-1-git-send-email-robin.rosenberg@dewire.com>
Robin Rosenberg <robin.rosenberg@dewire.com> writes:
Show 27 quoted lines
> Was it this simple?
>
> diff --git a/setup.c b/setup.c
> index 43cd3f9..9b3a9ff 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -6,6 +6,22 @@ static int inside_work_tree = -1;
>  
>  const char *prefix_path(const char *prefix, int len, const char *path)
>  {
> +	if (is_absolute_path(path)) {
> +		const char *work_tree = get_git_work_tree();
> +		int n = strlen(work_tree);
> +		if (!strncmp(path, work_tree, n) && (path[n] == '/' || !path[n])) {
> +			if (path[n])
> +				path += 1;
> +			path += n;
> +			if (prefix && !strncmp(path, prefix, len - 1)) {
> +			    if (path[len - 1] == '/')
> +				    path += len;
> +			    else
> +				    if (!path[len - 1])
> +					    path += len - 1;
> +			}
> +		}
> +	}
>  	const char *orig = path;
Decl after statement.

I do not think there is fundamental reason to object to this change, as long as the prefixing is done to the path that is trying to name a path in the working tree.

Also some codepath that does not require any work tree may want to call prefix_path(). I do not know what would happen in such a case.

Although I didn't look at all the callers, I think the caller from config.c is not talking about a path in the work tree, and not all users of config.c need to have work-tree.

Previous: Robin RosenbergNext: Robin Rosenberg
Message 2 of 10 in “Make Git accept absolute path names for files within the work tree”
  1. Make Git accept absolute path names for files within the work treeRobin Rosenberg, Nov 26, 2007
  2. Junio C HamanoNov 27, 2007
  3. Robin RosenbergNov 27, 2007
  4. Make Git accept absolute path names for files within the work treeRobin Rosenberg, Nov 27, 2007
  5. Junio C HamanoNov 28, 2007
  6. Robin RosenbergNov 29, 2007
  7. Junio C HamanoNov 29, 2007
  8. Junio C HamanoNov 29, 2007
  9. Johannes SixtNov 27, 2007
  10. Robin RosenbergNov 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.