mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-10-31 15:00:12 +00:00 
			
		
		
		
	 799e22ea0c
			
		
	
	
		799e22ea0c
		
	
	
	
	
		
			
			This describes their purpose better, as we now initialize ssl and some other global stuff in there. Calling the init function is not something which has been optional for a while now.
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * libgit2 "showindex" example - shows how to extract data from the index
 | |
|  *
 | |
|  * Written by the libgit2 contributors
 | |
|  *
 | |
|  * To the extent possible under law, the author(s) have dedicated all copyright
 | |
|  * and related and neighboring rights to this software to the public domain
 | |
|  * worldwide. This software is distributed without any warranty.
 | |
|  *
 | |
|  * You should have received a copy of the CC0 Public Domain Dedication along
 | |
|  * with this software. If not, see
 | |
|  * <http://creativecommons.org/publicdomain/zero/1.0/>.
 | |
|  */
 | |
| 
 | |
| #include "common.h"
 | |
| 
 | |
| int main (int argc, char** argv)
 | |
| {
 | |
| 	git_index *index;
 | |
| 	unsigned int i, ecount;
 | |
| 	char *dir = ".";
 | |
| 	size_t dirlen;
 | |
| 	char out[GIT_OID_HEXSZ+1];
 | |
| 	out[GIT_OID_HEXSZ] = '\0';
 | |
| 
 | |
| 	git_libgit2_init();
 | |
| 
 | |
| 	if (argc > 2)
 | |
| 		fatal("usage: showindex [<repo-dir>]", NULL);
 | |
| 	if (argc > 1)
 | |
| 		dir = argv[1];
 | |
| 
 | |
| 	dirlen = strlen(dir);
 | |
| 	if (dirlen > 5 && strcmp(dir + dirlen - 5, "index") == 0) {
 | |
| 		check_lg2(git_index_open(&index, dir), "could not open index", dir);
 | |
| 	} else {
 | |
| 		git_repository *repo;
 | |
| 		check_lg2(git_repository_open_ext(&repo, dir, 0, NULL), "could not open repository", dir);
 | |
| 		check_lg2(git_repository_index(&index, repo), "could not open repository index", NULL);
 | |
| 		git_repository_free(repo);
 | |
| 	}
 | |
| 
 | |
| 	git_index_read(index, 0);
 | |
| 
 | |
| 	ecount = git_index_entrycount(index);
 | |
| 	if (!ecount)
 | |
| 		printf("Empty index\n");
 | |
| 
 | |
| 	for (i = 0; i < ecount; ++i) {
 | |
| 		const git_index_entry *e = git_index_get_byindex(index, i);
 | |
| 
 | |
| 		git_oid_fmt(out, &e->id);
 | |
| 
 | |
| 		printf("File Path: %s\n", e->path);
 | |
| 		printf("    Stage: %d\n", git_index_entry_stage(e));
 | |
| 		printf(" Blob SHA: %s\n", out);
 | |
| 		printf("File Mode: %07o\n", e->mode);
 | |
| 		printf("File Size: %d bytes\n", (int)e->file_size);
 | |
| 		printf("Dev/Inode: %d/%d\n", (int)e->dev, (int)e->ino);
 | |
| 		printf("  UID/GID: %d/%d\n", (int)e->uid, (int)e->gid);
 | |
| 		printf("    ctime: %d\n", (int)e->ctime.seconds);
 | |
| 		printf("    mtime: %d\n", (int)e->mtime.seconds);
 | |
| 		printf("\n");
 | |
| 	}
 | |
| 
 | |
| 	git_index_free(index);
 | |
| 	git_libgit2_shutdown();
 | |
| 
 | |
| 	return 0;
 | |
| }
 |