Merge branch 'js/gitdir-at-unc-root'
On Windows, the root level of UNC share is now allowed to be used just like any other directory. * js/gitdir-at-unc-root: setup_git_directory(): handle UNC root paths correctly Fix .git/ discovery at the root of UNC shares setup_git_directory(): handle UNC paths correctlymaint
						commit
						b57a88a5f1
					
				
							
								
								
									
										10
									
								
								setup.c
								
								
								
								
							
							
						
						
									
										10
									
								
								setup.c
								
								
								
								
							|  | @ -798,7 +798,7 @@ static const char *setup_discovered_git_dir(const char *gitdir, | ||||||
| 		set_git_dir(gitdir); | 		set_git_dir(gitdir); | ||||||
| 	inside_git_dir = 0; | 	inside_git_dir = 0; | ||||||
| 	inside_work_tree = 1; | 	inside_work_tree = 1; | ||||||
| 	if (offset == cwd->len) | 	if (offset >= cwd->len) | ||||||
| 		return NULL; | 		return NULL; | ||||||
|  |  | ||||||
| 	/* Make "offset" point past the '/' (already the case for root dirs) */ | 	/* Make "offset" point past the '/' (already the case for root dirs) */ | ||||||
|  | @ -920,7 +920,7 @@ static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir, | ||||||
| 	const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT); | 	const char *env_ceiling_dirs = getenv(CEILING_DIRECTORIES_ENVIRONMENT); | ||||||
| 	struct string_list ceiling_dirs = STRING_LIST_INIT_DUP; | 	struct string_list ceiling_dirs = STRING_LIST_INIT_DUP; | ||||||
| 	const char *gitdirenv; | 	const char *gitdirenv; | ||||||
| 	int ceil_offset = -1, min_offset = has_dos_drive_prefix(dir->buf) ? 3 : 1; | 	int ceil_offset = -1, min_offset = offset_1st_component(dir->buf); | ||||||
| 	dev_t current_device = 0; | 	dev_t current_device = 0; | ||||||
| 	int one_filesystem = 1; | 	int one_filesystem = 1; | ||||||
|  |  | ||||||
|  | @ -948,6 +948,12 @@ static enum discovery_result setup_git_directory_gently_1(struct strbuf *dir, | ||||||
| 	if (ceil_offset < 0) | 	if (ceil_offset < 0) | ||||||
| 		ceil_offset = min_offset - 2; | 		ceil_offset = min_offset - 2; | ||||||
|  |  | ||||||
|  | 	if (min_offset && min_offset == dir->len && | ||||||
|  | 	    !is_dir_sep(dir->buf[min_offset - 1])) { | ||||||
|  | 		strbuf_addch(dir, '/'); | ||||||
|  | 		min_offset++; | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * Test in the following order (relative to the dir): | 	 * Test in the following order (relative to the dir): | ||||||
| 	 * - .git (file containing "gitdir: <path>") | 	 * - .git (file containing "gitdir: <path>") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano