- general.c reverted to original( before pr state )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
diff --git a/examples/general.c b/examples/general.c
index 2350559..ae87563 100644
--- a/examples/general.c
+++ b/examples/general.c
@@ -71,43 +71,6 @@ int main (int argc, char** argv)
int error;
const char *repo_path = (argc > 1) ? argv[1] : "/opt/libgit2-test/.git";
git_repository *repo;
- char* hex;
- git_oid oid;
- char out[41];
- git_odb* odb;
- git_odb_object *obj;
- git_otype otype;
- const unsigned char *data;
- const char *str_type;
- git_commit* commit;
- const git_signature *author, *cmtter;
- const char *message;
- time_t ctime;
- unsigned int parents, p;
- git_oid tree_id, parent_id, commit_id;
- git_tree *tree;
- git_commit *parent;
- git_tag *tag;
- const char *tmessage, *tname;
- git_otype ttype;
- const git_tree_entry *entry;
- git_object *objt;
- size_t cnt;
- git_blob *blob;
- git_revwalk *walk;
- git_commit *wcommit;
- const git_signature *cauth;
- const char *cmsg;
- git_index *index;
- unsigned int i, ecount;
- git_strarray ref_list;
- const char *refname;
- git_reference *ref;
- const char *email;
- int32_t j;
- git_config *cfg;
- char config_path[256];
-
error = git_repository_open(&repo, repo_path);
check_error(error, "opening repository");
@@ -117,11 +80,12 @@ int main (int argc, char** argv)
// For our first example, we will convert a 40 character hex value to the
// 20 byte raw SHA1 value.
printf("*Hex to Raw*\n");
- hex = "4a202b346bb0fb0db7eff3cffeb3c70babbd2045";
+ char hex[] = "4a202b346bb0fb0db7eff3cffeb3c70babbd2045";
// The `git_oid` is the structure that keeps the SHA value. We will use
// this throughout the example for storing the value of the current SHA
// key we're working with.
+ git_oid oid;
git_oid_fromstr(&oid, hex);
// Once we've converted the string into the oid value, we can get the raw
@@ -130,6 +94,7 @@ int main (int argc, char** argv)
// Next we will convert the 20 byte raw SHA1 value to a human readable 40
// char hex value.
printf("\n*Raw to Hex*\n");
+ char out[41];
out[40] = '\0';
// If you have a oid, you can easily get the hex value of the SHA as well.
@@ -144,11 +109,16 @@ int main (int argc, char** argv)
// repository.
//
// [odb]: http://libgit2.github.com/libgit2/#HEAD/group/odb
+ git_odb *odb;
git_repository_odb(&odb, repo);
// #### Raw Object Reading
printf("\n*Raw Object Read*\n");
+ git_odb_object *obj;
+ git_otype otype;
+ const unsigned char *data;
+ const char *str_type;
// We can read raw objects directly from the object database if we have
// the oid (SHA) of the object. This allows us to access objects without
@@ -207,11 +177,17 @@ int main (int argc, char** argv)
printf("\n*Commit Parsing*\n");
+ git_commit *commit;
git_oid_fromstr(&oid, "8496071c1b46c854b31185ea97743be6a8774479");
error = git_commit_lookup(&commit, repo, &oid);
check_error(error, "looking up commit");
+ const git_signature *author, *cmtter;
+ const char *message;
+ time_t ctime;
+ unsigned int parents, p;
+
// Each of the properties of the commit object are accessible via methods,
// including commonly needed variations, such as `git_commit_time` which
// returns the author time and `git_commit_message` which gives you the
@@ -253,6 +229,9 @@ int main (int argc, char** argv)
// [cd]: http://libgit2.github.com/libgit2/#HEAD/group/commit
printf("\n*Commit Writing*\n");
+ git_oid tree_id, parent_id, commit_id;
+ git_tree *tree;
+ git_commit *parent;
// Creating signatures for an authoring identity and time is simple. You
// will need to do this to specify who created a commit and when. Default
@@ -298,6 +277,9 @@ int main (int argc, char** argv)
//
// [tm]: http://libgit2.github.com/libgit2/#HEAD/group/tag
printf("\n*Tag Parsing*\n");
+ git_tag *tag;
+ const char *tmessage, *tname;
+ git_otype ttype;
// We create an oid for the tag object if we know the SHA and look it up
// the same way that we would a commit (or any other object).
@@ -328,13 +310,16 @@ int main (int argc, char** argv)
// [tp]: http://libgit2.github.com/libgit2/#HEAD/group/tree
printf("\n*Tree Parsing*\n");
+ const git_tree_entry *entry;
+ git_object *objt;
+
// Create the oid and lookup the tree object just like the other objects.
git_oid_fromstr(&oid, "2a741c18ac5ff082a7caaec6e74db3075a1906b5");
git_tree_lookup(&tree, repo, &oid);
// Getting the count of entries in the tree so you can iterate over them
// if you want to.
- cnt = git_tree_entrycount(tree); // 3
+ size_t cnt = git_tree_entrycount(tree); // 3
printf("tree entries: %d\n", (int)cnt);
entry = git_tree_entry_byindex(tree, 0);
@@ -366,6 +351,7 @@ int main (int argc, char** argv)
// [ba]: http://libgit2.github.com/libgit2/#HEAD/group/blob
printf("\n*Blob Parsing*\n");
+ git_blob *blob;
git_oid_fromstr(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08");
git_blob_lookup(&blob, repo, &oid);
@@ -390,6 +376,8 @@ int main (int argc, char** argv)
// [rw]: http://libgit2.github.com/libgit2/#HEAD/group/revwalk
printf("\n*Revwalking*\n");
+ git_revwalk *walk;
+ git_commit *wcommit;
git_oid_fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644");
@@ -405,6 +393,9 @@ int main (int argc, char** argv)
git_revwalk_sorting(walk, GIT_SORT_TOPOLOGICAL | GIT_SORT_REVERSE);
git_revwalk_push(walk, &oid);
+ const git_signature *cauth;
+ const char *cmsg;
+
// Now that we have the starting point pushed onto the walker, we start
// asking for ancestors. It will return them in the sorting order we asked
// for as commit oids. We can then lookup and parse the commited pointed
@@ -436,6 +427,9 @@ int main (int argc, char** argv)
printf("\n*Index Walking*\n");
+ git_index *index;
+ unsigned int i, ecount;
+
// You can either open the index from the standard location in an open
// repository, as we're doing here, or you can open and manipulate any
// index file with `git_index_open_bare()`. The index for the repository
@@ -471,8 +465,12 @@ int main (int argc, char** argv)
// Here we will implement something like `git for-each-ref` simply listing
// out all available references and the object SHA they resolve to.
+ git_strarray ref_list;
git_reference_list(&ref_list, repo);
+ const char *refname;
+ git_reference *ref;
+
// Now that we have the list of reference names, we can lookup each ref
// one at a time and resolve them to the SHA, then print both values out.
for (i = 0; i < ref_list.count; ++i) {
@@ -505,7 +503,13 @@ int main (int argc, char** argv)
printf("\n*Config Listing*\n");
+ const char *email;
+ int32_t j;
+
+ git_config *cfg;
+
// Open a config object so we can read global values from it.
+ char config_path[256];
sprintf(config_path, "%s/config", repo_path);
check_error(git_config_open_ondisk(&cfg, config_path), "opening config");