refs: use 'uint64_t' for 'ref_update.index'
The 'ref_update.index' variable is used to store an index for a given reference update. This index is used to order the updates in a predetermined order, while the default ordering is alphabetical as per the refname. For large repositories with millions of references, it should be safer to use 'uint64_t'. Let's do that. This also is applied for all other code sections where we store 'index' and pass it around. Reported-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									af47976cc0
								
							
						
					
					
						commit
						e7c1b9f123
					
				
							
								
								
									
										4
									
								
								refs.c
								
								
								
								
							
							
						
						
									
										4
									
								
								refs.c
								
								
								
								
							|  | @ -1331,7 +1331,7 @@ static int ref_transaction_update_reflog(struct ref_transaction *transaction, | |||
| 					 const char *committer_info, | ||||
| 					 unsigned int flags, | ||||
| 					 const char *msg, | ||||
| 					 unsigned int index, | ||||
| 					 uint64_t index, | ||||
| 					 struct strbuf *err) | ||||
| { | ||||
| 	struct ref_update *update; | ||||
|  | @ -2813,7 +2813,7 @@ done: | |||
| } | ||||
|  | ||||
| struct reflog_migration_data { | ||||
| 	unsigned int index; | ||||
| 	uint64_t index; | ||||
| 	const char *refname; | ||||
| 	struct ref_store *old_refs; | ||||
| 	struct ref_transaction *transaction; | ||||
|  |  | |||
|  | @ -120,7 +120,7 @@ struct ref_update { | |||
| 	 * when migrating reflogs and we want to ensure we carry over the | ||||
| 	 * same order. | ||||
| 	 */ | ||||
| 	unsigned int index; | ||||
| 	uint64_t index; | ||||
|  | ||||
| 	/* | ||||
| 	 * If this ref_update was split off of a symref update via | ||||
|  | @ -203,7 +203,7 @@ struct ref_transaction { | |||
| 	enum ref_transaction_state state; | ||||
| 	void *backend_data; | ||||
| 	unsigned int flags; | ||||
| 	unsigned int max_index; | ||||
| 	uint64_t max_index; | ||||
| }; | ||||
|  | ||||
| /* | ||||
|  |  | |||
|  | @ -942,7 +942,7 @@ struct write_transaction_table_arg { | |||
| 	size_t updates_nr; | ||||
| 	size_t updates_alloc; | ||||
| 	size_t updates_expected; | ||||
| 	unsigned int max_index; | ||||
| 	uint64_t max_index; | ||||
| }; | ||||
|  | ||||
| struct reftable_transaction_data { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Karthik Nayak
						Karthik Nayak