Update git to v1.7.6.5
struct pathspec is now used in more places. Signed-off-by: John Keeping <john@keeping.me.uk>
这个提交包含在:
		
							
								
								
									
										2
									
								
								git
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								git
									
									
									
									
									
								
							 子模块 git 已更新:e5af0de202...15b7898c5e
									
								
							
							
								
								
									
										22
									
								
								ui-blob.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								ui-blob.c
									
									
									
									
									
								
							| @@ -32,7 +32,14 @@ int cgit_print_file(char *path, const char *head) | ||||
| 	char *buf; | ||||
| 	unsigned long size; | ||||
| 	struct commit *commit; | ||||
| 	const char *paths[] = {path, NULL}; | ||||
| 	struct pathspec_item path_items = { | ||||
| 		.match = path, | ||||
| 		.len = strlen(path) | ||||
| 	}; | ||||
| 	struct pathspec paths = { | ||||
| 		.nr = 1, | ||||
| 		.items = &path_items | ||||
| 	}; | ||||
| 	if (get_sha1(head, sha1)) | ||||
| 		return -1; | ||||
| 	type = sha1_object_info(sha1, &size); | ||||
| @@ -41,7 +48,7 @@ int cgit_print_file(char *path, const char *head) | ||||
| 		match_path = path; | ||||
| 		matched_sha1 = sha1; | ||||
| 		found_path = 0; | ||||
| 		read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); | ||||
| 		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL); | ||||
| 		if (!found_path) | ||||
| 			return -1; | ||||
| 		type = sha1_object_info(sha1, &size); | ||||
| @@ -63,7 +70,14 @@ void cgit_print_blob(const char *hex, char *path, const char *head) | ||||
| 	char *buf; | ||||
| 	unsigned long size; | ||||
| 	struct commit *commit; | ||||
| 	const char *paths[] = {path, NULL}; | ||||
| 	struct pathspec_item path_items = { | ||||
| 		.match = path, | ||||
| 		.len = strlen(path) | ||||
| 	}; | ||||
| 	struct pathspec paths = { | ||||
| 		.nr = 1, | ||||
| 		.items = &path_items | ||||
| 	}; | ||||
|  | ||||
| 	if (hex) { | ||||
| 		if (get_sha1_hex(hex, sha1)){ | ||||
| @@ -83,7 +97,7 @@ void cgit_print_blob(const char *hex, char *path, const char *head) | ||||
| 		commit = lookup_commit_reference(sha1); | ||||
| 		match_path = path; | ||||
| 		matched_sha1 = sha1; | ||||
| 		read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); | ||||
| 		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL); | ||||
| 		type = sha1_object_info(sha1,&size); | ||||
| 	} | ||||
|  | ||||
|   | ||||
							
								
								
									
										17
									
								
								ui-plain.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ui-plain.c
									
									
									
									
									
								
							| @@ -197,7 +197,14 @@ void cgit_print_plain(struct cgit_context *ctx) | ||||
| 	const char *rev = ctx->qry.sha1; | ||||
| 	unsigned char sha1[20]; | ||||
| 	struct commit *commit; | ||||
| 	const char *paths[] = {ctx->qry.path, NULL}; | ||||
| 	struct pathspec_item path_items = { | ||||
| 		.match = ctx->qry.path, | ||||
| 		.len = ctx->qry.path ? strlen(ctx->qry.path) : 0 | ||||
| 	}; | ||||
| 	struct pathspec paths = { | ||||
| 		.nr = 1, | ||||
| 		.items = &path_items | ||||
| 	}; | ||||
|  | ||||
| 	if (!rev) | ||||
| 		rev = ctx->qry.head; | ||||
| @@ -211,14 +218,14 @@ void cgit_print_plain(struct cgit_context *ctx) | ||||
| 		html_status(404, "Not found", 0); | ||||
| 		return; | ||||
| 	} | ||||
| 	if (!paths[0]) { | ||||
| 		paths[0] = ""; | ||||
| 	if (!path_items.match) { | ||||
| 		path_items.match = ""; | ||||
| 		match_baselen = -1; | ||||
| 		print_dir(commit->tree->object.sha1, "", 0, ""); | ||||
| 	} | ||||
| 	else | ||||
| 		match_baselen = basedir_len(paths[0]); | ||||
| 	read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); | ||||
| 		match_baselen = basedir_len(path_items.match); | ||||
| 	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL); | ||||
| 	if (!match) | ||||
| 		html_status(404, "Not found", 0); | ||||
| 	else if (match == 2) | ||||
|   | ||||
							
								
								
									
										16
									
								
								ui-tree.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								ui-tree.c
									
									
									
									
									
								
							| @@ -202,6 +202,9 @@ static void ls_tail() | ||||
| static void ls_tree(const unsigned char *sha1, char *path) | ||||
| { | ||||
| 	struct tree *tree; | ||||
| 	struct pathspec paths = { | ||||
| 		.nr = 0 | ||||
| 	}; | ||||
|  | ||||
| 	tree = parse_tree_indirect(sha1); | ||||
| 	if (!tree) { | ||||
| @@ -211,7 +214,7 @@ static void ls_tree(const unsigned char *sha1, char *path) | ||||
| 	} | ||||
|  | ||||
| 	ls_head(); | ||||
| 	read_tree_recursive(tree, "", 0, 1, NULL, ls_item, NULL); | ||||
| 	read_tree_recursive(tree, "", 0, 1, &paths, ls_item, NULL); | ||||
| 	ls_tail(); | ||||
| } | ||||
|  | ||||
| @@ -252,7 +255,14 @@ void cgit_print_tree(const char *rev, char *path) | ||||
| { | ||||
| 	unsigned char sha1[20]; | ||||
| 	struct commit *commit; | ||||
| 	const char *paths[] = {path, NULL}; | ||||
| 	struct pathspec_item path_items = { | ||||
| 		.match = path, | ||||
| 		.len = path ? strlen(path) : 0 | ||||
| 	}; | ||||
| 	struct pathspec paths = { | ||||
| 		.nr = path ? 1 : 0, | ||||
| 		.items = &path_items | ||||
| 	}; | ||||
|  | ||||
| 	if (!rev) | ||||
| 		rev = ctx.qry.head; | ||||
| @@ -274,6 +284,6 @@ void cgit_print_tree(const char *rev, char *path) | ||||
| 	} | ||||
|  | ||||
| 	match_path = path; | ||||
| 	read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); | ||||
| 	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL); | ||||
| 	ls_tail(); | ||||
| } | ||||
|   | ||||
		在新工单中引用
	
	屏蔽一个用户
	 John Keeping
					John Keeping