Subject: Re: [PATCH v4 24/27] prune: strategies for linked checkouts

From: Torsten Bögershausen <[email-masked]>
Date: Sat, 01 Mar 2014 18:12:59 +0100

On 2014-03-01 13.13, Nguyễn Thái Ngọc Duy wrote:
[]
>  
> +static dev_t get_device_or_die(const char *path)
> +{
> +	struct stat buf;
> +	if (stat(path, &buf))
> +		die_errno("failed to stat '%s'", path);
> +	/* Ah Windows! Make different drives different "partitions" */
> +	if (is_windows())
> +		buf.st_dev = toupper(real_path(path)[0]);
> +	return buf.st_dev;

Is this only related to Windows ?
Do we have other file systems, which return st_dev == 0 ?
Should we check that path[0] != '/', or better !is_dir_sep(path[0]) ?
Do we need has_dos_drive_prefix() ?

As a first suggestion, would this be better:

> +	if (!buf.st_dev)
> +		buf.st_dev = toupper(real_path(path)[0]);

(End of loose thinking)