| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,7 +11,6 @@ | |||
| 11 | 11 | # Maintained. | |
| 12 | 12 | "src/base.cc", | |
| 13 | 13 | "src/wrapper.cc", | |
| 14 | - "src/time.cc", | ||
| 15 | 14 | "src/functions/copy.cc", | |
| 16 | 15 | ||
| 17 | 16 | # Generated files. | |
@@ -63,10 +62,12 @@ | |||
| 63 | 62 | "src/submodule.cc", | |
| 64 | 63 | "src/tag.cc", | |
| 65 | 64 | "src/threads.cc", | |
| 65 | + "src/time.cc", | ||
| 66 | 66 | "src/trace.cc", | |
| 67 | 67 | "src/transport.cc", | |
| 68 | 68 | "src/tree.cc", | |
| 69 | - "src/types.cc", | ||
| 69 | + #"src/tree_entry.cc", | ||
| 70 | + #"src/types.cc", | ||
| 70 | 71 | "src/version.cc", | |
| 71 | 72 | ], | |
| 72 | 73 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -435,7 +435,84 @@ | |||
| 435 | 435 | }, | |
| 436 | 436 | ||
| 437 | 437 | "tree": { | |
| 438 | - "ignore": false | ||
| 438 | + "ignore": false, | ||
| 439 | + | ||
| 440 | + "functions": { | ||
| 441 | + "git_tree_entrycount": { | ||
| 442 | + "ignore": false, | ||
| 443 | + "args": [{ "isSelf": true }] | ||
| 444 | + }, | ||
| 445 | + | ||
| 446 | + "git_tree_lookup": { | ||
| 447 | + "ignore": false, | ||
| 448 | + | ||
| 449 | + "args": [{}, { "isSelf": true }] | ||
| 450 | + }, | ||
| 451 | + | ||
| 452 | + "git_tree_entry_byindex": { | ||
| 453 | + "ignore": false, | ||
| 454 | + "args": [{ "isSelf": true }] | ||
| 455 | + } | ||
| 456 | + | ||
| 457 | + "git_tree_entry_bypath": { | ||
| 458 | + "ignore": false | ||
| 459 | + } | ||
| 460 | + } | ||
| 461 | + }, | ||
| 462 | + | ||
| 463 | + "treebuilder": { | ||
| 464 | + "ignore": false, | ||
| 465 | + "cType": "git_treebuilder", | ||
| 466 | + | ||
| 467 | + "dependencies": [ | ||
| 468 | + "tree.h" | ||
| 469 | + ], | ||
| 470 | + | ||
| 471 | + "fields": [ | ||
| 472 | + { | ||
| 473 | + "name": "entries", | ||
| 474 | + "cType": "git_vector" | ||
| 475 | + }, | ||
| 476 | + { | ||
| 477 | + "name": "entrycount", | ||
| 478 | + "cType": "size_t" | ||
| 479 | + } | ||
| 480 | + ] | ||
| 481 | + }, | ||
| 482 | + | ||
| 483 | + "tree_entry": { | ||
| 484 | + "ignore": true, | ||
| 485 | + | ||
| 486 | + "structType": "git_tree_entry", | ||
| 487 | + "cType": null, | ||
| 488 | + | ||
| 489 | + "dependencies": [ | ||
| 490 | + "../include/tree.h", | ||
| 491 | + "../include/types.h" | ||
| 492 | + ], | ||
| 493 | + | ||
| 494 | + "fields": [ | ||
| 495 | + { | ||
| 496 | + "name": "removed", | ||
| 497 | + "cType": "uint16_t" | ||
| 498 | + }, | ||
| 499 | + { | ||
| 500 | + "name": "attr", | ||
| 501 | + "cType": "uint16_t" | ||
| 502 | + }, | ||
| 503 | + { | ||
| 504 | + "name": "oid", | ||
| 505 | + "cType": "git_oid" | ||
| 506 | + }, | ||
| 507 | + { | ||
| 508 | + "name": "filename_len", | ||
| 509 | + "cType": "size_t" | ||
| 510 | + }, | ||
| 511 | + { | ||
| 512 | + "name": "filename", | ||
| 513 | + "cType": "char *" | ||
| 514 | + } | ||
| 515 | + ] | ||
| 439 | 516 | }, | |
| 440 | 517 | ||
| 441 | 518 | "types": { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -20,6 +20,7 @@ typeMap.__proto__ = { | |||
| 20 | 20 | "const git_index_name_entry *": { | |
| 21 | 21 | cpp: "IndexNameEntry", js: "IndexNameEntry" }, | |
| 22 | 22 | "git_time": { cpp: "GitTime", js: "Time", }, | |
| 23 | + "git_vector": { cpp: "Array", js: "Array", }, | ||
| 23 | 24 | ||
| 24 | 25 | // unsure | |
| 25 | 26 | "uint16_t": { cpp: "Integer", js: "Number" }, | |
@@ -164,6 +165,10 @@ Object.keys(descriptor).forEach(function(fileName, index) { | |||
| 164 | 165 | descriptor.cFunctionName = functionName; | |
| 165 | 166 | descriptor.ignore = functionDescriptor === ident; | |
| 166 | 167 | ||
| 168 | + if (typeof functionDescriptor.ignore === "boolean") { | ||
| 169 | + descriptor.ignore = functionDescriptor.ignore; | ||
| 170 | + } | ||
| 171 | + | ||
| 167 | 172 | var trimmedName = functionName.slice(cType.length + 1); | |
| 168 | 173 | ||
| 169 | 174 | if (trimmedName === "new") { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1314,8 +1314,8 @@ | |||
| 1314 | 1314 | "js": "free" | |
| 1315 | 1315 | }, | |
| 1316 | 1316 | "git_reference__alloc": { | |
| 1317 | - "js": "gitReference_Alloc", | ||
| 1318 | - "cpp": "GitReference_Alloc" | ||
| 1317 | + "cpp": "ReferenceAlloc", | ||
| 1318 | + "js": "referenceAlloc" | ||
| 1319 | 1319 | }, | |
| 1320 | 1320 | "git_refdb *": { | |
| 1321 | 1321 | "cpp": "GitRefdb", | |
@@ -2440,12 +2440,12 @@ | |||
| 2440 | 2440 | "js": "entryDup" | |
| 2441 | 2441 | }, | |
| 2442 | 2442 | "const git_tree_entry *": { | |
| 2443 | - "js": "GitTreeEntry", | ||
| 2444 | - "cpp": "TreeEntry" | ||
| 2443 | + "cpp": "GitTreeEntry", | ||
| 2444 | + "js": "TreeEntry" | ||
| 2445 | 2445 | }, | |
| 2446 | 2446 | "git_tree_entry *": { | |
| 2447 | - "js": "TreeEntry", | ||
| 2448 | - "cpp": "GitTreeEntry" | ||
| 2447 | + "cpp": "GitTreeEntry", | ||
| 2448 | + "js": "TreeEntry" | ||
| 2449 | 2449 | }, | |
| 2450 | 2450 | "git_tree_entry_free": { | |
| 2451 | 2451 | "cpp": "EntryFree", | |
@@ -2516,16 +2516,16 @@ | |||
| 2516 | 2516 | "js": "entryBypath" | |
| 2517 | 2517 | }, | |
| 2518 | 2518 | "git_tree_entry **": { | |
| 2519 | - "js": "TreeEntry", | ||
| 2520 | - "cpp": "GitTreeEntry" | ||
| 2519 | + "cpp": "GitTreeEntry", | ||
| 2520 | + "js": "TreeEntry" | ||
| 2521 | 2521 | }, | |
| 2522 | 2522 | "git_treebuilder_create": { | |
| 2523 | 2523 | "cpp": "UilderCreate", | |
| 2524 | 2524 | "js": "uilderCreate" | |
| 2525 | 2525 | }, | |
| 2526 | 2526 | "git_treebuilder **": { | |
| 2527 | - "js": "TreeBuilder", | ||
| 2528 | - "cpp": "GitTreeBuilder" | ||
| 2527 | + "cpp": "GitTreebuilder", | ||
| 2528 | + "js": "Treebuilder" | ||
| 2529 | 2529 | }, | |
| 2530 | 2530 | "git_tree_walk": { | |
| 2531 | 2531 | "cpp": "Walk", | |
@@ -2556,8 +2556,8 @@ | |||
| 2556 | 2556 | "js": "uilderClear" | |
| 2557 | 2557 | }, | |
| 2558 | 2558 | "git_treebuilder *": { | |
| 2559 | - "js": "TreeBuilder", | ||
| 2560 | - "cpp": "GitTreeBuilder" | ||
| 2559 | + "cpp": "GitTreebuilder", | ||
| 2560 | + "js": "Treebuilder" | ||
| 2561 | 2561 | }, | |
| 2562 | 2562 | "git_treebuilder_entrycount": { | |
| 2563 | 2563 | "cpp": "UilderEntrycount", | |
@@ -2576,8 +2576,8 @@ | |||
| 2576 | 2576 | "js": "uilderInsert" | |
| 2577 | 2577 | }, | |
| 2578 | 2578 | "const git_tree_entry **": { | |
| 2579 | - "js": "TreeEntry", | ||
| 2580 | - "cpp": "GitTreeEntry" | ||
| 2579 | + "cpp": "GitTreeEntry", | ||
| 2580 | + "js": "TreeEntry" | ||
| 2581 | 2581 | }, | |
| 2582 | 2582 | "git_treebuilder_remove": { | |
| 2583 | 2583 | "cpp": "UilderRemove", | |
@@ -8931,5 +8931,41 @@ | |||
| 8931 | 8931 | "const git_time *": { | |
| 8932 | 8932 | "cpp": "GitTime", | |
| 8933 | 8933 | "js": "Time" | |
| 8934 | + }, | ||
| 8935 | + "git_treebuilder": { | ||
| 8936 | + "cpp": "GitTreebuilder", | ||
| 8937 | + "js": "Treebuilder" | ||
| 8938 | + }, | ||
| 8939 | + "const git_treebuilder **": { | ||
| 8940 | + "cpp": "GitTreebuilder", | ||
| 8941 | + "js": "Treebuilder" | ||
| 8942 | + }, | ||
| 8943 | + "const git_treebuilder *": { | ||
| 8944 | + "cpp": "GitTreebuilder", | ||
| 8945 | + "js": "Treebuilder" | ||
| 8946 | + }, | ||
| 8947 | + "git_tree_entry": { | ||
| 8948 | + "cpp": "GitTreeEntry", | ||
| 8949 | + "js": "TreeEntry" | ||
| 8950 | + }, | ||
| 8951 | + "git_reference__alloc *": { | ||
| 8952 | + "cpp": "ReferenceAlloc", | ||
| 8953 | + "js": "referenceAlloc" | ||
| 8954 | + }, | ||
| 8955 | + "const git_reference__alloc *": { | ||
| 8956 | + "cpp": "ReferenceAlloc", | ||
| 8957 | + "js": "referenceAlloc" | ||
| 8958 | + }, | ||
| 8959 | + "git_reference__alloc_symbolic": { | ||
| 8960 | + "cpp": "ReferenceAllocSymbolic", | ||
| 8961 | + "js": "referenceAllocSymbolic" | ||
| 8962 | + }, | ||
| 8963 | + "git_reference__alloc_symbolic *": { | ||
| 8964 | + "cpp": "ReferenceAllocSymbolic", | ||
| 8965 | + "js": "referenceAllocSymbolic" | ||
| 8966 | + }, | ||
| 8967 | + "const git_reference__alloc_symbolic *": { | ||
| 8968 | + "cpp": "ReferenceAllocSymbolic", | ||
| 8969 | + "js": "referenceAllocSymbolic" | ||
| 8934 | 8970 | } | |
| 8935 | 8971 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -23,7 +23,7 @@ require('./lib/index.js'); | |||
| 23 | 23 | require('./lib/repository.js'); | |
| 24 | 24 | require('./lib/reference.js'); | |
| 25 | 25 | require('./lib/revwalk.js'); | |
| 26 | - //require('./lib/tree.js'); | ||
| 26 | + require('./lib/tree.js'); | ||
| 27 | 27 | ||
| 28 | 28 | // Set version | |
| 29 | 29 | exports.version = require('./package').version; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2,6 +2,7 @@ var git = require('../'); | |||
| 2 | 2 | var Commit = git.Commit; | |
| 3 | 3 | var Oid = git.Oid; | |
| 4 | 4 | var events = require('events'); | |
| 5 | + var Tree = require("./tree"); | ||
| 5 | 6 | ||
| 6 | 7 | // Backwards compatibility. | |
| 7 | 8 | Object.defineProperties(Commit.prototype, { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -18,7 +18,7 @@ Object.defineProperty(git, "Repo", { | |||
| 18 | 18 | var oldGetReference = Reference.prototype.lookup, | |
| 19 | 19 | oldGetCommit = Commit.prototype.lookup, | |
| 20 | 20 | oldBlob = Blob.prototype.lookup, | |
| 21 | - oldGetTree = Repo.prototype.getTree, | ||
| 21 | + oldGetTree = Tree.prototype.lookup, | ||
| 22 | 22 | oldGetTag = Repo.prototype.getTag, | |
| 23 | 23 | oldCreateRevwalk = Revwalk.prototype.createRevwalk, | |
| 24 | 24 | oldCreateCommit = Repo.prototype.createCommit, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,12 +1,21 @@ | |||
| 1 | - var git = require('../'), | ||
| 2 | - Tree = git.Tree, | ||
| 3 | - events = require('events'), | ||
| 4 | - path = require('path'); | ||
| 1 | + var git = require('../'); | ||
| 2 | + var Tree = git.Tree; | ||
| 3 | + var TreeEntry = require('./tree_entry'); | ||
| 4 | + var events = require('events'); | ||
| 5 | + var path = require('path'); | ||
| 5 | 6 | ||
| 6 | - var oldEntryByIndex = Tree.prototype.entryByIndex, | ||
| 7 | + var oldEntryByIndex = Tree.prototype.entryByindex, | ||
| 7 | 8 | oldEntryByName = Tree.prototype.entryByName, | |
| 8 | 9 | oldGetEntry = Tree.prototype.getEntry; | |
| 9 | 10 | ||
| 11 | + // Backwards compatibility. | ||
| 12 | + Object.defineProperties(Tree.prototype, { | ||
| 13 | + "size": { | ||
| 14 | + value: Tree.prototype.entrycount, | ||
| 15 | + enumerable: false | ||
| 16 | + } | ||
| 17 | + }); | ||
| 18 | + | ||
| 10 | 19 | /** | |
| 11 | 20 | * Diff two trees | |
| 12 | 21 | * @param {Tree} tree to diff against | |
@@ -101,6 +110,7 @@ Tree.prototype.walk = function(blobsOnly) { | |||
| 101 | 110 | if (error) return errors.push(error); | |
| 102 | 111 | ||
| 103 | 112 | tree.entries().forEach(function (entry) { | |
| 113 | + entry.__proto__ = TreeEntry.prototype; | ||
| 104 | 114 | if (!blobsOnly || entry.isFile()) { | |
| 105 | 115 | event.emit('entry', entry); | |
| 106 | 116 | entries.push(entry); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,94 @@ | |||
| 1 | + var git = require('../'), | ||
| 2 | + TreeEntry = function() {}, | ||
| 3 | + path = require('path'); | ||
| 4 | + | ||
| 5 | + /** | ||
| 6 | + * Refer to vendor/libgit2/include/git2/types.h for filemode definitions. | ||
| 7 | + * | ||
| 8 | + * @readonly | ||
| 9 | + * @enum {Integer} | ||
| 10 | + */ | ||
| 11 | + TreeEntry.FileMode = { | ||
| 12 | + /** 0000000 */ New: 0, | ||
| 13 | + /** 0040000 */ Tree: 16384, | ||
| 14 | + /** 0100644 */ Blob: 33188, | ||
| 15 | + /** 0100755 */ Executable: 33261, | ||
| 16 | + /** 0120000 */ Link: 40960, | ||
| 17 | + /** 0160000 */ Commit: 57344 | ||
| 18 | + }; | ||
| 19 | + | ||
| 20 | + /** | ||
| 21 | + * Is this TreeEntry a blob? (i.e., a file) | ||
| 22 | + * @return {Boolean} | ||
| 23 | + */ | ||
| 24 | + TreeEntry.prototype.isFile = function() { | ||
| 25 | + return this.filemode === TreeEntry.FileMode.Blob || | ||
| 26 | + this.filemode === TreeEntry.FileMode.Executable; | ||
| 27 | + }; | ||
| 28 | + | ||
| 29 | + /** | ||
| 30 | + * Is this TreeEntry a tree? (i.e., a directory) | ||
| 31 | + * @return {Boolean} | ||
| 32 | + */ | ||
| 33 | + TreeEntry.prototype.isTree = function() { | ||
| 34 | + return this.filemode === TreeEntry.FileMode.Tree; | ||
| 35 | + }; | ||
| 36 | + | ||
| 37 | + /** | ||
| 38 | + * Is this TreeEntry a directory? Alias for `isTree` | ||
| 39 | + * @return {Boolean} | ||
| 40 | + */ | ||
| 41 | + TreeEntry.prototype.isDirectory = TreeEntry.prototype.isTree; | ||
| 42 | + | ||
| 43 | + /** | ||
| 44 | + * Is this TreeEntry a blob? Alias for `isFile` | ||
| 45 | + * @return {Boolean} | ||
| 46 | + */ | ||
| 47 | + TreeEntry.prototype.isBlob = TreeEntry.prototype.isFile; | ||
| 48 | + | ||
| 49 | + /** | ||
| 50 | + * Retrieve the SHA for this TreeEntry. | ||
| 51 | + * @return {String} | ||
| 52 | + */ | ||
| 53 | + TreeEntry.prototype.sha = function() { | ||
| 54 | + return this.oid().sha(); | ||
| 55 | + }; | ||
| 56 | + | ||
| 57 | + /** | ||
| 58 | + * Retrieve the tree for this entry. Make sure to call `isTree` first! | ||
| 59 | + * @return {Tree} | ||
| 60 | + */ | ||
| 61 | + TreeEntry.prototype.getTree = function(callback) { | ||
| 62 | + var self = this; | ||
| 63 | + this.parent.repo.getTree(this.oid(), function(error, tree) { | ||
| 64 | + if (error) return callback(error); | ||
| 65 | + | ||
| 66 | + tree.entry = self; | ||
| 67 | + callback(null, tree); | ||
| 68 | + }); | ||
| 69 | + }; | ||
| 70 | + | ||
| 71 | + /** | ||
| 72 | + * Retrieve the tree for this entry. Make sure to call `isTree` first! | ||
| 73 | + * @return {Blob} | ||
| 74 | + */ | ||
| 75 | + TreeEntry.prototype.getBlob = function(callback) { | ||
| 76 | + this.parent.repo.getBlob(this.oid(), callback); | ||
| 77 | + }; | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * Returns the path for this entry. | ||
| 81 | + * @return {String} | ||
| 82 | + */ | ||
| 83 | + TreeEntry.prototype.path = function(callback) { | ||
| 84 | + return path.join(this.parent.path(), this.name()); | ||
| 85 | + }; | ||
| 86 | + | ||
| 87 | + /** | ||
| 88 | + * Alias for `path` | ||
| 89 | + */ | ||
| 90 | + TreeEntry.prototype.toString = function() { | ||
| 91 | + return this.path(); | ||
| 92 | + }; | ||
| 93 | + | ||
| 94 | + module.exports = TreeEntry; | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments