From 89c973948adb01cf10203297c759b68418f8c8b1 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Thu, 12 Feb 2015 11:41:48 -0500 Subject: [PATCH 01/24] Kill it with :fire: --- .gitignore | 2 - TODO.md | 1 - api-viewer/Gruntfile.coffee | 6 - api-viewer/README.md | 0 api-viewer/bower.json | 12 - api-viewer/build/tasks/requirejs.coffee | 17 - api-viewer/dist/source.min.js | 7 - api-viewer/index.html | 14 - api-viewer/package.json | 7 - .../src/components/api-list/api-list.js | 20 - .../src/components/api-list/template.html | 7 - .../src/components/api-viewer/api-viewer.js | 32 - .../src/components/api-viewer/template.html | 1 - api-viewer/src/config.js | 15 - api-viewer/src/index.js | 23 - api-viewer/versions/wip.json | 29579 ---------------- bower.json | 9 - bower_components/combyne/.bower.json | 32 - bower_components/combyne/.npmignore | 11 - bower_components/combyne/LICENSE | 19 - bower_components/combyne/README.md | 563 - bower_components/combyne/bower.json | 22 - bower_components/combyne/dist/combyne.js | 937 - .../combyne/dist/combyne.legacy.js | 937 - bower_components/combyne/lib/compiler.js | 373 - bower_components/combyne/lib/grammar.js | 118 - bower_components/combyne/lib/index.js | 142 - bower_components/combyne/lib/shared/encode.js | 36 - bower_components/combyne/lib/shared/map.js | 87 - .../combyne/lib/shared/register_filter.js | 21 - .../combyne/lib/shared/register_partial.js | 24 - .../combyne/lib/support/array/is_array.js | 29 - .../combyne/lib/support/array/map.js | 52 - .../combyne/lib/support/array/reduce.js | 46 - .../combyne/lib/support/array/some.js | 51 - .../combyne/lib/support/string/trim.js | 25 - .../combyne/lib/support/string/trim_left.js | 25 - bower_components/combyne/lib/tokenizer.js | 78 - bower_components/combyne/lib/tree.js | 652 - .../combyne/lib/utils/create_object.js | 24 - .../combyne/lib/utils/defaults.js | 37 - .../combyne/lib/utils/escape_delimiter.js | 23 - bower_components/combyne/lib/utils/type.js | 21 - bower_components/jquery/.bower.json | 37 - bower_components/jquery/MIT-LICENSE.txt | 21 - bower_components/jquery/bower.json | 27 - bower_components/jquery/dist/jquery.js | 9190 ----- bower_components/jquery/dist/jquery.min.js | 5 - bower_components/jquery/dist/jquery.min.map | 1 - bower_components/jquery/src/ajax.js | 806 - bower_components/jquery/src/ajax/jsonp.js | 89 - bower_components/jquery/src/ajax/load.js | 75 - bower_components/jquery/src/ajax/parseJSON.js | 13 - bower_components/jquery/src/ajax/parseXML.js | 28 - bower_components/jquery/src/ajax/script.js | 64 - bower_components/jquery/src/ajax/var/nonce.js | 5 - .../jquery/src/ajax/var/rquery.js | 3 - bower_components/jquery/src/ajax/xhr.js | 135 - bower_components/jquery/src/attributes.js | 11 - .../jquery/src/attributes/attr.js | 143 - .../jquery/src/attributes/classes.js | 158 - .../jquery/src/attributes/prop.js | 96 - .../jquery/src/attributes/support.js | 35 - bower_components/jquery/src/attributes/val.js | 163 - bower_components/jquery/src/callbacks.js | 205 - bower_components/jquery/src/core.js | 498 - bower_components/jquery/src/core/access.js | 60 - bower_components/jquery/src/core/init.js | 123 - bower_components/jquery/src/core/parseHTML.js | 39 - bower_components/jquery/src/core/ready.js | 97 - .../jquery/src/core/var/rsingleTag.js | 4 - bower_components/jquery/src/css.js | 451 - .../jquery/src/css/addGetHookIf.js | 24 - bower_components/jquery/src/css/curCSS.js | 57 - .../jquery/src/css/defaultDisplay.js | 70 - .../jquery/src/css/hiddenVisibleSelectors.js | 15 - bower_components/jquery/src/css/support.js | 91 - bower_components/jquery/src/css/swap.js | 28 - .../jquery/src/css/var/cssExpand.js | 3 - .../jquery/src/css/var/getStyles.js | 5 - .../jquery/src/css/var/isHidden.js | 13 - .../jquery/src/css/var/rmargin.js | 3 - .../jquery/src/css/var/rnumnonpx.js | 5 - bower_components/jquery/src/data.js | 179 - bower_components/jquery/src/data/Data.js | 181 - bower_components/jquery/src/data/accepts.js | 20 - .../jquery/src/data/var/data_priv.js | 5 - .../jquery/src/data/var/data_user.js | 5 - bower_components/jquery/src/deferred.js | 149 - bower_components/jquery/src/deprecated.js | 13 - bower_components/jquery/src/dimensions.js | 50 - bower_components/jquery/src/effects.js | 649 - bower_components/jquery/src/effects/Tween.js | 114 - .../jquery/src/effects/animatedSelector.js | 13 - bower_components/jquery/src/event.js | 868 - bower_components/jquery/src/event/alias.js | 39 - bower_components/jquery/src/event/support.js | 9 - bower_components/jquery/src/exports/amd.js | 24 - bower_components/jquery/src/exports/global.js | 32 - bower_components/jquery/src/intro.js | 44 - bower_components/jquery/src/jquery.js | 36 - bower_components/jquery/src/manipulation.js | 582 - .../jquery/src/manipulation/_evalUrl.js | 18 - .../jquery/src/manipulation/support.js | 31 - .../src/manipulation/var/rcheckableType.js | 3 - bower_components/jquery/src/offset.js | 204 - bower_components/jquery/src/outro.js | 1 - bower_components/jquery/src/queue.js | 142 - bower_components/jquery/src/queue/delay.js | 22 - .../jquery/src/selector-native.js | 172 - .../jquery/src/selector-sizzle.js | 14 - bower_components/jquery/src/selector.js | 1 - bower_components/jquery/src/serialize.js | 111 - .../jquery/src/sizzle/dist/sizzle.js | 2044 -- .../jquery/src/sizzle/dist/sizzle.min.js | 3 - .../jquery/src/sizzle/dist/sizzle.min.map | 1 - bower_components/jquery/src/traversing.js | 200 - .../jquery/src/traversing/findFilter.js | 100 - .../src/traversing/var/rneedsContext.js | 6 - bower_components/jquery/src/var/arr.js | 3 - bower_components/jquery/src/var/class2type.js | 4 - bower_components/jquery/src/var/concat.js | 5 - bower_components/jquery/src/var/hasOwn.js | 5 - bower_components/jquery/src/var/indexOf.js | 5 - bower_components/jquery/src/var/pnum.js | 3 - bower_components/jquery/src/var/push.js | 5 - bower_components/jquery/src/var/rnotwhite.js | 3 - bower_components/jquery/src/var/slice.js | 5 - .../jquery/src/var/strundefined.js | 3 - bower_components/jquery/src/var/support.js | 4 - bower_components/jquery/src/var/toString.js | 5 - bower_components/jquery/src/wrap.js | 78 - bower_components/underscore/.bower.json | 31 - bower_components/underscore/.eslintrc | 35 - bower_components/underscore/.gitignore | 2 - bower_components/underscore/LICENSE | 23 - bower_components/underscore/README.md | 22 - bower_components/underscore/bower.json | 7 - bower_components/underscore/component.json | 10 - bower_components/underscore/package.json | 41 - bower_components/underscore/underscore-min.js | 6 - .../underscore/underscore-min.map | 1 - bower_components/underscore/underscore.js | 1415 - index.html | 228 - jsdoc-template/README.md | 1 - jsdoc-template/publish.js | 508 - jsdoc-template/static/img/boston.gif | Bin 3782 -> 0 bytes jsdoc-template/static/img/nz.PNG | Bin 5778 -> 0 bytes .../static/scripts/highlight.pack.js | 1 - jsdoc-template/static/styles/common.css | 404 - jsdoc-template/static/styles/ir_black.css | 102 - jsdoc-template/tmpl/container.tmpl | 154 - jsdoc-template/tmpl/details.tmpl | 98 - jsdoc-template/tmpl/example.tmpl | 2 - jsdoc-template/tmpl/examples.tmpl | 11 - jsdoc-template/tmpl/exceptions.tmpl | 19 - jsdoc-template/tmpl/fires.tmpl | 4 - jsdoc-template/tmpl/layout.tmpl | 108 - jsdoc-template/tmpl/mainpage.tmpl | 14 - jsdoc-template/tmpl/members.tmpl | 22 - jsdoc-template/tmpl/method.tmpl | 76 - jsdoc-template/tmpl/params.tmpl | 108 - jsdoc-template/tmpl/properties.tmpl | 107 - jsdoc-template/tmpl/returns.tmpl | 19 - jsdoc-template/tmpl/source.tmpl | 8 - jsdoc-template/tmpl/tutorial.tmpl | 19 - jsdoc-template/tmpl/type.tmpl | 7 - scripts/api.js | 111 - scripts/demo.js | 74 - scripts/prism.js | 5 - styles/api.css | 203 - styles/common.css | 193 - styles/demo.css | 39 - styles/prism.css | 133 - 174 files changed, 57617 deletions(-) delete mode 100644 .gitignore delete mode 100644 TODO.md delete mode 100644 api-viewer/Gruntfile.coffee delete mode 100644 api-viewer/README.md delete mode 100644 api-viewer/bower.json delete mode 100644 api-viewer/build/tasks/requirejs.coffee delete mode 100644 api-viewer/dist/source.min.js delete mode 100644 api-viewer/index.html delete mode 100644 api-viewer/package.json delete mode 100644 api-viewer/src/components/api-list/api-list.js delete mode 100644 api-viewer/src/components/api-list/template.html delete mode 100644 api-viewer/src/components/api-viewer/api-viewer.js delete mode 100644 api-viewer/src/components/api-viewer/template.html delete mode 100644 api-viewer/src/config.js delete mode 100644 api-viewer/src/index.js delete mode 100644 api-viewer/versions/wip.json delete mode 100644 bower.json delete mode 100644 bower_components/combyne/.bower.json delete mode 100644 bower_components/combyne/.npmignore delete mode 100644 bower_components/combyne/LICENSE delete mode 100644 bower_components/combyne/README.md delete mode 100644 bower_components/combyne/bower.json delete mode 100644 bower_components/combyne/dist/combyne.js delete mode 100644 bower_components/combyne/dist/combyne.legacy.js delete mode 100644 bower_components/combyne/lib/compiler.js delete mode 100644 bower_components/combyne/lib/grammar.js delete mode 100644 bower_components/combyne/lib/index.js delete mode 100644 bower_components/combyne/lib/shared/encode.js delete mode 100644 bower_components/combyne/lib/shared/map.js delete mode 100644 bower_components/combyne/lib/shared/register_filter.js delete mode 100644 bower_components/combyne/lib/shared/register_partial.js delete mode 100644 bower_components/combyne/lib/support/array/is_array.js delete mode 100644 bower_components/combyne/lib/support/array/map.js delete mode 100644 bower_components/combyne/lib/support/array/reduce.js delete mode 100644 bower_components/combyne/lib/support/array/some.js delete mode 100644 bower_components/combyne/lib/support/string/trim.js delete mode 100644 bower_components/combyne/lib/support/string/trim_left.js delete mode 100644 bower_components/combyne/lib/tokenizer.js delete mode 100644 bower_components/combyne/lib/tree.js delete mode 100644 bower_components/combyne/lib/utils/create_object.js delete mode 100644 bower_components/combyne/lib/utils/defaults.js delete mode 100644 bower_components/combyne/lib/utils/escape_delimiter.js delete mode 100644 bower_components/combyne/lib/utils/type.js delete mode 100644 bower_components/jquery/.bower.json delete mode 100644 bower_components/jquery/MIT-LICENSE.txt delete mode 100644 bower_components/jquery/bower.json delete mode 100644 bower_components/jquery/dist/jquery.js delete mode 100644 bower_components/jquery/dist/jquery.min.js delete mode 100644 bower_components/jquery/dist/jquery.min.map delete mode 100644 bower_components/jquery/src/ajax.js delete mode 100644 bower_components/jquery/src/ajax/jsonp.js delete mode 100644 bower_components/jquery/src/ajax/load.js delete mode 100644 bower_components/jquery/src/ajax/parseJSON.js delete mode 100644 bower_components/jquery/src/ajax/parseXML.js delete mode 100644 bower_components/jquery/src/ajax/script.js delete mode 100644 bower_components/jquery/src/ajax/var/nonce.js delete mode 100644 bower_components/jquery/src/ajax/var/rquery.js delete mode 100644 bower_components/jquery/src/ajax/xhr.js delete mode 100644 bower_components/jquery/src/attributes.js delete mode 100644 bower_components/jquery/src/attributes/attr.js delete mode 100644 bower_components/jquery/src/attributes/classes.js delete mode 100644 bower_components/jquery/src/attributes/prop.js delete mode 100644 bower_components/jquery/src/attributes/support.js delete mode 100644 bower_components/jquery/src/attributes/val.js delete mode 100644 bower_components/jquery/src/callbacks.js delete mode 100644 bower_components/jquery/src/core.js delete mode 100644 bower_components/jquery/src/core/access.js delete mode 100644 bower_components/jquery/src/core/init.js delete mode 100644 bower_components/jquery/src/core/parseHTML.js delete mode 100644 bower_components/jquery/src/core/ready.js delete mode 100644 bower_components/jquery/src/core/var/rsingleTag.js delete mode 100644 bower_components/jquery/src/css.js delete mode 100644 bower_components/jquery/src/css/addGetHookIf.js delete mode 100644 bower_components/jquery/src/css/curCSS.js delete mode 100644 bower_components/jquery/src/css/defaultDisplay.js delete mode 100644 bower_components/jquery/src/css/hiddenVisibleSelectors.js delete mode 100644 bower_components/jquery/src/css/support.js delete mode 100644 bower_components/jquery/src/css/swap.js delete mode 100644 bower_components/jquery/src/css/var/cssExpand.js delete mode 100644 bower_components/jquery/src/css/var/getStyles.js delete mode 100644 bower_components/jquery/src/css/var/isHidden.js delete mode 100644 bower_components/jquery/src/css/var/rmargin.js delete mode 100644 bower_components/jquery/src/css/var/rnumnonpx.js delete mode 100644 bower_components/jquery/src/data.js delete mode 100644 bower_components/jquery/src/data/Data.js delete mode 100644 bower_components/jquery/src/data/accepts.js delete mode 100644 bower_components/jquery/src/data/var/data_priv.js delete mode 100644 bower_components/jquery/src/data/var/data_user.js delete mode 100644 bower_components/jquery/src/deferred.js delete mode 100644 bower_components/jquery/src/deprecated.js delete mode 100644 bower_components/jquery/src/dimensions.js delete mode 100644 bower_components/jquery/src/effects.js delete mode 100644 bower_components/jquery/src/effects/Tween.js delete mode 100644 bower_components/jquery/src/effects/animatedSelector.js delete mode 100644 bower_components/jquery/src/event.js delete mode 100644 bower_components/jquery/src/event/alias.js delete mode 100644 bower_components/jquery/src/event/support.js delete mode 100644 bower_components/jquery/src/exports/amd.js delete mode 100644 bower_components/jquery/src/exports/global.js delete mode 100644 bower_components/jquery/src/intro.js delete mode 100644 bower_components/jquery/src/jquery.js delete mode 100644 bower_components/jquery/src/manipulation.js delete mode 100644 bower_components/jquery/src/manipulation/_evalUrl.js delete mode 100644 bower_components/jquery/src/manipulation/support.js delete mode 100644 bower_components/jquery/src/manipulation/var/rcheckableType.js delete mode 100644 bower_components/jquery/src/offset.js delete mode 100644 bower_components/jquery/src/outro.js delete mode 100644 bower_components/jquery/src/queue.js delete mode 100644 bower_components/jquery/src/queue/delay.js delete mode 100644 bower_components/jquery/src/selector-native.js delete mode 100644 bower_components/jquery/src/selector-sizzle.js delete mode 100644 bower_components/jquery/src/selector.js delete mode 100644 bower_components/jquery/src/serialize.js delete mode 100644 bower_components/jquery/src/sizzle/dist/sizzle.js delete mode 100644 bower_components/jquery/src/sizzle/dist/sizzle.min.js delete mode 100644 bower_components/jquery/src/sizzle/dist/sizzle.min.map delete mode 100644 bower_components/jquery/src/traversing.js delete mode 100644 bower_components/jquery/src/traversing/findFilter.js delete mode 100644 bower_components/jquery/src/traversing/var/rneedsContext.js delete mode 100644 bower_components/jquery/src/var/arr.js delete mode 100644 bower_components/jquery/src/var/class2type.js delete mode 100644 bower_components/jquery/src/var/concat.js delete mode 100644 bower_components/jquery/src/var/hasOwn.js delete mode 100644 bower_components/jquery/src/var/indexOf.js delete mode 100644 bower_components/jquery/src/var/pnum.js delete mode 100644 bower_components/jquery/src/var/push.js delete mode 100644 bower_components/jquery/src/var/rnotwhite.js delete mode 100644 bower_components/jquery/src/var/slice.js delete mode 100644 bower_components/jquery/src/var/strundefined.js delete mode 100644 bower_components/jquery/src/var/support.js delete mode 100644 bower_components/jquery/src/var/toString.js delete mode 100644 bower_components/jquery/src/wrap.js delete mode 100644 bower_components/underscore/.bower.json delete mode 100644 bower_components/underscore/.eslintrc delete mode 100644 bower_components/underscore/.gitignore delete mode 100644 bower_components/underscore/LICENSE delete mode 100644 bower_components/underscore/README.md delete mode 100644 bower_components/underscore/bower.json delete mode 100644 bower_components/underscore/component.json delete mode 100644 bower_components/underscore/package.json delete mode 100644 bower_components/underscore/underscore-min.js delete mode 100644 bower_components/underscore/underscore-min.map delete mode 100644 bower_components/underscore/underscore.js delete mode 100644 index.html delete mode 100644 jsdoc-template/README.md delete mode 100644 jsdoc-template/publish.js delete mode 100644 jsdoc-template/static/img/boston.gif delete mode 100644 jsdoc-template/static/img/nz.PNG delete mode 100644 jsdoc-template/static/scripts/highlight.pack.js delete mode 100644 jsdoc-template/static/styles/common.css delete mode 100644 jsdoc-template/static/styles/ir_black.css delete mode 100644 jsdoc-template/tmpl/container.tmpl delete mode 100644 jsdoc-template/tmpl/details.tmpl delete mode 100644 jsdoc-template/tmpl/example.tmpl delete mode 100644 jsdoc-template/tmpl/examples.tmpl delete mode 100644 jsdoc-template/tmpl/exceptions.tmpl delete mode 100644 jsdoc-template/tmpl/fires.tmpl delete mode 100644 jsdoc-template/tmpl/layout.tmpl delete mode 100644 jsdoc-template/tmpl/mainpage.tmpl delete mode 100644 jsdoc-template/tmpl/members.tmpl delete mode 100644 jsdoc-template/tmpl/method.tmpl delete mode 100644 jsdoc-template/tmpl/params.tmpl delete mode 100644 jsdoc-template/tmpl/properties.tmpl delete mode 100644 jsdoc-template/tmpl/returns.tmpl delete mode 100644 jsdoc-template/tmpl/source.tmpl delete mode 100644 jsdoc-template/tmpl/tutorial.tmpl delete mode 100644 jsdoc-template/tmpl/type.tmpl delete mode 100644 scripts/api.js delete mode 100644 scripts/demo.js delete mode 100644 scripts/prism.js delete mode 100644 styles/api.css delete mode 100644 styles/common.css delete mode 100644 styles/demo.css delete mode 100644 styles/prism.css diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cf2e9c3..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/api-viewer/bower_components/ -/api-viewer/node_modules/ diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 3928020..0000000 --- a/TODO.md +++ /dev/null @@ -1 +0,0 @@ -- [ ] Start demo with HELP displayed so that available commands are known. diff --git a/api-viewer/Gruntfile.coffee b/api-viewer/Gruntfile.coffee deleted file mode 100644 index 18bc9bf..0000000 --- a/api-viewer/Gruntfile.coffee +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = -> - @loadTasks "build/tasks" - - @registerTask "default", [ - "requirejs" - ] diff --git a/api-viewer/README.md b/api-viewer/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/api-viewer/bower.json b/api-viewer/bower.json deleted file mode 100644 index b4bee49..0000000 --- a/api-viewer/bower.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "api-viewer", - "versions": "0.1.0", - "dependencies": { - "combyne-amd-loader": "~0.1.0", - "requirejs": "~2.1.13", - "webapp": "git@github.com:webapp/library.git" - }, - "devDependencies": { - "almond": "~0.2.9" - } -} diff --git a/api-viewer/build/tasks/requirejs.coffee b/api-viewer/build/tasks/requirejs.coffee deleted file mode 100644 index bf0b8db..0000000 --- a/api-viewer/build/tasks/requirejs.coffee +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = -> - @loadNpmTasks "grunt-contrib-requirejs" - - @config "requirejs", - release: - options: - mainConfigFile: "src/config.js" - baseUrl: "src" - include: ["webapp/config"] - insertRequire: ["./index"] - findNestedDependencies: true - out: "dist/source.min.js" - optimize: "uglify2" - name: "almond" - wrap: true - paths: - "almond": "../bower_components/almond/almond" diff --git a/api-viewer/dist/source.min.js b/api-viewer/dist/source.min.js deleted file mode 100644 index 2752c5f..0000000 --- a/api-viewer/dist/source.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved. - * Available via the MIT or new BSD license. - * see: http://github.com/jrburke/almond for details - */ - -!function(){var n,e,i;!function(r){function t(n,e){return v.call(n,e)}function o(n,e){var i,r,t,o,c,s,f,u,l,p,a,d=e&&e.split("/"),m=j.map,g=m&&m["*"]||{};if(n&&"."===n.charAt(0))if(e){for(d=d.slice(0,d.length-1),n=n.split("/"),c=n.length-1,j.nodeIdCompat&&x.test(n[c])&&(n[c]=n[c].replace(x,"")),n=d.concat(n),l=0;l0&&(n.splice(l-1,2),l-=2)}n=n.join("/")}else 0===n.indexOf("./")&&(n=n.substring(2));if((d||g)&&m){for(i=n.split("/"),l=i.length;l>0;l-=1){if(r=i.slice(0,l).join("/"),d)for(p=d.length;p>0;p-=1)if(t=m[d.slice(0,p).join("/")],t&&(t=t[r])){o=t,s=l;break}if(o)break;!f&&g&&g[r]&&(f=g[r],u=l)}!o&&f&&(o=f,s=u),o&&(i.splice(0,s,o),n=i.join("/"))}return n}function c(n,e){return function(){return d.apply(r,w.call(arguments,0).concat([n,e]))}}function s(n){return function(e){return o(e,n)}}function f(n){return function(e){h[n]=e}}function u(n){if(t(b,n)){var e=b[n];delete b[n],y[n]=!0,a.apply(r,e)}if(!t(h,n)&&!t(y,n))throw new Error("No "+n);return h[n]}function l(n){var e,i=n?n.indexOf("!"):-1;return i>-1&&(e=n.substring(0,i),n=n.substring(i+1,n.length)),[e,n]}function p(n){return function(){return j&&j.config&&j.config[n]||{}}}var a,d,m,g,h={},b={},j={},y={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;m=function(n,e){var i,r=l(n),t=r[0];return n=r[1],t&&(t=o(t,e),i=u(t)),t?n=i&&i.normalize?i.normalize(n,s(e)):o(n,e):(n=o(n,e),r=l(n),t=r[0],n=r[1],t&&(i=u(t))),{f:t?t+"!"+n:n,n:n,pr:t,p:i}},g={require:function(n){return c(n)},exports:function(n){var e=h[n];return"undefined"!=typeof e?e:h[n]={}},module:function(n){return{id:n,uri:"",exports:h[n],config:p(n)}}},a=function(n,e,i,o){var s,l,p,a,d,j,v=[],w=typeof i;if(o=o||n,"undefined"===w||"function"===w){for(e=!e.length&&i.length?["require","exports","module"]:e,d=0;d - - - - - API Viewer - - - - - - - - diff --git a/api-viewer/package.json b/api-viewer/package.json deleted file mode 100644 index 5e76867..0000000 --- a/api-viewer/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "api-viewer", - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-requirejs": "^0.4.4" - } -} diff --git a/api-viewer/src/components/api-list/api-list.js b/api-viewer/src/components/api-list/api-list.js deleted file mode 100644 index 87e5b74..0000000 --- a/api-viewer/src/components/api-list/api-list.js +++ /dev/null @@ -1,20 +0,0 @@ -define(function(require, exports, module) { - "use strict"; - - var Component = require("webapp/component"); - var template = require("template!./template"); - - var ApiList = Component.extend({ - template: template, - - initialize: function() { - this.channel.subscribe(this.render, this); - }, - - afterRender: function() { - console.log("here"); - } - }); - - module.exports = ApiList; -}); diff --git a/api-viewer/src/components/api-list/template.html b/api-viewer/src/components/api-list/template.html deleted file mode 100644 index c27e7da..0000000 --- a/api-viewer/src/components/api-list/template.html +++ /dev/null @@ -1,7 +0,0 @@ -
    -{%each%} -
  • -

    {{jsClassName}}

    -
  • -{%endeach%} -
diff --git a/api-viewer/src/components/api-viewer/api-viewer.js b/api-viewer/src/components/api-viewer/api-viewer.js deleted file mode 100644 index 74f2864..0000000 --- a/api-viewer/src/components/api-viewer/api-viewer.js +++ /dev/null @@ -1,32 +0,0 @@ -define(function(require, exports, module) { - "use strict"; - - var $ = require("jquery"); - var Component = require("webapp/component"); - var Channel = require("webapp/channel"); - var ApiList = require("../api-list/api-list"); - var template = require("template!./template"); - - Component.register(ApiList, "api-list"); - - var ApiViewer = Component.extend({ - template: template, - channel: "api-viewer", - - afterRender: function() { - ApiList.activateAll(this.$el); - }, - - getApi: function(version) { - return $.getJSON("/api-viewer/versions/" + version + ".json"); - }, - - initialize: function() { - this.channel.subscribe("version", function(value) { - this.getApi(value).then(this.channel.publish.bind(this.channel)); - }, this); - } - }); - - module.exports = ApiViewer; -}); diff --git a/api-viewer/src/components/api-viewer/template.html b/api-viewer/src/components/api-viewer/template.html deleted file mode 100644 index cd7b724..0000000 --- a/api-viewer/src/components/api-viewer/template.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/api-viewer/src/config.js b/api-viewer/src/config.js deleted file mode 100644 index 4d12a3a..0000000 --- a/api-viewer/src/config.js +++ /dev/null @@ -1,15 +0,0 @@ -require.config({ - packages: [{ - "name": "webapp", - "main": "index.js", - "location": "../bower_components/webapp/lib" - }], - - paths: { - "bower_components": "../bower_components", - "combyne": "../bower_components/combyne/dist/combyne", - "template": "../bower_components/combyne-amd-loader/loader" - }, - - deps: ["webapp/config"] -}); diff --git a/api-viewer/src/index.js b/api-viewer/src/index.js deleted file mode 100644 index ea3ebc2..0000000 --- a/api-viewer/src/index.js +++ /dev/null @@ -1,23 +0,0 @@ -define(function(require, exports, module) { - "use strict"; - - require("webapp/config"); - - var Component = require("webapp/component"); - var ApiViewer = require("./components/api-viewer/api-viewer"); - - Component.configure({ - fetchTemplate: function(template) { - return template; - }, - - renderTemplate: function(template, context) { - return template.render(context); - } - }); - - // Register the components for this application. - Component.register(ApiViewer, "api-viewer").activateAll(); - - module.exports = ApiViewer; -}); diff --git a/api-viewer/versions/wip.json b/api-viewer/versions/wip.json deleted file mode 100644 index c012028..0000000 --- a/api-viewer/versions/wip.json +++ /dev/null @@ -1,29579 +0,0 @@ -[ - { - "functions": [ - { - "type": "function", - "file": "attr.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "values", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "attr", - "cFunctionName": "git_attr_add_macro", - "cppFunctionName": "AddMacro", - "jsFunctionName": "addMacro", - "cppClassName": "GitAttr" - }, - { - "type": "function", - "file": "attr.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "attr", - "cFunctionName": "git_attr_cache_flush", - "cppFunctionName": "CacheFlush", - "jsFunctionName": "cacheFlush", - "cppClassName": "GitAttr" - }, - { - "type": "function", - "file": "attr.h", - "args": [ - { - "name": "value_out", - "type": "const char **", - "comment": "Output of the value of the attribute. Use the GIT_ATTR_...\n macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just\n use the string value for attributes set to a value. You\n should NOT modify or free this value.", - "cType": "const char **", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository containing the path.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "A combination of GIT_ATTR_CHECK... flags.", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "The path to check for attributes. Relative paths are\n interpreted relative to the repo root. The file does\n not have to exist, but if it does not, then it will be\n treated as a plain file (not a directory).", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of the attribute to look up.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "attr", - "cFunctionName": "git_attr_get", - "cppFunctionName": "Get", - "jsFunctionName": "get", - "isAsync": true, - "cppClassName": "GitAttr" - }, - { - "type": "function", - "file": "attr.h", - "args": [ - { - "name": "values_out", - "type": "const char **", - "comment": "An array of num_attr entries that will have string\n pointers written into it for the values of the attributes.\n You should not modify or free the values that are written\n into this array (although of course, you should free the\n array itself if you allocated it).", - "cType": "const char **", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository containing the path.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "A combination of GIT_ATTR_CHECK... flags.", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "The path inside the repo to check attributes. This\n does not have to exist, but if it does not, then\n it will be treated as a plain file (i.e. not a directory).", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "num_attr", - "type": "size_t", - "comment": "The number of attributes being looked up", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "names", - "type": "const char **", - "comment": "An array of num_attr strings containing attribute names.", - "cType": "const char **", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "attr", - "cFunctionName": "git_attr_get_many", - "cppFunctionName": "GetMany", - "jsFunctionName": "getMany", - "cppClassName": "GitAttr" - } - ], - "type": "class", - "cType": null, - "typeName": "attr", - "cppClassName": "GitAttr", - "jsClassName": "Attr", - "filename": "attr", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "attr" - }, - { - "functions": [ - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "out", - "type": "git_blame **", - "comment": "pointer that will receive the resulting blame data", - "cType": "git_blame **", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": true, - "isSelf": false - }, - { - "name": "reference", - "type": "git_blame *", - "comment": "cached blame from the history of the file (usually the output\n from git_blame_file)", - "cType": "git_blame *", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": false, - "isSelf": true - }, - { - "name": "buffer", - "type": "const char *", - "comment": "the (possibly) modified contents of the file", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer_len", - "type": "size_t", - "comment": "number of valid bytes in the buffer", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code. (use giterr_last for information\n about the error)", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "cFunctionName": "git_blame_buffer", - "cppFunctionName": "Buffer", - "jsFunctionName": "buffer", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitBlame" - }, - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "out", - "type": "git_blame **", - "comment": "pointer that will receive the blame object", - "cType": "git_blame **", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository whose history is to be walked", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "path to file to consider", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "options", - "type": "git_blame_options *", - "comment": "options for the blame operation. If NULL, this is treated as\n though GIT_BLAME_OPTIONS_INIT were passed.", - "cType": "git_blame_options *", - "cppClassName": "GitBlameOptions", - "jsClassName": "BlameOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code. (use giterr_last for information\n about the error.)", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_blame_file-2" - ] - }, - "cFunctionName": "git_blame_file", - "cppFunctionName": "File", - "jsFunctionName": "file", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitBlame" - }, - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "blame", - "type": "git_blame *", - "comment": "the blame structure to query", - "cType": "git_blame *", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": false, - "isSelf": true - }, - { - "name": "index", - "type": "uint32_t", - "comment": "index of the hunk to retrieve", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_blame_hunk *", - "comment": " the hunk at the given index, or NULL on error", - "cType": "const git_blame_hunk *", - "cppClassName": "GitBlameHunk", - "jsClassName": "BlameHunk", - "isLibgitType": true, - "isEnum": false, - "fields": { - "boundary": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "cFunctionName": "git_blame_get_hunk_byindex", - "cppFunctionName": "GetHunkByindex", - "jsFunctionName": "getHunkByindex", - "isPrototypeMethod": true, - "cppClassName": "GitBlame" - }, - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "blame", - "type": "git_blame *", - "comment": "the blame structure to query", - "cType": "git_blame *", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": false, - "isSelf": true - }, - { - "name": "lineno", - "type": "uint32_t", - "comment": "the (1-based) line number to find a hunk for", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_blame_hunk *", - "comment": " the hunk that contains the given line, or NULL on error", - "cType": "const git_blame_hunk *", - "cppClassName": "GitBlameHunk", - "jsClassName": "BlameHunk", - "isLibgitType": true, - "isEnum": false, - "fields": { - "boundary": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_blame_get_hunk_byline-1" - ] - }, - "cFunctionName": "git_blame_get_hunk_byline", - "cppFunctionName": "GetHunkByline", - "jsFunctionName": "getHunkByline", - "isPrototypeMethod": true, - "cppClassName": "GitBlame" - }, - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "blame", - "type": "git_blame *", - "comment": null, - "cType": "git_blame *", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "uint32_t", - "comment": null, - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "cFunctionName": "git_blame_get_hunk_count", - "cppFunctionName": "GetHunkCount", - "jsFunctionName": "getHunkCount", - "isPrototypeMethod": true, - "cppClassName": "GitBlame" - }, - { - "type": "function", - "file": "blame.h", - "args": [ - { - "name": "opts", - "type": "git_blame_options *", - "comment": "The `git_blame_options` struct to initialize", - "cType": "git_blame_options *", - "cppClassName": "GitBlameOptions", - "jsClassName": "BlameOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_BLAME_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blame", - "cFunctionName": "git_blame_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitBlame" - } - ], - "type": "class", - "cType": "git_blame", - "typeName": "blame", - "cppClassName": "GitBlame", - "jsClassName": "Blame", - "filename": "blame", - "isLibgitType": true, - "dependencies": [ - "../include/blame.h", - "../include/repository.h", - "../include/blame_options.h", - "../include/blame_hunk.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "freeFunctionName": "git_blame_free", - "name": "blame" - }, - { - "typeName": "blame_flag", - "type": "enum", - "cType": "git_blame_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_BLAME_NORMAL", - "value": 0, - "JsName": "NORMAL" - }, - { - "name": "GIT_BLAME_TRACK_COPIES_SAME_FILE", - "value": 1, - "JsName": "TRACK_COPIES_SAME_FILE" - }, - { - "name": "GIT_BLAME_TRACK_COPIES_SAME_COMMIT_MOVES", - "value": 2, - "JsName": "TRACK_COPIES_SAME_COMMIT_MOVES" - }, - { - "name": "GIT_BLAME_TRACK_COPIES_SAME_COMMIT_COPIES", - "value": 4, - "JsName": "TRACK_COPIES_SAME_COMMIT_COPIES" - }, - { - "name": "GIT_BLAME_TRACK_COPIES_ANY_COMMIT_COPIES", - "value": 8, - "JsName": "TRACK_COPIES_ANY_COMMIT_COPIES" - }, - { - "name": "GIT_BLAME_FIRST_PARENT", - "value": 16, - "JsName": "FIRST_PARENT" - } - ], - "owner": "Blame", - "JsName": "FLAG" - }, - { - "type": "class", - "value": "git_blame_hunk", - "file": "blame.h", - "fields": [ - { - "type": "uint16_t", - "name": "lines_in_hunk", - "cType": "uint16_t", - "cppFunctionName": "LinesInHunk", - "jsFunctionName": "linesInHunk", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_oid", - "name": "final_commit_id", - "cType": "git_oid", - "cppFunctionName": "FinalCommitId", - "jsFunctionName": "finalCommitId", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "uint16_t", - "name": "final_start_line_number", - "cType": "uint16_t", - "cppFunctionName": "FinalStartLineNumber", - "jsFunctionName": "finalStartLineNumber", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_signature *", - "name": "final_signature", - "cType": "git_signature *", - "cppFunctionName": "FinalSignature", - "jsFunctionName": "finalSignature", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - } - }, - { - "type": "git_oid", - "name": "orig_commit_id", - "cType": "git_oid", - "cppFunctionName": "OrigCommitId", - "jsFunctionName": "origCommitId", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "const char *", - "name": "orig_path", - "cType": "const char *", - "cppFunctionName": "OrigPath", - "jsFunctionName": "origPath", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "orig_start_line_number", - "cType": "uint16_t", - "cppFunctionName": "OrigStartLineNumber", - "jsFunctionName": "origStartLineNumber", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_signature *", - "name": "orig_signature", - "cType": "git_signature *", - "cppFunctionName": "OrigSignature", - "jsFunctionName": "origSignature", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - } - } - ], - "used": { - "returns": [ - "git_blame_get_hunk_byindex", - "git_blame_get_hunk_byline" - ], - "needs": [] - }, - "typeName": "blame_hunk", - "cType": "git_blame_hunk", - "functions": [], - "cppClassName": "GitBlameHunk", - "jsClassName": "BlameHunk", - "filename": "blame_hunk", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h", - "../include/signature.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "blame_hunk" - }, - { - "type": "struct", - "value": "git_blame_options", - "file": "blame.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint32_t", - "name": "flags", - "cType": "uint32_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "min_match_characters", - "cType": "uint16_t", - "cppFunctionName": "MinMatchCharacters", - "jsFunctionName": "minMatchCharacters", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_oid", - "name": "newest_commit", - "cType": "git_oid", - "cppFunctionName": "NewestCommit", - "jsFunctionName": "newestCommit", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "git_oid", - "name": "oldest_commit", - "cType": "git_oid", - "cppFunctionName": "OldestCommit", - "jsFunctionName": "oldestCommit", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "uint32_t", - "name": "min_line", - "cType": "uint32_t", - "cppFunctionName": "MinLine", - "jsFunctionName": "minLine", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint32_t", - "name": "max_line", - "cType": "uint32_t", - "cppFunctionName": "MaxLine", - "jsFunctionName": "maxLine", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_blame_file", - "git_blame_init_options" - ] - }, - "typeName": "blame_options", - "cType": "git_blame_options", - "functions": [], - "cppClassName": "GitBlameOptions", - "jsClassName": "BlameOptions", - "filename": "blame_options", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "blame_options" - }, - { - "type": "class", - "value": "git_blob", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_blob_filtered_content", - "git_blob_free", - "git_blob_id", - "git_blob_is_binary", - "git_blob_lookup", - "git_blob_lookup_prefix", - "git_blob_owner", - "git_blob_rawcontent", - "git_blob_rawsize", - "git_diff_blob_to_buffer", - "git_diff_blobs", - "git_filter_list_apply_to_blob", - "git_filter_list_load", - "git_patch_from_blob_and_buffer", - "git_patch_from_blobs" - ] - }, - "typeName": "blob", - "cType": "git_blob", - "functions": [ - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": "return the id of the written blob", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where to blob will be written", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer", - "type": "const void *", - "comment": "data to be written into the blob", - "cType": "const void *", - "cppClassName": "Buffer", - "jsClassName": "Buffer", - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "length of the data", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_create_frombuffer", - "cppFunctionName": "CreateFrombuffer", - "jsFunctionName": "createFrombuffer", - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": "return the id of the written blob", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where the blob will be written.\n\tthis repository can be bare or not", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "file from which the blob will be created", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_create_fromdisk", - "cppFunctionName": "CreateFromdisk", - "jsFunctionName": "createFromdisk", - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": "return the id of the written blob", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where the blob will be written.\n\tthis repository cannot be bare", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "relative_path", - "type": "const char *", - "comment": "file from which the blob will be created,\n\trelative to the repository's working dir", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_create_fromworkdir", - "cppFunctionName": "CreateFromworkdir", - "jsFunctionName": "createFromworkdir", - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "const git_blob *", - "comment": "a previously loaded blob.", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " SHA1 hash for this blob.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "const git_blob *", - "comment": "The blob which content should be analyzed", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if the content of the blob is detected\n as binary; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_is_binary", - "cppFunctionName": "IsBinary", - "jsFunctionName": "isBinary", - "isPrototypeMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "git_blob **", - "comment": "pointer to the looked up blob", - "cType": "git_blob **", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the blob.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the blob to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_blob_lookup-4" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_blob_lookup-1" - ] - }, - "cFunctionName": "git_blob_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "git_blob **", - "comment": "pointer to the looked up blob", - "cType": "git_blob **", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the blob.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the blob to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "the length of the short identifier", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_lookup_prefix", - "cppFunctionName": "LookupPrefix", - "jsFunctionName": "lookupPrefix", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "const git_blob *", - "comment": "A previously loaded blob.", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " Repository that contains this blob.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "cFunctionName": "git_blob_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "const git_blob *", - "comment": "pointer to the blob", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const void *", - "comment": " the pointer", - "cType": "const void *", - "cppClassName": "Wrapper", - "jsClassName": "Buffer", - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_blob_rawcontent-6" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_blob_rawcontent-1" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_blob_rawcontent-2" - ] - }, - "cFunctionName": "git_blob_rawcontent", - "cppFunctionName": "Rawcontent", - "jsFunctionName": "rawcontent", - "isPrototypeMethod": true, - "cppClassName": "GitBlob" - }, - { - "type": "function", - "file": "blob.h", - "args": [ - { - "name": "blob", - "type": "const git_blob *", - "comment": "pointer to the blob", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_off_t", - "comment": " size on bytes", - "cType": "git_off_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - }, - "group": "blob", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_blob_rawsize-7" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_blob_rawsize-2" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_blob_rawsize-3", - "ex/v0.21.2/general.html#git_blob_rawsize-4" - ] - }, - "cFunctionName": "git_blob_rawsize", - "cppFunctionName": "Rawsize", - "jsFunctionName": "rawsize", - "isPrototypeMethod": true, - "cppClassName": "GitBlob" - } - ], - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "filename": "blob", - "isLibgitType": true, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h", - "../include/oid.h", - "../include/repository.h", - "../include/blob.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_blob_free", - "name": "blob" - }, - { - "functions": [ - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer where to store the underlying reference.", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "branch_name", - "type": "const char *", - "comment": "Name for the branch; this name is\n validated for consistency. It should also not conflict with\n an already existing branch name.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const git_commit *", - "comment": "Commit to which this branch should point. This object\n must belong to the given `repo`.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing branch.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false, - "isOptional": true - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false, - "isOptional": true - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog.\n If NULL, the default is \"Branch: created\"; if you want something more\n useful, provide a message.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false, - "isOptional": true - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_EINVALIDSPEC or an error code.\n A proper reference is written in the refs/heads namespace\n pointing to the provided target commit.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": true, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "branch", - "type": "git_reference *", - "comment": "A valid reference representing a branch", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_delete", - "cppFunctionName": "Delete", - "jsFunctionName": "delete", - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "branch", - "type": "const git_reference *", - "comment": "Current underlying reference of the branch.", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if HEAD points at the branch, 0 if it isn't,\n error code otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_is_head", - "cppFunctionName": "IsHead", - "jsFunctionName": "isHead", - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "iter", - "type": "git_branch_iterator *", - "comment": "the iterator to free", - "cType": "git_branch_iterator *", - "cppClassName": "GitBranchIterator", - "jsClassName": "BranchIterator", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_iterator_free", - "cppFunctionName": "IteratorFree", - "jsFunctionName": "iteratorFree", - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "git_branch_iterator **", - "comment": "the iterator", - "cType": "git_branch_iterator **", - "cppClassName": "GitBranchIterator", - "jsClassName": "BranchIterator", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to find the branches.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "list_flags", - "type": "git_branch_t", - "comment": "Filtering flags for the branch\n listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE\n or GIT_BRANCH_ALL.", - "cType": "git_branch_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_iterator_new", - "cppFunctionName": "IteratorNew", - "jsFunctionName": "iteratorNew", - "isAsync": true, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "pointer to the looked-up branch reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to look up the branch", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "branch_name", - "type": "const char *", - "comment": "Name of the branch to be looked-up;\n this name is validated for consistency.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "branch_type", - "type": "git_branch_t", - "comment": "Type of the considered branch. This should\n be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE.", - "cType": "git_branch_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; GIT_ENOTFOUND when no matching branch\n exists, GIT_EINVALIDSPEC, otherwise an error code.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": null, - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "branch", - "type": "git_reference *", - "comment": "Current underlying reference of the branch.", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "new_branch_name", - "type": "const char *", - "comment": "Target name of the branch once the move\n is performed; this name is validated for consistency.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing branch.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_move", - "cppFunctionName": "Move", - "jsFunctionName": "move", - "isAsync": true, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "const char **", - "comment": "where the pointer of branch name is stored;\n this is valid as long as the ref is not freed.", - "cType": "const char **", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "const git_reference *", - "comment": "the reference ideally pointing to a branch", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; otherwise an error code (e.g., if the\n ref is no local or remote branch).", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_name", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "isAsync": true, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "branch", - "type": "git_reference *", - "comment": "the branch to configure", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "upstream_name", - "type": "const char *", - "comment": "remote-tracking or local branch to set as\n upstream. Pass NULL to unset.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false, - "isOptional": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_set_upstream", - "cppFunctionName": "SetUpstream", - "jsFunctionName": "setUpstream", - "isAsync": false, - "cppClassName": "GitBranch" - }, - { - "type": "function", - "file": "branch.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer where to store the retrieved\n reference.", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "branch", - "type": "const git_reference *", - "comment": "Current underlying reference of the branch.", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; GIT_ENOTFOUND when no remote tracking\n reference exists, otherwise an error code.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "branch", - "cFunctionName": "git_branch_upstream", - "cppFunctionName": "Upstream", - "jsFunctionName": "upstream", - "isAsync": false, - "cppClassName": "GitBranch" - } - ], - "type": "class", - "cType": null, - "typeName": "branch", - "cppClassName": "GitBranch", - "jsClassName": "Branch", - "filename": "branch", - "isLibgitType": true, - "dependencies": [ - "../include/reference.h", - "../include/repository.h", - "../include/commit.h", - "../include/signature.h", - "../include/branch_iterator.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "branch" - }, - { - "typeName": "branch", - "type": "enum", - "cType": "git_branch_t", - "isMask": false, - "values": [ - { - "name": "GIT_BRANCH_LOCAL", - "value": 1, - "JsName": "LOCAL" - }, - { - "name": "GIT_BRANCH_REMOTE", - "value": 2, - "JsName": "REMOTE" - }, - { - "name": "GIT_BRANCH_ALL", - "value": 3, - "JsName": "ALL" - } - ], - "owner": "Branch", - "JsName": "BRANCH" - }, - { - "type": "class", - "value": "git_branch_iterator", - "file": "branch.h", - "used": { - "returns": [], - "needs": [ - "git_branch_iterator_free", - "git_branch_iterator_new", - "git_branch_next" - ] - }, - "typeName": "branch_iterator", - "cType": "git_branch_iterator", - "functions": [], - "cppClassName": "GitBranchIterator", - "jsClassName": "BranchIterator", - "filename": "branch_iterator", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "branch_iterator" - }, - { - "type": "class", - "value": "git_buf", - "file": "buffer.h", - "fields": [ - { - "type": "char *", - "name": "ptr", - "cType": "char *", - "cppFunctionName": "Ptr", - "jsFunctionName": "ptr", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "asize", - "cType": "size_t", - "cppFunctionName": "Asize", - "jsFunctionName": "asize", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "size", - "cType": "size_t", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_blob_filtered_content", - "git_buf_free", - "git_buf_grow", - "git_buf_set", - "git_config_find_global", - "git_config_find_system", - "git_config_find_xdg", - "git_diff_commit_as_email", - "git_diff_format_email", - "git_diff_stats_to_buf", - "git_filter_list_apply_to_blob", - "git_filter_list_apply_to_data", - "git_filter_list_apply_to_file", - "git_message_prettify", - "git_object_short_id", - "git_patch_to_buf", - "git_refspec_rtransform", - "git_refspec_transform", - "git_remote_default_branch", - "git_repository_discover", - "git_repository_message" - ] - }, - "typeName": "buf", - "cType": "git_buf", - "functions": [ - { - "type": "function", - "file": "buffer.h", - "args": [ - { - "name": "buffer", - "type": "git_buf *", - "comment": "The buffer to be resized; may or may not be allocated yet", - "cType": "git_buf *", - "cppClassName": "GitBuf", - "jsClassName": "Buf", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "shouldAlloc": true - }, - { - "name": "target_size", - "type": "size_t", - "comment": "The desired available size", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on allocation failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false, - "isErrorCode": true - }, - "group": "buf", - "cFunctionName": "git_buf_grow", - "cppFunctionName": "Grow", - "jsFunctionName": "grow", - "isPrototypeMethod": true, - "isAsync": true, - "cppClassName": "GitBuf" - }, - { - "type": "function", - "file": "buffer.h", - "args": [ - { - "name": "buffer", - "type": "git_buf *", - "comment": "The buffer to set", - "cType": "git_buf *", - "cppClassName": "GitBuf", - "jsClassName": "Buf", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "shouldAlloc": true - }, - { - "name": "data", - "type": "const void *", - "comment": "The data to copy into the buffer", - "cType": "const void *", - "cppClassName": "Buffer", - "jsClassName": "Buffer", - "isReturn": false, - "isSelf": false - }, - { - "name": "datalen", - "type": "size_t", - "comment": "The length of the data to copy into the buffer", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on allocation failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false, - "isErrorCode": true - }, - "group": "buf", - "cFunctionName": "git_buf_set", - "cppFunctionName": "Set", - "jsFunctionName": "set", - "isPrototypeMethod": true, - "isAsync": true, - "cppClassName": "GitBuf" - } - ], - "cppClassName": "GitBuf", - "jsClassName": "Buf", - "filename": "buf", - "isLibgitType": true, - "dependencies": [ - "../include/buf.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "freeFunctionName": "git_buf_free", - "name": "buf" - }, - { - "functions": [ - { - "type": "function", - "file": "checkout.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "repository to check out (must be non-bare)", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_checkout_options *", - "comment": "specifies checkout options (may be NULL)", - "cType": "const git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EUNBORNBRANCH if HEAD points to a non\n existing branch, non-zero value returned by `notify_cb`, or\n other error code \n<\n 0 (use giterr_last for error details)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "checkout", - "cFunctionName": "git_checkout_head", - "cppFunctionName": "Head", - "jsFunctionName": "head", - "cppClassName": "GitCheckout" - }, - { - "type": "function", - "file": "checkout.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "repository into which to check out (must be non-bare)", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "index", - "type": "git_index *", - "comment": "index to be checked out (or NULL to use repository index)", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_checkout_options *", - "comment": "specifies checkout options (may be NULL)", - "cType": "const git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, non-zero return value from `notify_cb`, or error\n code \n<\n 0 (use giterr_last for error details)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "checkout", - "cFunctionName": "git_checkout_index", - "cppFunctionName": "Index", - "jsFunctionName": "index", - "cppClassName": "GitCheckout" - }, - { - "type": "function", - "file": "checkout.h", - "args": [ - { - "name": "opts", - "type": "git_checkout_options *", - "comment": "the `git_checkout_options` struct to initialize.", - "cType": "git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_CHECKOUT_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "checkout", - "cFunctionName": "git_checkout_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitCheckout" - }, - { - "type": "function", - "file": "checkout.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "repository to check out (must be non-bare)", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "treeish", - "type": "const git_object *", - "comment": "a commit, tag or tree which content will be used to update\n the working directory (or NULL to use HEAD)", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_checkout_options *", - "comment": "specifies checkout options (may be NULL)", - "cType": "const git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, non-zero return value from `notify_cb`, or error\n code \n<\n 0 (use giterr_last for error details)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "checkout", - "cFunctionName": "git_checkout_tree", - "cppFunctionName": "Tree", - "jsFunctionName": "tree", - "cppClassName": "GitCheckout" - } - ], - "type": "class", - "cType": null, - "typeName": "checkout", - "cppClassName": "GitCheckout", - "jsClassName": "Checkout", - "filename": "checkout", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/checkout_options.h", - "../include/index.h", - "../include/object.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "checkout" - }, - { - "typeName": "checkout_notify", - "type": "enum", - "cType": "git_checkout_notify_t", - "isMask": true, - "values": [ - { - "name": "GIT_CHECKOUT_NOTIFY_NONE", - "value": 0, - "JsName": "NONE" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_CONFLICT", - "value": 1, - "JsName": "CONFLICT" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_DIRTY", - "value": 2, - "JsName": "DIRTY" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_UPDATED", - "value": 4, - "JsName": "UPDATED" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_UNTRACKED", - "value": 8, - "JsName": "UNTRACKED" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_IGNORED", - "value": 16, - "JsName": "IGNORED" - }, - { - "name": "GIT_CHECKOUT_NOTIFY_ALL", - "value": 65535, - "JsName": "ALL" - } - ], - "owner": "Checkout", - "JsName": "NOTIFY" - }, - { - "type": "struct", - "value": "git_checkout_options", - "file": "checkout.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "checkout_strategy", - "cType": "unsigned int", - "cppFunctionName": "CheckoutStrategy", - "jsFunctionName": "checkoutStrategy", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "int", - "name": "disable_filters", - "cType": "int", - "cppFunctionName": "DisableFilters", - "jsFunctionName": "disableFilters", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "dir_mode", - "cType": "unsigned int", - "cppFunctionName": "DirMode", - "jsFunctionName": "dirMode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "file_mode", - "cType": "unsigned int", - "cppFunctionName": "FileMode", - "jsFunctionName": "fileMode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "int", - "name": "file_open_flags", - "cType": "int", - "cppFunctionName": "FileOpenFlags", - "jsFunctionName": "fileOpenFlags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "notify_flags", - "cType": "unsigned int", - "cppFunctionName": "NotifyFlags", - "jsFunctionName": "notifyFlags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_checkout_notify_cb", - "name": "notify_cb", - "cType": "git_checkout_notify_cb", - "cppFunctionName": "NotifyCb", - "jsFunctionName": "notifyCb", - "cppClassName": "GitCheckoutNotifyCb", - "jsClassName": "CheckoutNotifyCb", - "isCallbackFunction": true, - "args": [ - { - "name": "why", - "cType": "git_checkout_notify_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true - }, - { - "name": "path", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String" - }, - { - "name": "baseline", - "cType": "const git_diff_file *", - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "isLibgitType": true, - "isEnum": false - }, - { - "name": "target", - "cType": "const git_diff_file *", - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "isLibgitType": true, - "isEnum": false - }, - { - "name": "workdir", - "cType": "const git_diff_file *", - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "isLibgitType": true, - "isEnum": false - }, - { - "name": "payload", - "cType": "void *", - "cppClassName": "Void", - "jsClassName": "Void" - } - ], - "returnType": "int", - "returnNoResults": 1, - "returnSuccess": 0, - "returnError": -1 - }, - { - "type": "void *", - "name": "notify_payload", - "cType": "void *", - "cppFunctionName": "NotifyPayload", - "jsFunctionName": "notifyPayload", - "cppClassName": "Void", - "jsClassName": "Void", - "isCallbackFunction": false, - "payloadFor": "notify_cb" - }, - { - "type": "git_checkout_progress_cb", - "name": "progress_cb", - "cType": "git_checkout_progress_cb", - "cppFunctionName": "ProgressCb", - "jsFunctionName": "progressCb", - "cppClassName": "GitCheckoutProgressCb", - "jsClassName": "CheckoutProgressCb", - "isCallbackFunction": true, - "args": [ - { - "name": "path", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String" - }, - { - "name": "completed_steps", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number" - }, - { - "name": "total_steps", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number" - }, - { - "name": "payload", - "cType": "void *", - "cppClassName": "Void", - "jsClassName": "Void" - } - ], - "returnType": "int", - "returnNoResults": 1, - "returnSuccess": 0, - "returnError": -1 - }, - { - "type": "void *", - "name": "progress_payload", - "cType": "void *", - "cppFunctionName": "ProgressPayload", - "jsFunctionName": "progressPayload", - "cppClassName": "Void", - "jsClassName": "Void", - "isCallbackFunction": false, - "payloadFor": "progress_cb" - }, - { - "type": "git_strarray", - "name": "paths", - "cType": "git_strarray", - "cppFunctionName": "Paths", - "jsFunctionName": "paths", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_tree *", - "name": "baseline", - "cType": "git_tree *", - "cppFunctionName": "Baseline", - "jsFunctionName": "baseline", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_tree_walk": { - "ignore": true - } - } - }, - { - "type": "const char *", - "name": "target_directory", - "cType": "const char *", - "cppFunctionName": "TargetDirectory", - "jsFunctionName": "targetDirectory", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "ancestor_label", - "cType": "const char *", - "cppFunctionName": "AncestorLabel", - "jsFunctionName": "ancestorLabel", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "our_label", - "cType": "const char *", - "cppFunctionName": "OurLabel", - "jsFunctionName": "ourLabel", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "their_label", - "cType": "const char *", - "cppFunctionName": "TheirLabel", - "jsFunctionName": "theirLabel", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_checkout_head", - "git_checkout_index", - "git_checkout_init_options", - "git_checkout_tree", - "git_clone_into", - "git_clone_local_into", - "git_merge" - ] - }, - "typeName": "checkout_options", - "cType": "git_checkout_options", - "functions": [], - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "filename": "checkout_options", - "isLibgitType": true, - "dependencies": [ - "../include/diff_file.h", - "../include/strarray.h", - "../include/tree.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "checkout_options" - }, - { - "typeName": "checkout_strategy", - "type": "enum", - "cType": "git_checkout_strategy_t", - "isMask": true, - "values": [ - { - "name": "GIT_CHECKOUT_NONE", - "value": 0, - "JsName": "NONE" - }, - { - "name": "GIT_CHECKOUT_SAFE", - "value": 1, - "JsName": "SAFE" - }, - { - "name": "GIT_CHECKOUT_SAFE_CREATE", - "value": 2, - "JsName": "SAFE_CREATE" - }, - { - "name": "GIT_CHECKOUT_FORCE", - "value": 4, - "JsName": "FORCE" - }, - { - "name": "GIT_CHECKOUT_ALLOW_CONFLICTS", - "value": 16, - "JsName": "ALLOW_CONFLICTS" - }, - { - "name": "GIT_CHECKOUT_REMOVE_UNTRACKED", - "value": 32, - "JsName": "REMOVE_UNTRACKED" - }, - { - "name": "GIT_CHECKOUT_REMOVE_IGNORED", - "value": 64, - "JsName": "REMOVE_IGNORED" - }, - { - "name": "GIT_CHECKOUT_UPDATE_ONLY", - "value": 128, - "JsName": "UPDATE_ONLY" - }, - { - "name": "GIT_CHECKOUT_DONT_UPDATE_INDEX", - "value": 256, - "JsName": "DONT_UPDATE_INDEX" - }, - { - "name": "GIT_CHECKOUT_NO_REFRESH", - "value": 512, - "JsName": "NO_REFRESH" - }, - { - "name": "GIT_CHECKOUT_SKIP_UNMERGED", - "value": 1024, - "JsName": "SKIP_UNMERGED" - }, - { - "name": "GIT_CHECKOUT_USE_OURS", - "value": 2048, - "JsName": "USE_OURS" - }, - { - "name": "GIT_CHECKOUT_USE_THEIRS", - "value": 4096, - "JsName": "USE_THEIRS" - }, - { - "name": "GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH", - "value": 8192, - "JsName": "DISABLE_PATHSPEC_MATCH" - }, - { - "name": "GIT_CHECKOUT_SKIP_LOCKED_DIRECTORIES", - "value": 262144, - "JsName": "SKIP_LOCKED_DIRECTORIES" - }, - { - "name": "GIT_CHECKOUT_DONT_OVERWRITE_IGNORED", - "value": 524288, - "JsName": "DONT_OVERWRITE_IGNORED" - }, - { - "name": "GIT_CHECKOUT_CONFLICT_STYLE_MERGE", - "value": 1048576, - "JsName": "CONFLICT_STYLE_MERGE" - }, - { - "name": "GIT_CHECKOUT_CONFLICT_STYLE_DIFF3", - "value": 2097152, - "JsName": "CONFLICT_STYLE_DIFF3" - }, - { - "name": "GIT_CHECKOUT_UPDATE_SUBMODULES", - "value": 65536, - "JsName": "UPDATE_SUBMODULES" - }, - { - "name": "GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED", - "value": 131072, - "JsName": "UPDATE_SUBMODULES_IF_CHANGED" - } - ], - "owner": "Checkout", - "JsName": "STRATEGY" - }, - { - "functions": [ - { - "type": "function", - "file": "cherrypick.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to cherry-pick", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "commit", - "type": "git_commit *", - "comment": "the commit to cherry-pick", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "cherry_pick_options", - "type": "const git_cherry_pick_options *", - "comment": "the cherry-pick options (or null for defaults)", - "cType": "const git_cherry_pick_options *", - "cppClassName": "GitCherryPickOptions", - "jsClassName": "CherryPickOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " zero on success, -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cherry", - "cFunctionName": "git_cherry_pick", - "cppFunctionName": "Pick", - "jsFunctionName": "pick", - "cppClassName": "GitCherry" - }, - { - "type": "function", - "file": "cherrypick.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "pointer to store the index result in", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository that contains the given commits", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "cherry_pick_commit", - "type": "git_commit *", - "comment": "the commit to cherry-pick", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "our_commit", - "type": "git_commit *", - "comment": "the commit to revert against (eg, HEAD)", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "mainline", - "type": "unsigned int", - "comment": "the parent of the revert commit, if it is a merge", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "merge_options", - "type": "const git_merge_options *", - "comment": "the merge options (or null for defaults)", - "cType": "const git_merge_options *", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " zero on success, -1 on failure.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cherry", - "cFunctionName": "git_cherry_pick_commit", - "cppFunctionName": "PickCommit", - "jsFunctionName": "pickCommit", - "isAsync": true, - "cppClassName": "GitCherry" - }, - { - "type": "function", - "file": "cherrypick.h", - "args": [ - { - "name": "opts", - "type": "git_cherry_pick_options *", - "comment": "the `git_cherry_pick_options` struct to initialize", - "cType": "git_cherry_pick_options *", - "cppClassName": "GitCherryPickOptions", - "jsClassName": "CherryPickOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_CHERRY_PICK_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cherry", - "cFunctionName": "git_cherry_pick_init_options", - "cppFunctionName": "PickInitOptions", - "jsFunctionName": "pickInitOptions", - "cppClassName": "GitCherry" - } - ], - "type": "class", - "cType": null, - "typeName": "cherry", - "cppClassName": "GitCherry", - "jsClassName": "Cherry", - "filename": "cherry", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/commit.h", - "../include/cherry_pick_options.h", - "../include/index.h", - "../include/merge_options.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "cherry" - }, - { - "type": "struct", - "value": "git_cherry_pick_options", - "file": "cherrypick.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "mainline", - "cType": "unsigned int", - "cppFunctionName": "Mainline", - "jsFunctionName": "mainline", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_merge_options", - "name": "merge_opts", - "cType": "git_merge_options", - "cppFunctionName": "MergeOpts", - "jsFunctionName": "mergeOpts", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_checkout_options", - "name": "checkout_opts", - "cType": "git_checkout_options", - "cppFunctionName": "CheckoutOpts", - "jsFunctionName": "checkoutOpts", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_cherry_pick", - "git_cherry_pick_init_options" - ] - }, - "typeName": "cherry_pick_options", - "cType": "git_cherry_pick_options", - "functions": [], - "cppClassName": "GitCherryPickOptions", - "jsClassName": "CherryPickOptions", - "filename": "cherry_pick_options", - "isLibgitType": true, - "dependencies": [ - "../include/merge_options.h", - "../include/checkout_options.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "cherry_pick_options" - }, - { - "functions": [ - { - "type": "function", - "file": "clone.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "pointer that will receive the resulting repository object", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "url", - "type": "const char *", - "comment": "the remote repository to clone", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "local_path", - "type": "const char *", - "comment": "local directory to clone to", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "options", - "type": "const git_clone_options *", - "comment": "configuration options for the clone. If NULL, the\n function works as though GIT_OPTIONS_INIT were passed.", - "cType": "const git_clone_options *", - "cppClassName": "GitCloneOptions", - "jsClassName": "CloneOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false, - "isOptional": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, any non-zero return value from a callback\n function, or a negative value to indicate an error (use\n `giterr_last` for a detailed error message)", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "clone", - "examples": { - "network/clone.c": [ - "ex/v0.21.2/network/clone.html#git_clone-1" - ] - }, - "cFunctionName": "git_clone", - "cppFunctionName": "Clone", - "jsFunctionName": "clone", - "isAsync": true, - "cppClassName": "GitClone" - }, - { - "type": "function", - "file": "clone.h", - "args": [ - { - "name": "opts", - "type": "git_clone_options *", - "comment": "The `git_clone_options` struct to initialize", - "cType": "git_clone_options *", - "cppClassName": "GitCloneOptions", - "jsClassName": "CloneOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_CLONE_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "clone", - "cFunctionName": "git_clone_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitClone" - }, - { - "type": "function", - "file": "clone.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to use", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote repository to clone from", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": false - }, - { - "name": "co_opts", - "type": "const git_checkout_options *", - "comment": "options to use during checkout", - "cType": "const git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "branch", - "type": "const char *", - "comment": "the branch to checkout after the clone, pass NULL for the\n remote's default branch", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity used when updating the reflog.", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, any non-zero return value from a callback\n function, or a negative value to indicate an error (use\n `giterr_last` for a detailed error message)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "clone", - "cFunctionName": "git_clone_into", - "cppFunctionName": "Into", - "jsFunctionName": "into", - "cppClassName": "GitClone" - }, - { - "type": "function", - "file": "clone.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to use", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote repository to clone from", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": false - }, - { - "name": "co_opts", - "type": "const git_checkout_options *", - "comment": "options to use during checkout", - "cType": "const git_checkout_options *", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "branch", - "type": "const char *", - "comment": "the branch to checkout after the clone, pass NULL for the\n remote's default branch", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "link", - "type": "int", - "comment": "wether to use hardlinks instead of copying\n objects. This is only possible if both repositories are on the same\n filesystem.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "the identity used when updating the reflog", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, any non-zero return value from a callback\n function, or a negative value to indicate an error (use\n `giterr_last` for a detailed error message)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "clone", - "cFunctionName": "git_clone_local_into", - "cppFunctionName": "LocalInto", - "jsFunctionName": "localInto", - "cppClassName": "GitClone" - } - ], - "type": "class", - "cType": null, - "typeName": "clone", - "cppClassName": "GitClone", - "jsClassName": "Clone", - "filename": "clone", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/clone_options.h", - "../include/remote.h", - "../include/checkout_options.h", - "../include/signature.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "clone" - }, - { - "typeName": "clone_local", - "type": "enum", - "cType": "git_clone_local_t", - "isMask": false, - "values": [ - { - "name": "GIT_CLONE_LOCAL_AUTO", - "value": 0, - "JsName": "AUTO" - }, - { - "name": "GIT_CLONE_LOCAL", - "value": 1, - "JsName": "LOCAL" - }, - { - "name": "GIT_CLONE_NO_LOCAL", - "value": 2, - "JsName": "NO_LOCAL" - }, - { - "name": "GIT_CLONE_LOCAL_NO_LINKS", - "value": 3, - "JsName": "NO_LINKS" - } - ], - "owner": "Clone", - "JsName": "LOCAL" - }, - { - "type": "struct", - "value": "git_clone_options", - "file": "clone.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_checkout_options", - "name": "checkout_opts", - "cType": "git_checkout_options", - "cppFunctionName": "CheckoutOpts", - "jsFunctionName": "checkoutOpts", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_remote_callbacks", - "name": "remote_callbacks", - "cType": "git_remote_callbacks", - "cppFunctionName": "RemoteCallbacks", - "jsFunctionName": "remoteCallbacks", - "cppClassName": "GitRemoteCallbacks", - "jsClassName": "RemoteCallbacks", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "fields": { - "completion": { - "ignore": true - }, - "sideband_progress": { - "ignore": true - }, - "transfer_progress": { - "ignore": true - }, - "update_tips": { - "ignore": true - } - } - }, - { - "type": "int", - "name": "bare", - "cType": "int", - "cppFunctionName": "Bare", - "jsFunctionName": "bare", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "int", - "name": "ignore_cert_errors", - "cType": "int", - "cppFunctionName": "IgnoreCertErrors", - "jsFunctionName": "ignoreCertErrors", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_clone_local_t", - "name": "local", - "cType": "git_clone_local_t", - "cppFunctionName": "Local", - "jsFunctionName": "local", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true, - "isMask": true - }, - { - "type": "const char *", - "name": "remote_name", - "cType": "const char *", - "cppFunctionName": "RemoteName", - "jsFunctionName": "remoteName", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "checkout_branch", - "cType": "const char *", - "cppFunctionName": "CheckoutBranch", - "jsFunctionName": "checkoutBranch", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "git_signature *", - "name": "signature", - "cType": "git_signature *", - "cppFunctionName": "Signature", - "jsFunctionName": "signature", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - } - } - ], - "used": { - "returns": [], - "needs": [ - "git_clone", - "git_clone_init_options" - ] - }, - "typeName": "clone_options", - "cType": "git_clone_options", - "functions": [], - "cppClassName": "GitCloneOptions", - "jsClassName": "CloneOptions", - "filename": "clone_options", - "isLibgitType": true, - "dependencies": [ - "../include/checkout_options.h", - "../include/remote_callbacks.h", - "../include/signature.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "clone_options" - }, - { - "type": "class", - "value": "git_commit", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_branch_create", - "git_cherry_pick", - "git_cherry_pick_commit", - "git_commit_amend", - "git_commit_author", - "git_commit_committer", - "git_commit_create", - "git_commit_free", - "git_commit_id", - "git_commit_lookup", - "git_commit_lookup_prefix", - "git_commit_message", - "git_commit_message_encoding", - "git_commit_message_raw", - "git_commit_nth_gen_ancestor", - "git_commit_owner", - "git_commit_parent", - "git_commit_parent_id", - "git_commit_parentcount", - "git_commit_raw_header", - "git_commit_summary", - "git_commit_time", - "git_commit_time_offset", - "git_commit_tree", - "git_commit_tree_id", - "git_diff_commit_as_email", - "git_merge_commits", - "git_revert", - "git_revert_commit" - ] - }, - "typeName": "commit", - "cType": "git_commit", - "functions": [ - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": null, - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "commit_to_amend", - "type": "const git_commit *", - "comment": null, - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "update_ref", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "author", - "type": "const git_signature *", - "comment": null, - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": null, - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "message_encoding", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "message", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "tree", - "type": "const git_tree *", - "comment": null, - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_amend", - "cppFunctionName": "Amend", - "jsFunctionName": "amend", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_signature *", - "comment": " the author of a commit", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_author-6" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_commit_author-19", - "ex/v0.21.2/general.html#git_commit_author-20" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_author-12", - "ex/v0.21.2/log.html#git_commit_author-13" - ] - }, - "cFunctionName": "git_commit_author", - "cppFunctionName": "Author", - "jsFunctionName": "author", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_signature *", - "comment": " the committer of a commit", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_committer-5" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_commit_committer-18" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_committer-11" - ] - }, - "cFunctionName": "git_commit_committer", - "cppFunctionName": "Committer", - "jsFunctionName": "committer", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": "Pointer in which to store the OID of the newly created commit", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to store the commit", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "update_ref", - "type": "const char *", - "comment": "If not NULL, name of the reference that\n\twill be updated to point to this commit. If the reference\n\tis not direct, it will be resolved to a direct reference.\n\tUse \"HEAD\" to update the HEAD of the current branch and\n\tmake it point to this commit. If the reference doesn't\n\texist yet, it will be created. If it does exist, the first\n\tparent must be the tip of this branch.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false, - "isOptional": true - }, - { - "name": "author", - "type": "const git_signature *", - "comment": "Signature with author and author time of commit", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": "Signature with committer and * commit time of commit", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "message_encoding", - "type": "const char *", - "comment": "The encoding for the message in the\n commit, represented with a standard encoding name.\n E.g. \"UTF-8\". If NULL, no encoding header is written and\n UTF-8 is assumed.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false, - "isOptional": true - }, - { - "name": "message", - "type": "const char *", - "comment": "Full message for this commit", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "tree", - "type": "const git_tree *", - "comment": "An instance of a `git_tree` object that will\n be used as the tree for the commit. This tree object must\n also be owned by the given `repo`.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "parent_count", - "type": "size_t", - "comment": "Number of parents for this commit", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "parents", - "type": "const git_commit *[]", - "comment": "Array of `parent_count` pointers to `git_commit`\n objects that will be used as the parents for this commit. This\n array may be NULL if `parent_count` is 0 (root commit). All the\n given commits must be owned by the `repo`.", - "cType": "const git_commit **", - "cppClassName": "Array", - "jsClassName": "Array", - "isReturn": false, - "isSelf": false, - "arrayElementCppClassName": "GitCommit" - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code\n\tThe created commit will be written to the Object Database and\n\tthe given reference will be updated to point to it", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": null, - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "update_ref", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "author", - "type": "const git_signature *", - "comment": null, - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": null, - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "message_encoding", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "message", - "type": "const char *", - "comment": null, - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "tree", - "type": "const git_tree *", - "comment": null, - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "parent_count", - "type": "size_t", - "comment": null, - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_commit_create_v-23" - ], - "init.c": [ - "ex/v0.21.2/init.html#git_commit_create_v-1" - ] - }, - "cFunctionName": "git_commit_create_v", - "cppFunctionName": "CreateV", - "jsFunctionName": "createV", - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " object identity for the commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_commit_id-12" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_id-6" - ] - }, - "cFunctionName": "git_commit_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "git_commit **", - "comment": "pointer to the looked up commit", - "cType": "git_commit **", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the commit.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the commit to locate. If the object is\n\t\tan annotated tag it will be peeled back to the commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_commit_lookup-5", - "ex/v0.21.2/general.html#git_commit_lookup-6", - "ex/v0.21.2/general.html#git_commit_lookup-7" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_lookup-1" - ] - }, - "cFunctionName": "git_commit_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "git_commit **", - "comment": "pointer to the looked up commit", - "cType": "git_commit **", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the commit.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the commit to locate. If the object is\n\t\tan annotated tag it will be peeled back to the commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "the length of the short identifier", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_lookup_prefix", - "cppFunctionName": "LookupPrefix", - "jsFunctionName": "lookupPrefix", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the message of a commit", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_message-3", - "ex/v0.21.2/cat-file.html#git_commit_message-4" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_commit_message-13", - "ex/v0.21.2/general.html#git_commit_message-14", - "ex/v0.21.2/general.html#git_commit_message-15" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_message-9", - "ex/v0.21.2/log.html#git_commit_message-10" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_commit_message-2" - ] - }, - "cFunctionName": "git_commit_message", - "cppFunctionName": "Message", - "jsFunctionName": "message", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " NULL, or the encoding", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_message_encoding", - "cppFunctionName": "MessageEncoding", - "jsFunctionName": "messageEncoding", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the raw message of a commit", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_message_raw", - "cppFunctionName": "MessageRaw", - "jsFunctionName": "messageRaw", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "ancestor", - "type": "git_commit **", - "comment": "Pointer where to store the ancestor commit", - "cType": "git_commit **", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "unsigned int", - "comment": "the requested generation", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; GIT_ENOTFOUND if no matching ancestor exists\n or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_nth_gen_ancestor", - "cppFunctionName": "NthGenAncestor", - "jsFunctionName": "nthGenAncestor", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "A previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " Repository that contains this commit.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_commit_owner-7", - "ex/v0.21.2/log.html#git_commit_owner-8" - ] - }, - "cFunctionName": "git_commit_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "out", - "type": "git_commit **", - "comment": "Pointer where to store the parent commit", - "cType": "git_commit **", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "unsigned int", - "comment": "the position of the parent (from 0 to `parentcount`)", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_commit_parent-22" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_parent-21", - "ex/v0.21.2/log.html#git_commit_parent-22" - ] - }, - "cFunctionName": "git_commit_parent", - "cppFunctionName": "Parent", - "jsFunctionName": "parent", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "unsigned int", - "comment": "the position of the parent (from 0 to `parentcount`)", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_oid *", - "comment": " the id of the parent, NULL on error.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_parent_id-9" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_parent_id-23" - ] - }, - "cFunctionName": "git_commit_parent_id", - "cppFunctionName": "ParentId", - "jsFunctionName": "parentId", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "unsigned int", - "comment": " integer of count of parents", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_parentcount-8" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_commit_parentcount-21" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_commit_parentcount-19", - "ex/v0.21.2/log.html#git_commit_parentcount-20" - ] - }, - "cFunctionName": "git_commit_parentcount", - "cppFunctionName": "Parentcount", - "jsFunctionName": "parentcount", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the header text of the commit", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_raw_header", - "cppFunctionName": "RawHeader", - "jsFunctionName": "rawHeader", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "git_commit *", - "comment": "a previously loaded commit.", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the summary of a commit or NULL on error", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_summary", - "cppFunctionName": "Summary", - "jsFunctionName": "summary", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_time_t", - "comment": " the time of a commit", - "cType": "git_time_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_commit_time-16", - "ex/v0.21.2/general.html#git_commit_time-17" - ] - }, - "cFunctionName": "git_commit_time", - "cppFunctionName": "Time", - "jsFunctionName": "time", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " positive or negative timezone offset, in minutes from UTC", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "cFunctionName": "git_commit_time_offset", - "cppFunctionName": "TimeOffset", - "jsFunctionName": "timeOffset", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "tree_out", - "type": "git_tree **", - "comment": "pointer where to store the tree object", - "cType": "git_tree **", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_commit_tree-14", - "ex/v0.21.2/log.html#git_commit_tree-15", - "ex/v0.21.2/log.html#git_commit_tree-16", - "ex/v0.21.2/log.html#git_commit_tree-17", - "ex/v0.21.2/log.html#git_commit_tree-18" - ] - }, - "cFunctionName": "git_commit_tree", - "cppFunctionName": "Tree", - "jsFunctionName": "tree", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - }, - { - "type": "function", - "file": "commit.h", - "args": [ - { - "name": "commit", - "type": "const git_commit *", - "comment": "a previously loaded commit.", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " the id of tree pointed to by commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "commit", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_commit_tree_id-7" - ] - }, - "cFunctionName": "git_commit_tree_id", - "cppFunctionName": "TreeId", - "jsFunctionName": "treeId", - "isPrototypeMethod": true, - "cppClassName": "GitCommit" - } - ], - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "filename": "commit", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h", - "../include/commit.h", - "../include/signature.h", - "../include/tree.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_commit_free", - "name": "commit" - }, - { - "type": "class", - "value": "git_config", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_config_add_backend", - "git_config_add_file_ondisk", - "git_config_delete_entry", - "git_config_delete_multivar", - "git_config_foreach", - "git_config_foreach_match", - "git_config_free", - "git_config_get_bool", - "git_config_get_entry", - "git_config_get_int32", - "git_config_get_int64", - "git_config_get_mapped", - "git_config_get_multivar_foreach", - "git_config_get_string", - "git_config_iterator_glob_new", - "git_config_iterator_new", - "git_config_multivar_iterator_new", - "git_config_new", - "git_config_open_default", - "git_config_open_global", - "git_config_open_level", - "git_config_open_ondisk", - "git_config_refresh", - "git_config_set_bool", - "git_config_set_int32", - "git_config_set_int64", - "git_config_set_multivar", - "git_config_set_string", - "git_config_snapshot", - "git_repository_config", - "git_repository_config_snapshot" - ] - }, - "typeName": "config", - "cType": "git_config", - "functions": [ - { - "type": "function", - "file": "config.h", - "args": [ - { - "name": "cfg", - "type": "git_config *", - "comment": "where to look for the variable", - "cType": "git_config *", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "name", - "type": "const char *", - "comment": "the variable's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "value", - "type": "int64_t", - "comment": "Long integer value for the variable", - "cType": "int64_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "config", - "cFunctionName": "git_config_set_int64", - "cppFunctionName": "SetInt64", - "jsFunctionName": "setInt64", - "isPrototypeMethod": true, - "cppClassName": "GitConfig" - }, - { - "type": "function", - "file": "config.h", - "args": [ - { - "name": "cfg", - "type": "git_config *", - "comment": "where to look for the variable", - "cType": "git_config *", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "name", - "type": "const char *", - "comment": "the variable's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "regexp", - "type": "const char *", - "comment": "a regular expression to indicate which values to replace", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "value", - "type": "const char *", - "comment": "the new value.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "config", - "cFunctionName": "git_config_set_multivar", - "cppFunctionName": "SetMultivar", - "jsFunctionName": "setMultivar", - "isPrototypeMethod": true, - "cppClassName": "GitConfig" - }, - { - "type": "function", - "file": "config.h", - "args": [ - { - "name": "cfg", - "type": "git_config *", - "comment": "where to look for the variable", - "cType": "git_config *", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "name", - "type": "const char *", - "comment": "the variable's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "value", - "type": "const char *", - "comment": "the string to store.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "config", - "cFunctionName": "git_config_set_string", - "cppFunctionName": "SetString", - "jsFunctionName": "setString", - "isPrototypeMethod": true, - "cppClassName": "GitConfig" - }, - { - "type": "function", - "file": "config.h", - "args": [ - { - "name": "out", - "type": "git_config **", - "comment": "pointer in which to store the snapshot config object", - "cType": "git_config **", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "config", - "type": "git_config *", - "comment": "configuration to snapshot", - "cType": "git_config *", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "config", - "cFunctionName": "git_config_snapshot", - "cppFunctionName": "Snapshot", - "jsFunctionName": "snapshot", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitConfig" - } - ], - "cppClassName": "GitConfig", - "jsClassName": "Config", - "filename": "config", - "isLibgitType": true, - "dependencies": [ - "../include/config.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_config_free", - "name": "config" - }, - { - "typeName": "config_level", - "type": "enum", - "cType": "git_config_level_t", - "isMask": true, - "values": [ - { - "name": "GIT_CONFIG_LEVEL_SYSTEM", - "value": 1, - "JsName": "SYSTEM" - }, - { - "name": "GIT_CONFIG_LEVEL_XDG", - "value": 2, - "JsName": "XDG" - }, - { - "name": "GIT_CONFIG_LEVEL_GLOBAL", - "value": 3, - "JsName": "GLOBAL" - }, - { - "name": "GIT_CONFIG_LEVEL_LOCAL", - "value": 4, - "JsName": "LOCAL" - }, - { - "name": "GIT_CONFIG_LEVEL_APP", - "value": 5, - "JsName": "APP" - }, - { - "name": "GIT_CONFIG_HIGHEST_LEVEL", - "value": -1, - "JsName": "HIGHEST_LEVEL" - } - ], - "owner": "Config", - "JsName": "LEVEL" - }, - { - "functions": [ - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "out", - "type": "git_cred **", - "comment": null, - "cType": "git_cred **", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "isReturn": true, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 for success or an error code for failure", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cred", - "cFunctionName": "git_cred_default_new", - "cppFunctionName": "DefaultNew", - "jsFunctionName": "defaultNew", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitCred" - }, - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "cred", - "type": "git_cred *", - "comment": "object to check", - "cType": "git_cred *", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if the credential object has non-NULL username, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cred", - "cFunctionName": "git_cred_has_username", - "cppFunctionName": "HasUsername", - "jsFunctionName": "hasUsername", - "isPrototypeMethod": true, - "cppClassName": "GitCred" - }, - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "out", - "type": "git_cred **", - "comment": "The newly created credential object.", - "cType": "git_cred **", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "isReturn": true, - "isSelf": false - }, - { - "name": "username", - "type": "const char *", - "comment": "username to use to authenticate", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 for success or an error code for failure", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cred", - "cFunctionName": "git_cred_ssh_key_from_agent", - "cppFunctionName": "SshKeyFromAgent", - "jsFunctionName": "sshKeyFromAgent", - "isAsync": false, - "isConstructorMethod": true, - "cppClassName": "GitCred" - }, - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "out", - "type": "git_cred **", - "comment": "The newly created credential object.", - "cType": "git_cred **", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "isReturn": true, - "isSelf": false - }, - { - "name": "username", - "type": "const char *", - "comment": "username to use to authenticate", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "publickey", - "type": "const char *", - "comment": "The path to the public key of the credential.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "privatekey", - "type": "const char *", - "comment": "The path to the private key of the credential.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "passphrase", - "type": "const char *", - "comment": "The passphrase of the credential.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 for success or an error code for failure", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cred", - "cFunctionName": "git_cred_ssh_key_new", - "cppFunctionName": "SshKeyNew", - "jsFunctionName": "sshKeyNew", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitCred" - }, - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "out", - "type": "git_cred **", - "comment": "The newly created credential object.", - "cType": "git_cred **", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "isReturn": true, - "isSelf": false - }, - { - "name": "username", - "type": "const char *", - "comment": "The username of the credential.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "password", - "type": "const char *", - "comment": "The password of the credential.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 for success or an error code for failure", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "cred", - "cFunctionName": "git_cred_userpass_plaintext_new", - "cppFunctionName": "UserpassPlaintextNew", - "jsFunctionName": "userpassPlaintextNew", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitCred" - } - ], - "type": "class", - "cType": "git_cred", - "typeName": "cred", - "cppClassName": "GitCred", - "jsClassName": "Cred", - "filename": "cred", - "isLibgitType": true, - "dependencies": [ - "../include/cred.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "cred" - }, - { - "type": "class", - "value": "git_cred_default", - "file": "transport.h", - "used": { - "returns": [], - "needs": [] - }, - "typeName": "cred_default", - "cType": "git_cred_default", - "functions": [], - "cppClassName": "GitCredDefault", - "jsClassName": "CredDefault", - "filename": "cred_default", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "cred_default" - }, - { - "type": "class", - "value": "git_cred_userpass_payload", - "file": "cred_helpers.h", - "fields": [ - { - "type": "char *", - "name": "username", - "cType": "char *", - "cppFunctionName": "Username", - "jsFunctionName": "username", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "char *", - "name": "password", - "cType": "char *", - "cppFunctionName": "Password", - "jsFunctionName": "password", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [] - }, - "typeName": "cred_userpass_payload", - "cType": "git_cred_userpass_payload", - "functions": [], - "cppClassName": "GitCredUserpassPayload", - "jsClassName": "CredUserpassPayload", - "filename": "cred_userpass_payload", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "cDependencies": [ - "git2/cred_helpers.h" - ], - "name": "cred_userpass_payload" - }, - { - "typeName": "credtype", - "type": "enum", - "cType": "git_credtype_t", - "isMask": true, - "values": [ - { - "name": "GIT_CREDTYPE_USERPASS_PLAINTEXT", - "value": 1, - "JsName": "USERPASS_PLAINTEXT" - }, - { - "name": "GIT_CREDTYPE_SSH_KEY", - "value": 2, - "JsName": "SSH_KEY" - }, - { - "name": "GIT_CREDTYPE_SSH_CUSTOM", - "value": 4, - "JsName": "SSH_CUSTOM" - }, - { - "name": "GIT_CREDTYPE_DEFAULT", - "value": 8, - "JsName": "DEFAULT" - }, - { - "name": "GIT_CREDTYPE_SSH_INTERACTIVE", - "value": 16, - "JsName": "SSH_INTERACTIVE" - } - ], - "owner": "Cred", - "JsName": "TYPE" - }, - { - "typeName": "delta", - "type": "enum", - "cType": "git_delta_t", - "isMask": true, - "values": [ - { - "name": "GIT_DELTA_UNMODIFIED", - "value": 0, - "JsName": "UNMODIFIED" - }, - { - "name": "GIT_DELTA_ADDED", - "value": 1, - "JsName": "ADDED" - }, - { - "name": "GIT_DELTA_DELETED", - "value": 2, - "JsName": "DELETED" - }, - { - "name": "GIT_DELTA_MODIFIED", - "value": 3, - "JsName": "MODIFIED" - }, - { - "name": "GIT_DELTA_RENAMED", - "value": 4, - "JsName": "RENAMED" - }, - { - "name": "GIT_DELTA_COPIED", - "value": 5, - "JsName": "COPIED" - }, - { - "name": "GIT_DELTA_IGNORED", - "value": 6, - "JsName": "IGNORED" - }, - { - "name": "GIT_DELTA_UNTRACKED", - "value": 7, - "JsName": "UNTRACKED" - }, - { - "name": "GIT_DELTA_TYPECHANGE", - "value": 8, - "JsName": "TYPECHANGE" - } - ], - "owner": "Enums", - "JsName": "DELTA" - }, - { - "type": "class", - "value": "git_diff", - "file": "diff.h", - "used": { - "returns": [], - "needs": [ - "git_diff_find_similar", - "git_diff_foreach", - "git_diff_format_email", - "git_diff_free", - "git_diff_get_delta", - "git_diff_get_perfdata", - "git_diff_get_stats", - "git_diff_index_to_workdir", - "git_diff_is_sorted_icase", - "git_diff_merge", - "git_diff_num_deltas", - "git_diff_num_deltas_of_type", - "git_diff_print", - "git_diff_tree_to_index", - "git_diff_tree_to_tree", - "git_diff_tree_to_workdir", - "git_diff_tree_to_workdir_with_index", - "git_patch_from_diff", - "git_pathspec_match_diff" - ] - }, - "typeName": "diff", - "cType": "git_diff", - "functions": [ - { - "type": "function", - "file": "diff.h", - "args": [ - { - "name": "diff", - "type": "const git_diff *", - "comment": "Diff list object", - "cType": "const git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": false, - "isSelf": true - }, - { - "name": "idx", - "type": "size_t", - "comment": "Index into diff list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_diff_delta *", - "comment": " Pointer to git_diff_delta (or NULL if `idx` out of range)", - "cType": "const git_diff_delta *", - "cppClassName": "GitDiffDelta", - "jsClassName": "DiffDelta", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "diff", - "cFunctionName": "git_diff_get_delta", - "cppFunctionName": "GetDelta", - "jsFunctionName": "getDelta", - "isPrototypeMethod": true, - "cppClassName": "GitDiff" - }, - { - "type": "function", - "file": "sys/diff.h", - "args": [ - { - "name": "out", - "type": "git_diff_perfdata *", - "comment": "Structure to be filled with diff performance data", - "cType": "git_diff_perfdata *", - "cppClassName": "GitDiffPerfdata", - "jsClassName": "DiffPerfdata", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "diff", - "type": "const git_diff *", - "comment": "Diff to read performance data from", - "cType": "const git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 for success, \n<\n0 for error", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "diff", - "cFunctionName": "git_diff_get_perfdata", - "cppFunctionName": "GetPerfdata", - "jsFunctionName": "getPerfdata", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitDiff" - }, - { - "type": "function", - "file": "diff.h", - "args": [ - { - "name": "diff", - "type": "const git_diff *", - "comment": "A git_diff generated by one of the above functions", - "cType": "const git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " Count of number of deltas in the list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "diff", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_diff_num_deltas-28" - ] - }, - "cFunctionName": "git_diff_num_deltas", - "cppFunctionName": "NumDeltas", - "jsFunctionName": "numDeltas", - "isPrototypeMethod": true, - "cppClassName": "GitDiff" - }, - { - "type": "function", - "file": "diff.h", - "args": [ - { - "name": "diff", - "type": "git_diff **", - "comment": "Output pointer to a git_diff pointer to be allocated.", - "cType": "git_diff **", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository containing the trees.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "old_tree", - "type": "git_tree *", - "comment": "A git_tree object to diff from, or NULL for empty tree.", - "cType": "git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "new_tree", - "type": "git_tree *", - "comment": "A git_tree object to diff to, or NULL for empty tree.", - "cType": "git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_diff_options *", - "comment": "Structure with options to influence diff or NULL for defaults.", - "cType": "const git_diff_options *", - "cppClassName": "GitDiffOptions", - "jsClassName": "DiffOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false, - "isOptional": true - } - ], - "return": { - "type": "int", - "comment": null, - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "diff", - "examples": { - "diff.c": [ - "ex/v0.21.2/diff.html#git_diff_tree_to_tree-3" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_diff_tree_to_tree-26", - "ex/v0.21.2/log.html#git_diff_tree_to_tree-27" - ] - }, - "cFunctionName": "git_diff_tree_to_tree", - "cppFunctionName": "TreeToTree", - "jsFunctionName": "treeToTree", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitDiff" - } - ], - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "filename": "diff", - "isLibgitType": true, - "dependencies": [ - "../include/diff.h", - "../include/diff_delta.h", - "../include/diff_perfdata.h", - "../include/repository.h", - "../include/tree.h", - "../include/diff_options.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_diff_free", - "cDependencies": [ - "git2/sys/diff.h" - ], - "name": "diff" - }, - { - "type": "class", - "value": "git_diff_delta", - "file": "diff.h", - "fields": [ - { - "type": "git_delta_t", - "name": "status", - "cType": "git_delta_t", - "cppFunctionName": "Status", - "jsFunctionName": "status", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true, - "isMask": true - }, - { - "type": "uint32_t", - "name": "flags", - "cType": "uint32_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "similarity", - "cType": "uint16_t", - "cppFunctionName": "Similarity", - "jsFunctionName": "similarity", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "nfiles", - "cType": "uint16_t", - "cppFunctionName": "Nfiles", - "jsFunctionName": "nfiles", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_diff_file", - "name": "old_file", - "cType": "git_diff_file", - "cppFunctionName": "OldFile", - "jsFunctionName": "oldFile", - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_diff_file", - "name": "new_file", - "cType": "git_diff_file", - "cppFunctionName": "NewFile", - "jsFunctionName": "newFile", - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - } - ], - "used": { - "returns": [ - "git_diff_get_delta", - "git_patch_get_delta", - "git_pathspec_match_list_diff_entry" - ], - "needs": [ - "git_diff_print_callback__to_buf", - "git_diff_print_callback__to_file_handle" - ] - }, - "typeName": "diff_delta", - "cType": "git_diff_delta", - "functions": [], - "cppClassName": "GitDiffDelta", - "jsClassName": "DiffDelta", - "filename": "diff_delta", - "isLibgitType": true, - "dependencies": [ - "../include/diff_file.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "diff_delta" - }, - { - "type": "class", - "value": "git_diff_file", - "file": "diff.h", - "fields": [ - { - "type": "git_oid", - "name": "id", - "cType": "git_oid", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "const char *", - "name": "path", - "cType": "const char *", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "git_off_t", - "name": "size", - "cType": "git_off_t", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "type": "uint32_t", - "name": "flags", - "cType": "uint32_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "mode", - "cType": "uint16_t", - "cppFunctionName": "Mode", - "jsFunctionName": "mode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [] - }, - "typeName": "diff_file", - "cType": "git_diff_file", - "functions": [], - "cppClassName": "GitDiffFile", - "jsClassName": "DiffFile", - "filename": "diff_file", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "diff_file" - }, - { - "typeName": "diff_find", - "type": "enum", - "cType": "git_diff_find_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_FIND_BY_CONFIG", - "value": 0, - "JsName": "BY_CONFIG" - }, - { - "name": "GIT_DIFF_FIND_RENAMES", - "value": 1, - "JsName": "RENAMES" - }, - { - "name": "GIT_DIFF_FIND_RENAMES_FROM_REWRITES", - "value": 2, - "JsName": "RENAMES_FROM_REWRITES" - }, - { - "name": "GIT_DIFF_FIND_COPIES", - "value": 4, - "JsName": "COPIES" - }, - { - "name": "GIT_DIFF_FIND_COPIES_FROM_UNMODIFIED", - "value": 8, - "JsName": "COPIES_FROM_UNMODIFIED" - }, - { - "name": "GIT_DIFF_FIND_REWRITES", - "value": 16, - "JsName": "REWRITES" - }, - { - "name": "GIT_DIFF_BREAK_REWRITES", - "value": 32, - "JsName": "BREAK_REWRITES" - }, - { - "name": "GIT_DIFF_FIND_AND_BREAK_REWRITES", - "value": 48, - "JsName": "AND_BREAK_REWRITES" - }, - { - "name": "GIT_DIFF_FIND_FOR_UNTRACKED", - "value": 64, - "JsName": "FOR_UNTRACKED" - }, - { - "name": "GIT_DIFF_FIND_ALL", - "value": 255, - "JsName": "ALL" - }, - { - "name": "GIT_DIFF_FIND_IGNORE_LEADING_WHITESPACE", - "value": 0, - "JsName": "IGNORE_LEADING_WHITESPACE" - }, - { - "name": "GIT_DIFF_FIND_IGNORE_WHITESPACE", - "value": 4096, - "JsName": "IGNORE_WHITESPACE" - }, - { - "name": "GIT_DIFF_FIND_DONT_IGNORE_WHITESPACE", - "value": 8192, - "JsName": "DONT_IGNORE_WHITESPACE" - }, - { - "name": "GIT_DIFF_FIND_EXACT_MATCH_ONLY", - "value": 16384, - "JsName": "EXACT_MATCH_ONLY" - }, - { - "name": "GIT_DIFF_BREAK_REWRITES_FOR_RENAMES_ONLY", - "value": 32768, - "JsName": "BREAK_REWRITES_FOR_RENAMES_ONLY" - }, - { - "name": "GIT_DIFF_FIND_REMOVE_UNMODIFIED", - "value": 65536, - "JsName": "REMOVE_UNMODIFIED" - } - ], - "owner": "Diff", - "JsName": "FIND" - }, - { - "typeName": "diff_flag", - "type": "enum", - "cType": "git_diff_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_FLAG_BINARY", - "value": 1, - "JsName": "BINARY" - }, - { - "name": "GIT_DIFF_FLAG_NOT_BINARY", - "value": 2, - "JsName": "NOT_BINARY" - }, - { - "name": "GIT_DIFF_FLAG_VALID_ID", - "value": 4, - "JsName": "VALID_ID" - } - ], - "owner": "Diff", - "JsName": "FLAG" - }, - { - "typeName": "diff_format", - "type": "enum", - "cType": "git_diff_format_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_FORMAT_PATCH", - "value": 1, - "JsName": "PATCH" - }, - { - "name": "GIT_DIFF_FORMAT_PATCH_HEADER", - "value": 2, - "JsName": "PATCH_HEADER" - }, - { - "name": "GIT_DIFF_FORMAT_RAW", - "value": 3, - "JsName": "RAW" - }, - { - "name": "GIT_DIFF_FORMAT_NAME_ONLY", - "value": 4, - "JsName": "NAME_ONLY" - }, - { - "name": "GIT_DIFF_FORMAT_NAME_STATUS", - "value": 5, - "JsName": "NAME_STATUS" - } - ], - "owner": "Diff", - "JsName": "FORMAT" - }, - { - "typeName": "diff_format_email_flags", - "type": "enum", - "cType": "git_diff_format_email_flags_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_FORMAT_EMAIL_NONE", - "value": 0, - "JsName": "FORMAT_EMAIL_NONE" - }, - { - "name": "GIT_DIFF_FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER", - "value": 1, - "JsName": "FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER" - } - ], - "owner": "Diff", - "JsName": "FORMAT_EMAIL_FLAGS" - }, - { - "type": "class", - "value": "git_diff_hunk", - "file": "diff.h", - "used": { - "returns": [], - "needs": [ - "git_diff_print_callback__to_buf", - "git_diff_print_callback__to_file_handle", - "git_patch_get_hunk" - ] - }, - "fields": [ - { - "name": "old_start", - "type": "int", - "cType": "int", - "cppFunctionName": "OldStart", - "jsFunctionName": "oldStart", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "old_lines", - "type": "int", - "cType": "int", - "cppFunctionName": "OldLines", - "jsFunctionName": "oldLines", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "new_start", - "type": "int", - "cType": "int", - "cppFunctionName": "NewStart", - "jsFunctionName": "newStart", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "new_lines", - "type": "int", - "cType": "int", - "cppFunctionName": "NewLines", - "jsFunctionName": "newLines", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "header_len", - "type": "size_t", - "cType": "size_t", - "cppFunctionName": "HeaderLen", - "jsFunctionName": "headerLen", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "header", - "type": "char *", - "cType": "char *", - "cppFunctionName": "Header", - "jsFunctionName": "header", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "typeName": "diff_hunk", - "cType": "git_diff_hunk", - "functions": [], - "cppClassName": "GitDiffHunk", - "jsClassName": "DiffHunk", - "filename": "diff_hunk", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "diff_hunk" - }, - { - "type": "class", - "value": "git_diff_line", - "file": "diff.h", - "used": { - "returns": [], - "needs": [ - "git_diff_print_callback__to_buf", - "git_diff_print_callback__to_file_handle", - "git_patch_get_line_in_hunk" - ] - }, - "fields": [ - { - "name": "origin", - "type": "int", - "cType": "int", - "cppFunctionName": "Origin", - "jsFunctionName": "origin", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "old_lineno", - "type": "int", - "cType": "int", - "cppFunctionName": "OldLineno", - "jsFunctionName": "oldLineno", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "new_lineno", - "type": "int", - "cType": "int", - "cppFunctionName": "NewLineno", - "jsFunctionName": "newLineno", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "num_lines", - "type": "int", - "cType": "int", - "cppFunctionName": "NumLines", - "jsFunctionName": "numLines", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "content_len", - "type": "size_t", - "cType": "size_t", - "cppFunctionName": "ContentLen", - "jsFunctionName": "contentLen", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "content_offset", - "type": "git_off_t", - "cType": "git_off_t", - "cppFunctionName": "ContentOffset", - "jsFunctionName": "contentOffset", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "name": "content", - "type": "const char *", - "cType": "const char *", - "cppFunctionName": "Content", - "jsFunctionName": "content", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "typeName": "diff_line", - "cType": "git_diff_line", - "functions": [], - "cppClassName": "GitDiffLine", - "jsClassName": "DiffLine", - "filename": "diff_line", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "diff_line" - }, - { - "typeName": "diff_line", - "type": "enum", - "cType": "git_diff_line_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_LINE_CONTEXT", - "value": 32, - "JsName": "CONTEXT" - }, - { - "name": "GIT_DIFF_LINE_ADDITION", - "value": 43, - "JsName": "ADDITION" - }, - { - "name": "GIT_DIFF_LINE_DELETION", - "value": 45, - "JsName": "DELETION" - }, - { - "name": "GIT_DIFF_LINE_CONTEXT_EOFNL", - "value": 61, - "JsName": "CONTEXT_EOFNL" - }, - { - "name": "GIT_DIFF_LINE_ADD_EOFNL", - "value": 62, - "JsName": "ADD_EOFNL" - }, - { - "name": "GIT_DIFF_LINE_DEL_EOFNL", - "value": 60, - "JsName": "DEL_EOFNL" - }, - { - "name": "GIT_DIFF_LINE_FILE_HDR", - "value": 70, - "JsName": "FILE_HDR" - }, - { - "name": "GIT_DIFF_LINE_HUNK_HDR", - "value": 72, - "JsName": "HUNK_HDR" - }, - { - "name": "GIT_DIFF_LINE_BINARY", - "value": 66, - "JsName": "BINARY" - } - ], - "owner": "Diff", - "JsName": "LINE" - }, - { - "typeName": "diff_option", - "type": "enum", - "cType": "git_diff_option_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_NORMAL", - "value": 0, - "JsName": "NORMAL" - }, - { - "name": "GIT_DIFF_REVERSE", - "value": 1, - "JsName": "REVERSE" - }, - { - "name": "GIT_DIFF_INCLUDE_IGNORED", - "value": 2, - "JsName": "INCLUDE_IGNORED" - }, - { - "name": "GIT_DIFF_RECURSE_IGNORED_DIRS", - "value": 4, - "JsName": "RECURSE_IGNORED_DIRS" - }, - { - "name": "GIT_DIFF_INCLUDE_UNTRACKED", - "value": 8, - "JsName": "INCLUDE_UNTRACKED" - }, - { - "name": "GIT_DIFF_RECURSE_UNTRACKED_DIRS", - "value": 16, - "JsName": "RECURSE_UNTRACKED_DIRS" - }, - { - "name": "GIT_DIFF_INCLUDE_UNMODIFIED", - "value": 32, - "JsName": "INCLUDE_UNMODIFIED" - }, - { - "name": "GIT_DIFF_INCLUDE_TYPECHANGE", - "value": 64, - "JsName": "INCLUDE_TYPECHANGE" - }, - { - "name": "GIT_DIFF_INCLUDE_TYPECHANGE_TREES", - "value": 128, - "JsName": "INCLUDE_TYPECHANGE_TREES" - }, - { - "name": "GIT_DIFF_IGNORE_FILEMODE", - "value": 256, - "JsName": "IGNORE_FILEMODE" - }, - { - "name": "GIT_DIFF_IGNORE_SUBMODULES", - "value": 512, - "JsName": "IGNORE_SUBMODULES" - }, - { - "name": "GIT_DIFF_IGNORE_CASE", - "value": 1024, - "JsName": "IGNORE_CASE" - }, - { - "name": "GIT_DIFF_DISABLE_PATHSPEC_MATCH", - "value": 4096, - "JsName": "DISABLE_PATHSPEC_MATCH" - }, - { - "name": "GIT_DIFF_SKIP_BINARY_CHECK", - "value": 8192, - "JsName": "SKIP_BINARY_CHECK" - }, - { - "name": "GIT_DIFF_ENABLE_FAST_UNTRACKED_DIRS", - "value": 16384, - "JsName": "ENABLE_FAST_UNTRACKED_DIRS" - }, - { - "name": "GIT_DIFF_UPDATE_INDEX", - "value": 32768, - "JsName": "UPDATE_INDEX" - }, - { - "name": "GIT_DIFF_FORCE_TEXT", - "value": 1048576, - "JsName": "FORCE_TEXT" - }, - { - "name": "GIT_DIFF_FORCE_BINARY", - "value": 2097152, - "JsName": "FORCE_BINARY" - }, - { - "name": "GIT_DIFF_IGNORE_WHITESPACE", - "value": 4194304, - "JsName": "IGNORE_WHITESPACE" - }, - { - "name": "GIT_DIFF_IGNORE_WHITESPACE_CHANGE", - "value": 8388608, - "JsName": "IGNORE_WHITESPACE_CHANGE" - }, - { - "name": "GIT_DIFF_IGNORE_WHITESPACE_EOL", - "value": 16777216, - "JsName": "IGNORE_WHITESPACE_EOL" - }, - { - "name": "GIT_DIFF_SHOW_UNTRACKED_CONTENT", - "value": 33554432, - "JsName": "SHOW_UNTRACKED_CONTENT" - }, - { - "name": "GIT_DIFF_SHOW_UNMODIFIED", - "value": 67108864, - "JsName": "SHOW_UNMODIFIED" - }, - { - "name": "GIT_DIFF_PATIENCE", - "value": 268435456, - "JsName": "PATIENCE" - }, - { - "name": "GIT_DIFF_MINIMAL", - "value": 536870912, - "JsName": "MINIMAL" - }, - { - "name": "GIT_DIFF_SHOW_BINARY", - "value": 1073741824, - "JsName": "SHOW_BINARY" - } - ], - "owner": "Diff", - "JsName": "OPTION" - }, - { - "type": "struct", - "value": "git_diff_options", - "file": "diff.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint32_t", - "name": "flags", - "cType": "uint32_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_submodule_ignore_t", - "name": "ignore_submodules", - "cType": "git_submodule_ignore_t", - "cppFunctionName": "IgnoreSubmodules", - "jsFunctionName": "ignoreSubmodules", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true, - "isMask": true - }, - { - "type": "git_strarray", - "name": "pathspec", - "cType": "git_strarray", - "cppFunctionName": "Pathspec", - "jsFunctionName": "pathspec", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_diff_notify_cb", - "name": "notify_cb", - "cType": "git_diff_notify_cb", - "cppFunctionName": "NotifyCb", - "jsFunctionName": "notifyCb", - "cppClassName": "GitDiffNotifyCb", - "jsClassName": "DiffNotifyCb", - "isCallbackFunction": true, - "args": [ - { - "name": "diff_so_far", - "cType": "const git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "functions": { - "git_diff_blob_to_buffer": { - "ignore": true - }, - "git_diff_blobs": { - "ignore": true - }, - "git_diff_buffers": { - "ignore": true - }, - "git_diff_commit_as_email": { - "ignore": true - }, - "git_diff_find_init_options": { - "ignore": true - }, - "git_diff_find_similar": { - "ignore": true - }, - "git_diff_foreach": { - "ignore": true - }, - "git_diff_format_email": { - "ignore": true - }, - "git_diff_format_email_init_options": { - "ignore": true - }, - "git_diff_free": { - "ignore": true - }, - "git_diff_get_stats": { - "ignore": true - }, - "git_diff_index_to_workdir": { - "ignore": true - }, - "git_diff_init_options": { - "ignore": true - }, - "git_diff_is_sorted_icase": { - "ignore": true - }, - "git_diff_merge": { - "ignore": true - }, - "git_diff_num_deltas_of_type": { - "ignore": true - }, - "git_diff_print": { - "ignore": true - }, - "git_diff_print_callback__to_buf": { - "ignore": true - }, - "git_diff_print_callback__to_file_handle": { - "ignore": true - }, - "git_diff_stats_deletions": { - "ignore": true - }, - "git_diff_stats_files_changed": { - "ignore": true - }, - "git_diff_stats_free": { - "ignore": true - }, - "git_diff_stats_insertions": { - "ignore": true - }, - "git_diff_stats_to_buf": { - "ignore": true - }, - "git_diff_status_char": { - "ignore": true - }, - "git_diff_tree_to_index": { - "ignore": true - }, - "git_diff_tree_to_tree": { - "args": { - "opts": { - "isOptional": true - } - } - }, - "git_diff_tree_to_workdir": { - "ignore": true - }, - "git_diff_tree_to_workdir_with_index": { - "ignore": true - } - } - }, - { - "name": "delta_to_add", - "cType": "git_diff_delta *", - "cppClassName": "GitDiffDelta", - "jsClassName": "DiffDelta", - "isLibgitType": true, - "isEnum": false - }, - { - "name": "matched_pathspec", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String" - }, - { - "name": "payload", - "cType": "void *", - "cppClassName": "Void", - "jsClassName": "Void" - } - ], - "returnType": "int", - "returnNoResults": 1, - "returnSuccess": 0, - "returnError": -1 - }, - { - "type": "void *", - "name": "notify_payload", - "cType": "void *", - "cppFunctionName": "NotifyPayload", - "jsFunctionName": "notifyPayload", - "cppClassName": "Void", - "jsClassName": "Void", - "isCallbackFunction": false, - "payloadFor": "notify_cb" - }, - { - "type": "uint16_t", - "name": "context_lines", - "cType": "uint16_t", - "cppFunctionName": "ContextLines", - "jsFunctionName": "contextLines", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "interhunk_lines", - "cType": "uint16_t", - "cppFunctionName": "InterhunkLines", - "jsFunctionName": "interhunkLines", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint16_t", - "name": "id_abbrev", - "cType": "uint16_t", - "cppFunctionName": "IdAbbrev", - "jsFunctionName": "idAbbrev", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_off_t", - "name": "max_size", - "cType": "git_off_t", - "cppFunctionName": "MaxSize", - "jsFunctionName": "maxSize", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "type": "const char *", - "name": "old_prefix", - "cType": "const char *", - "cppFunctionName": "OldPrefix", - "jsFunctionName": "oldPrefix", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "new_prefix", - "cType": "const char *", - "cppFunctionName": "NewPrefix", - "jsFunctionName": "newPrefix", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_diff_blob_to_buffer", - "git_diff_blobs", - "git_diff_buffers", - "git_diff_commit_as_email", - "git_diff_index_to_workdir", - "git_diff_init_options", - "git_diff_tree_to_index", - "git_diff_tree_to_tree", - "git_diff_tree_to_workdir", - "git_diff_tree_to_workdir_with_index", - "git_patch_from_blob_and_buffer", - "git_patch_from_blobs", - "git_patch_from_buffers" - ] - }, - "typeName": "diff_options", - "cType": "git_diff_options", - "functions": [], - "cppClassName": "GitDiffOptions", - "jsClassName": "DiffOptions", - "filename": "diff_options", - "isLibgitType": true, - "dependencies": [ - "../include/strarray.h", - "../include/diff.h", - "../include/diff_delta.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "diff_options" - }, - { - "type": "class", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "stat_calls", - "cType": "size_t", - "cppFunctionName": "StatCalls", - "jsFunctionName": "statCalls", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "oid_calculations", - "cType": "size_t", - "cppFunctionName": "OidCalculations", - "jsFunctionName": "oidCalculations", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "typeName": "diff_perfdata", - "cType": "git_diff_perfdata", - "functions": [], - "cppClassName": "GitDiffPerfdata", - "jsClassName": "DiffPerfdata", - "filename": "diff_perfdata", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "name": "diff_perfdata" - }, - { - "type": "class", - "value": "git_diff_stats", - "file": "diff.h", - "used": { - "returns": [], - "needs": [ - "git_diff_get_stats", - "git_diff_stats_deletions", - "git_diff_stats_files_changed", - "git_diff_stats_free", - "git_diff_stats_insertions", - "git_diff_stats_to_buf" - ] - }, - "typeName": "diff_stats", - "cType": "git_diff_stats", - "functions": [], - "cppClassName": "GitDiffStats", - "jsClassName": "DiffStats", - "filename": "diff_stats", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "diff_stats" - }, - { - "typeName": "diff_stats_format", - "type": "enum", - "cType": "git_diff_stats_format_t", - "isMask": true, - "values": [ - { - "name": "GIT_DIFF_STATS_NONE", - "value": 0, - "JsName": "STATS_NONE" - }, - { - "name": "GIT_DIFF_STATS_FULL", - "value": 1, - "JsName": "STATS_FULL" - }, - { - "name": "GIT_DIFF_STATS_SHORT", - "value": 2, - "JsName": "STATS_SHORT" - }, - { - "name": "GIT_DIFF_STATS_NUMBER", - "value": 4, - "JsName": "STATS_NUMBER" - }, - { - "name": "GIT_DIFF_STATS_INCLUDE_SUMMARY", - "value": 8, - "JsName": "STATS_INCLUDE_SUMMARY" - } - ], - "owner": "Diff", - "JsName": "STATS_FORMAT" - }, - { - "type": "class", - "value": "git_error", - "file": "errors.h", - "fields": [ - { - "type": "char *", - "name": "message", - "cType": "char *", - "cppFunctionName": "Message", - "jsFunctionName": "message", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "int", - "name": "klass", - "cType": "int", - "cppFunctionName": "Klass", - "jsFunctionName": "klass", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [ - "giterr_last" - ], - "needs": [ - "giterr_detach" - ] - }, - "typeName": "error", - "cType": "git_error", - "functions": [], - "cppClassName": "GitError", - "jsClassName": "Error", - "filename": "error", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "error" - }, - { - "typeName": "error", - "type": "enum", - "cType": "git_error_t", - "isMask": false, - "values": [ - { - "name": "GITERR_NONE", - "value": 0, - "JsName": "GITERR_NONE" - }, - { - "name": "GITERR_NOMEMORY", - "value": 1, - "JsName": "GITERR_NOMEMORY" - }, - { - "name": "GITERR_OS", - "value": 2, - "JsName": "GITERR_OS" - }, - { - "name": "GITERR_INVALID", - "value": 3, - "JsName": "GITERR_INVALID" - }, - { - "name": "GITERR_REFERENCE", - "value": 4, - "JsName": "GITERR_REFERENCE" - }, - { - "name": "GITERR_ZLIB", - "value": 5, - "JsName": "GITERR_ZLIB" - }, - { - "name": "GITERR_REPOSITORY", - "value": 6, - "JsName": "GITERR_REPOSITORY" - }, - { - "name": "GITERR_CONFIG", - "value": 7, - "JsName": "GITERR_CONFIG" - }, - { - "name": "GITERR_REGEX", - "value": 8, - "JsName": "GITERR_REGEX" - }, - { - "name": "GITERR_ODB", - "value": 9, - "JsName": "GITERR_ODB" - }, - { - "name": "GITERR_INDEX", - "value": 10, - "JsName": "GITERR_INDEX" - }, - { - "name": "GITERR_OBJECT", - "value": 11, - "JsName": "GITERR_OBJECT" - }, - { - "name": "GITERR_NET", - "value": 12, - "JsName": "GITERR_NET" - }, - { - "name": "GITERR_TAG", - "value": 13, - "JsName": "GITERR_TAG" - }, - { - "name": "GITERR_TREE", - "value": 14, - "JsName": "GITERR_TREE" - }, - { - "name": "GITERR_INDEXER", - "value": 15, - "JsName": "GITERR_INDEXER" - }, - { - "name": "GITERR_SSL", - "value": 16, - "JsName": "GITERR_SSL" - }, - { - "name": "GITERR_SUBMODULE", - "value": 17, - "JsName": "GITERR_SUBMODULE" - }, - { - "name": "GITERR_THREAD", - "value": 18, - "JsName": "GITERR_THREAD" - }, - { - "name": "GITERR_STASH", - "value": 19, - "JsName": "GITERR_STASH" - }, - { - "name": "GITERR_CHECKOUT", - "value": 20, - "JsName": "GITERR_CHECKOUT" - }, - { - "name": "GITERR_FETCHHEAD", - "value": 21, - "JsName": "GITERR_FETCHHEAD" - }, - { - "name": "GITERR_MERGE", - "value": 22, - "JsName": "GITERR_MERGE" - }, - { - "name": "GITERR_SSH", - "value": 23, - "JsName": "GITERR_SSH" - }, - { - "name": "GITERR_FILTER", - "value": 24, - "JsName": "GITERR_FILTER" - }, - { - "name": "GITERR_REVERT", - "value": 25, - "JsName": "GITERR_REVERT" - }, - { - "name": "GITERR_CALLBACK", - "value": 26, - "JsName": "GITERR_CALLBACK" - }, - { - "name": "GITERR_CHERRYPICK", - "value": 27, - "JsName": "GITERR_CHERRYPICK" - } - ], - "owner": "Error", - "JsName": "ERROR" - }, - { - "typeName": "error_code", - "type": "enum", - "cType": "git_error_code", - "isMask": false, - "values": [ - { - "name": "GIT_OK", - "value": 0, - "JsName": "OK" - }, - { - "name": "GIT_ERROR", - "value": -1, - "JsName": "ERROR" - }, - { - "name": "GIT_ENOTFOUND", - "value": -3, - "JsName": "ENOTFOUND" - }, - { - "name": "GIT_EEXISTS", - "value": -4, - "JsName": "EEXISTS" - }, - { - "name": "GIT_EAMBIGUOUS", - "value": -5, - "JsName": "EAMBIGUOUS" - }, - { - "name": "GIT_EBUFS", - "value": -6, - "JsName": "EBUFS" - }, - { - "name": "GIT_EUSER", - "value": -7, - "JsName": "EUSER" - }, - { - "name": "GIT_EBAREREPO", - "value": -8, - "JsName": "EBAREREPO" - }, - { - "name": "GIT_EUNBORNBRANCH", - "value": -9, - "JsName": "EUNBORNBRANCH" - }, - { - "name": "GIT_EUNMERGED", - "value": -10, - "JsName": "EUNMERGED" - }, - { - "name": "GIT_ENONFASTFORWARD", - "value": -11, - "JsName": "ENONFASTFORWARD" - }, - { - "name": "GIT_EINVALIDSPEC", - "value": -12, - "JsName": "EINVALIDSPEC" - }, - { - "name": "GIT_EMERGECONFLICT", - "value": -13, - "JsName": "EMERGECONFLICT" - }, - { - "name": "GIT_ELOCKED", - "value": -14, - "JsName": "ELOCKED" - }, - { - "name": "GIT_EMODIFIED", - "value": -15, - "JsName": "EMODIFIED" - }, - { - "name": "GIT_PASSTHROUGH", - "value": -30, - "JsName": "PASSTHROUGH" - }, - { - "name": "GIT_ITEROVER", - "value": -31, - "JsName": "ITEROVER" - } - ], - "owner": "Error", - "JsName": "CODE" - }, - { - "typeName": "feature", - "type": "enum", - "cType": "git_feature_t", - "isMask": true, - "values": [ - { - "name": "GIT_FEATURE_THREADS", - "value": 1, - "JsName": "THREADS" - }, - { - "name": "GIT_FEATURE_HTTPS", - "value": 2, - "JsName": "HTTPS" - }, - { - "name": "GIT_FEATURE_SSH", - "value": 4, - "JsName": "SSH" - } - ], - "owner": "Enums", - "JsName": "FEATURE" - }, - { - "typeName": "filemode", - "type": "enum", - "cType": "git_filemode_t", - "isMask": true, - "values": [ - { - "name": "GIT_FILEMODE_NEW", - "value": 0, - "JsName": "NEW" - }, - { - "name": "GIT_FILEMODE_TREE", - "value": 16384, - "JsName": "TREE" - }, - { - "name": "GIT_FILEMODE_BLOB", - "value": 33188, - "JsName": "BLOB" - }, - { - "name": "GIT_FILEMODE_BLOB_EXECUTABLE", - "value": 33261, - "JsName": "BLOB_EXECUTABLE" - }, - { - "name": "GIT_FILEMODE_LINK", - "value": 40960, - "JsName": "LINK" - }, - { - "name": "GIT_FILEMODE_COMMIT", - "value": 57344, - "JsName": "COMMIT" - } - ], - "owner": "Enums", - "JsName": "FILEMODE" - }, - { - "type": "class", - "value": "git_filter", - "file": "sys/filter.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "attributes", - "cType": "const char *", - "cppFunctionName": "Attributes", - "jsFunctionName": "attributes", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [ - "git_filter_lookup" - ], - "needs": [ - "git_filter_list_push", - "git_filter_register" - ] - }, - "typeName": "filter", - "cType": "git_filter", - "functions": [ - { - "type": "function", - "file": "sys/filter.h", - "args": [ - { - "name": "fl", - "type": "const git_filter_list *", - "comment": "A filter list", - "cType": "const git_filter_list *", - "cppClassName": "GitFilterList", - "jsClassName": "FilterList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " The number of filters in the list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "filter", - "cFunctionName": "git_filter_list_length", - "cppFunctionName": "ListLength", - "jsFunctionName": "listLength", - "cppClassName": "GitFilter" - }, - { - "type": "function", - "file": "sys/filter.h", - "args": [ - { - "name": "out", - "type": "git_filter_list **", - "comment": null, - "cType": "git_filter_list **", - "cppClassName": "GitFilterList", - "jsClassName": "FilterList", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "mode", - "type": "git_filter_mode_t", - "comment": null, - "cType": "git_filter_mode_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - { - "name": "options", - "type": "uint32_t", - "comment": null, - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "filter", - "cFunctionName": "git_filter_list_new", - "cppFunctionName": "ListNew", - "jsFunctionName": "listNew", - "isAsync": true, - "cppClassName": "GitFilter" - }, - { - "type": "function", - "file": "sys/filter.h", - "args": [ - { - "name": "name", - "type": "const char *", - "comment": "The name of the filter", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_filter *", - "comment": " Pointer to the filter object or NULL if not found", - "cType": "git_filter *", - "cppClassName": "GitFilter", - "jsClassName": "Filter", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_filter_list_apply_to_blob": { - "ignore": true - }, - "git_filter_list_apply_to_data": { - "ignore": true - }, - "git_filter_list_apply_to_file": { - "ignore": true - }, - "git_filter_list_free": { - "ignore": true - }, - "git_filter_list_load": { - "ignore": true - }, - "git_filter_list_push": { - "ignore": true - }, - "git_filter_source_filemode": { - "ignore": true - }, - "git_filter_source_id": { - "ignore": true - }, - "git_filter_source_mode": { - "ignore": true - }, - "git_filter_source_options": { - "ignore": true - }, - "git_filter_source_path": { - "ignore": true - }, - "git_filter_source_repo": { - "ignore": true - } - }, - "fields": { - "initialize": { - "ignore": true - }, - "shutdown": { - "ignore": true - }, - "check": { - "ignore": true - }, - "apply": { - "ignore": true - }, - "cleanup": { - "ignore": true - } - }, - "cDependencies": [ - "git2/sys/filter.h" - ], - "isReturn": false, - "isSelf": true - }, - "group": "filter", - "cFunctionName": "git_filter_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isPrototypeMethod": true, - "cppClassName": "GitFilter" - }, - { - "type": "function", - "file": "sys/filter.h", - "args": [ - { - "name": "name", - "type": "const char *", - "comment": "A name by which the filter can be referenced. Attempting\n \t\t\tto register with an in-use name will return GIT_EEXISTS.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "filter", - "type": "git_filter *", - "comment": "The filter definition. This pointer will be stored as is\n \t\t\tby libgit2 so it must be a durable allocation (either static\n \t\t\tor on the heap).", - "cType": "git_filter *", - "cppClassName": "GitFilter", - "jsClassName": "Filter", - "isLibgitType": true, - "isEnum": false, - "fields": { - "initialize": { - "ignore": true - }, - "shutdown": { - "ignore": true - }, - "check": { - "ignore": true - }, - "apply": { - "ignore": true - }, - "cleanup": { - "ignore": true - } - }, - "cDependencies": [ - "git2/sys/filter.h" - ], - "isReturn": false, - "isSelf": true - }, - { - "name": "priority", - "type": "int", - "comment": "The priority for filter application", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on successful registry, error code \n<\n0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "filter", - "cFunctionName": "git_filter_register", - "cppFunctionName": "Register", - "jsFunctionName": "register", - "isPrototypeMethod": true, - "cppClassName": "GitFilter" - }, - { - "type": "function", - "file": "sys/filter.h", - "args": [ - { - "name": "name", - "type": "const char *", - "comment": "The name under which the filter was registered", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, error code \n<\n0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "filter", - "cFunctionName": "git_filter_unregister", - "cppFunctionName": "Unregister", - "jsFunctionName": "unregister", - "cppClassName": "GitFilter" - } - ], - "cppClassName": "GitFilter", - "jsClassName": "Filter", - "filename": "filter", - "isLibgitType": true, - "dependencies": [ - "../include/filter_list.h", - "../include/repository.h", - "../include/filter.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "cDependencies": [ - "git2/sys/filter.h" - ], - "name": "filter" - }, - { - "type": "class", - "value": "git_filter_list", - "file": "filter.h", - "used": { - "returns": [], - "needs": [ - "git_filter_list_apply_to_blob", - "git_filter_list_apply_to_data", - "git_filter_list_apply_to_file", - "git_filter_list_free", - "git_filter_list_length", - "git_filter_list_load", - "git_filter_list_new", - "git_filter_list_push" - ] - }, - "typeName": "filter_list", - "cType": "git_filter_list", - "functions": [], - "cppClassName": "GitFilterList", - "jsClassName": "FilterList", - "filename": "filter_list", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "filter_list" - }, - { - "typeName": "filter_mode", - "type": "enum", - "cType": "git_filter_mode_t", - "isMask": true, - "values": [ - { - "name": "GIT_FILTER_TO_WORKTREE", - "value": 0, - "JsName": "TO_WORKTREE" - }, - { - "name": "GIT_FILTER_SMUDGE", - "value": 0, - "JsName": "SMUDGE" - }, - { - "name": "GIT_FILTER_TO_ODB", - "value": 1, - "JsName": "TO_ODB" - }, - { - "name": "GIT_FILTER_CLEAN", - "value": 1, - "JsName": "CLEAN" - } - ], - "owner": "Filter", - "JsName": "MODE" - }, - { - "functions": [ - { - "type": "function", - "file": "errors.h", - "args": [], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "giterr", - "cFunctionName": "giterr_clear", - "cppFunctionName": "GiterrClear", - "jsFunctionName": "errClear", - "cppClassName": "GitGiterr" - }, - { - "type": "function", - "file": "errors.h", - "args": [ - { - "name": "cpy", - "type": "git_error *", - "comment": null, - "cType": "git_error *", - "cppClassName": "GitError", - "jsClassName": "Error", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "giterr", - "cFunctionName": "giterr_detach", - "cppFunctionName": "GiterrDetach", - "jsFunctionName": "errDetach", - "cppClassName": "GitGiterr" - }, - { - "type": "function", - "file": "errors.h", - "args": [], - "return": { - "type": "const git_error *", - "comment": " A git_error object.", - "cType": "const git_error *", - "cppClassName": "GitError", - "jsClassName": "Error", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "giterr", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#giterr_last-27" - ], - "network/clone.c": [ - "ex/v0.21.2/network/clone.html#giterr_last-2" - ], - "network/git2.c": [ - "ex/v0.21.2/network/git2.html#giterr_last-1", - "ex/v0.21.2/network/git2.html#giterr_last-2" - ] - }, - "cFunctionName": "giterr_last", - "cppFunctionName": "GiterrLast", - "jsFunctionName": "errLast", - "cppClassName": "GitGiterr" - }, - { - "type": "function", - "file": "errors.h", - "args": [], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "giterr", - "cFunctionName": "giterr_set_oom", - "cppFunctionName": "GiterrSetOom", - "jsFunctionName": "errSetOom", - "cppClassName": "GitGiterr" - }, - { - "type": "function", - "file": "errors.h", - "args": [ - { - "name": "error_class", - "type": "int", - "comment": "One of the `git_error_t` enum above describing the\n general subsystem that is responsible for the error.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "string", - "type": "const char *", - "comment": "The formatted error message to keep", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "giterr", - "cFunctionName": "giterr_set_str", - "cppFunctionName": "GiterrSetStr", - "jsFunctionName": "errSetStr", - "cppClassName": "GitGiterr" - } - ], - "type": "class", - "cType": null, - "typeName": "giterr", - "cppClassName": "GitGiterr", - "jsClassName": "Giterr", - "filename": "giterr", - "isLibgitType": true, - "dependencies": [ - "../include/error.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "giterr" - }, - { - "functions": [ - { - "type": "function", - "file": "graph.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "commit", - "type": "const git_oid *", - "comment": "a previously loaded commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "ancestor", - "type": "const git_oid *", - "comment": "a potential ancestor commit.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the given commit is a descendant of the potential ancestor,\n 0 if not, error code otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "graph", - "cFunctionName": "git_graph_descendant_of", - "cppFunctionName": "DescendantOf", - "jsFunctionName": "descendantOf", - "cppClassName": "GitGraph" - } - ], - "type": "class", - "cType": null, - "typeName": "graph", - "cppClassName": "GitGraph", - "jsClassName": "Graph", - "filename": "graph", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "graph" - }, - { - "typeName": "idxentry_extended_flag", - "type": "enum", - "cType": "git_idxentry_extended_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_IDXENTRY_INTENT_TO_ADD", - "value": 8192, - "JsName": "IDXENTRY_INTENT_TO_ADD" - }, - { - "name": "GIT_IDXENTRY_SKIP_WORKTREE", - "value": 16384, - "JsName": "IDXENTRY_SKIP_WORKTREE" - }, - { - "name": "GIT_IDXENTRY_EXTENDED2", - "value": 32768, - "JsName": "IDXENTRY_EXTENDED2" - }, - { - "name": "GIT_IDXENTRY_EXTENDED_FLAGS", - "value": 24576, - "JsName": "S" - }, - { - "name": "GIT_IDXENTRY_UPDATE", - "value": 1, - "JsName": "IDXENTRY_UPDATE" - }, - { - "name": "GIT_IDXENTRY_REMOVE", - "value": 2, - "JsName": "IDXENTRY_REMOVE" - }, - { - "name": "GIT_IDXENTRY_UPTODATE", - "value": 4, - "JsName": "IDXENTRY_UPTODATE" - }, - { - "name": "GIT_IDXENTRY_ADDED", - "value": 8, - "JsName": "IDXENTRY_ADDED" - }, - { - "name": "GIT_IDXENTRY_HASHED", - "value": 16, - "JsName": "IDXENTRY_HASHED" - }, - { - "name": "GIT_IDXENTRY_UNHASHED", - "value": 32, - "JsName": "IDXENTRY_UNHASHED" - }, - { - "name": "GIT_IDXENTRY_WT_REMOVE", - "value": 64, - "JsName": "IDXENTRY_WT_REMOVE" - }, - { - "name": "GIT_IDXENTRY_CONFLICTED", - "value": 128, - "JsName": "IDXENTRY_CONFLICTED" - }, - { - "name": "GIT_IDXENTRY_UNPACKED", - "value": 256, - "JsName": "IDXENTRY_UNPACKED" - }, - { - "name": "GIT_IDXENTRY_NEW_SKIP_WORKTREE", - "value": 512, - "JsName": "IDXENTRY_NEW_SKIP_WORKTREE" - } - ], - "owner": "Enums", - "JsName": "IDXENTRY_EXTENDED_FLAG" - }, - { - "functions": [ - { - "type": "function", - "file": "ignore.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository to add ignore rules to.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "rules", - "type": "const char *", - "comment": "Text of rules, a la the contents of a .gitignore file.\n It is okay to have multiple rules in the text; if so,\n each rule should be terminated with a newline.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "ignore", - "cFunctionName": "git_ignore_add_rule", - "cppFunctionName": "AddRule", - "jsFunctionName": "addRule", - "cppClassName": "GitIgnore" - }, - { - "type": "function", - "file": "ignore.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository to remove ignore rules from.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "ignore", - "cFunctionName": "git_ignore_clear_internal_rules", - "cppFunctionName": "ClearInternalRules", - "jsFunctionName": "clearInternalRules", - "cppClassName": "GitIgnore" - } - ], - "type": "class", - "cType": null, - "typeName": "ignore", - "cppClassName": "GitIgnore", - "jsClassName": "Ignore", - "filename": "ignore", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "ignore" - }, - { - "type": "class", - "value": "git_index", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_checkout_index", - "git_cherry_pick_commit", - "git_diff_index_to_workdir", - "git_diff_tree_to_index", - "git_index_add", - "git_index_add_all", - "git_index_add_bypath", - "git_index_caps", - "git_index_clear", - "git_index_conflict_add", - "git_index_conflict_cleanup", - "git_index_conflict_get", - "git_index_conflict_iterator_new", - "git_index_conflict_remove", - "git_index_entrycount", - "git_index_find", - "git_index_free", - "git_index_get_byindex", - "git_index_get_bypath", - "git_index_has_conflicts", - "git_index_new", - "git_index_open", - "git_index_owner", - "git_index_path", - "git_index_read", - "git_index_read_tree", - "git_index_remove", - "git_index_remove_all", - "git_index_remove_bypath", - "git_index_remove_directory", - "git_index_set_caps", - "git_index_update_all", - "git_index_write", - "git_index_write_tree", - "git_index_write_tree_to", - "git_merge_commits", - "git_merge_trees", - "git_pathspec_match_index", - "git_repository_index", - "git_revert_commit" - ] - }, - "typeName": "index", - "cType": "git_index", - "functions": [ - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "source_entry", - "type": "const git_index_entry *", - "comment": "new entry object", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_add", - "cppFunctionName": "Add", - "jsFunctionName": "add", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "filename to add", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_add_bypath", - "cppFunctionName": "AddBypath", - "jsFunctionName": "addByPath", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "const git_index *", - "comment": "An existing index object", - "cType": "const git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " A combination of GIT_INDEXCAP values", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_caps", - "cppFunctionName": "Caps", - "jsFunctionName": "caps", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, error code \n<\n 0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_clear", - "cppFunctionName": "Clear", - "jsFunctionName": "clear", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "ancestor_entry", - "type": "const git_index_entry *", - "comment": "the entry data for the ancestor of the conflict", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "our_entry", - "type": "const git_index_entry *", - "comment": "the entry data for our side of the merge conflict", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "their_entry", - "type": "const git_index_entry *", - "comment": "the entry data for their side of the merge conflict", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_conflict_add", - "cppFunctionName": "ConflictAdd", - "jsFunctionName": "conflictAdd", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_conflict_cleanup", - "cppFunctionName": "ConflictCleanup", - "jsFunctionName": "conflictCleanup", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "path to remove conflicts for", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_conflict_remove", - "cppFunctionName": "ConflictRemove", - "jsFunctionName": "conflictRemove", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "entry", - "type": "const git_index_entry *", - "comment": "The entry", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " the stage number", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_entry_stage", - "cppFunctionName": "EntryStage", - "jsFunctionName": "entryStage", - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "const git_index *", - "comment": "an existing index object", - "cType": "const git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " integer of count of current entries", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_index_entrycount-29" - ] - }, - "cFunctionName": "git_index_entrycount", - "cppFunctionName": "Entrycount", - "jsFunctionName": "size", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "size_t", - "comment": "the position of the entry", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_index_entry *", - "comment": " a pointer to the entry; NULL if out of bounds", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - }, - "group": "index", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_index_get_byindex-30" - ] - }, - "cFunctionName": "git_index_get_byindex", - "cppFunctionName": "GetByindex", - "jsFunctionName": "entry", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "path to search", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "stage", - "type": "int", - "comment": "stage to search", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_index_entry *", - "comment": " a pointer to the entry; NULL if it was not found", - "cType": "const git_index_entry *", - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "isLibgitType": true, - "isEnum": false, - "ignore": false, - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_get_bypath", - "cppFunctionName": "GetBypath", - "jsFunctionName": "getBypath", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "const git_index *", - "comment": null, - "cType": "const git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if at least one conflict is found, 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_has_conflicts", - "cppFunctionName": "HasConflicts", - "jsFunctionName": "hasConflicts", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "the pointer for the new index", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "index_path", - "type": "const char *", - "comment": "the path to the index file in disk", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_open", - "cppFunctionName": "Open", - "jsFunctionName": "open", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "const git_index *", - "comment": "The index", - "cType": "const git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " A pointer to the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "const git_index *", - "comment": "an existing index object", - "cType": "const git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " path to index file or NULL for in-memory index", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_path", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "force", - "type": "int", - "comment": "if true, always reload, vs. only read if file has changed", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false, - "isOptional": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_read", - "cppFunctionName": "Read", - "jsFunctionName": "read", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "tree", - "type": "const git_tree *", - "comment": "tree to read", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_read_tree", - "cppFunctionName": "ReadTree", - "jsFunctionName": "readTree", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "path to search", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "stage", - "type": "int", - "comment": "stage to search", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_remove", - "cppFunctionName": "Remove", - "jsFunctionName": "remove", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "filename to remove", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_remove_bypath", - "cppFunctionName": "RemoveBypath", - "jsFunctionName": "removeByPath", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "dir", - "type": "const char *", - "comment": "container directory path", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "stage", - "type": "int", - "comment": "stage to search", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_remove_directory", - "cppFunctionName": "RemoveDirectory", - "jsFunctionName": "removeDirectory", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "An existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "caps", - "type": "int", - "comment": "A combination of GIT_INDEXCAP values", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_set_caps", - "cppFunctionName": "SetCaps", - "jsFunctionName": "setCaps", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "index", - "type": "git_index *", - "comment": "an existing index object", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "cFunctionName": "git_index_write", - "cppFunctionName": "Write", - "jsFunctionName": "write", - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - }, - { - "type": "function", - "file": "index.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "Pointer where to store the OID of the written tree", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "index", - "type": "git_index *", - "comment": "Index to write", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EUNMERGED when the index is not clean\n or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "index", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_index_write_tree-3" - ] - }, - "cFunctionName": "git_index_write_tree", - "cppFunctionName": "WriteTree", - "jsFunctionName": "writeTree", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitIndex" - } - ], - "cppClassName": "GitIndex", - "jsClassName": "Index", - "filename": "index", - "isLibgitType": true, - "dependencies": [ - "../include/index.h", - "../include/index_entry.h", - "../include/repository.h", - "../include/tree.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_index_free", - "name": "index" - }, - { - "typeName": "index_add_option", - "type": "enum", - "cType": "git_index_add_option_t", - "isMask": true, - "values": [ - { - "name": "GIT_INDEX_ADD_DEFAULT", - "value": 0, - "JsName": "ADD_DEFAULT" - }, - { - "name": "GIT_INDEX_ADD_FORCE", - "value": 1, - "JsName": "ADD_FORCE" - }, - { - "name": "GIT_INDEX_ADD_DISABLE_PATHSPEC_MATCH", - "value": 2, - "JsName": "ADD_DISABLE_PATHSPEC_MATCH" - }, - { - "name": "GIT_INDEX_ADD_CHECK_PATHSPEC", - "value": 4, - "JsName": "ADD_CHECK_PATHSPEC" - } - ], - "owner": "Index", - "JsName": "ADD_OPTION" - }, - { - "type": "class", - "value": "git_index_conflict_iterator", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_index_conflict_iterator_free", - "git_index_conflict_iterator_new", - "git_index_conflict_next" - ] - }, - "typeName": "index_conflict_iterator", - "cType": "git_index_conflict_iterator", - "functions": [], - "cppClassName": "GitIndexConflictIterator", - "jsClassName": "IndexConflictIterator", - "filename": "index_conflict_iterator", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "index_conflict_iterator" - }, - { - "type": "class", - "value": "git_index_entry", - "file": "index.h", - "fields": [ - { - "type": "git_index_time", - "name": "ctime", - "cType": "git_index_time", - "cppFunctionName": "Ctime", - "jsFunctionName": "ctime", - "cppClassName": "GitIndexTime", - "jsClassName": "IndexTime", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_index_time", - "name": "mtime", - "cType": "git_index_time", - "cppFunctionName": "Mtime", - "jsFunctionName": "mtime", - "cppClassName": "GitIndexTime", - "jsClassName": "IndexTime", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "unsigned int", - "name": "dev", - "cType": "unsigned int", - "cppFunctionName": "Dev", - "jsFunctionName": "dev", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "ino", - "cType": "unsigned int", - "cppFunctionName": "Ino", - "jsFunctionName": "ino", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "mode", - "cType": "unsigned int", - "cppFunctionName": "Mode", - "jsFunctionName": "mode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "uid", - "cType": "unsigned int", - "cppFunctionName": "Uid", - "jsFunctionName": "uid", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "gid", - "cType": "unsigned int", - "cppFunctionName": "Gid", - "jsFunctionName": "gid", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_off_t", - "name": "file_size", - "cType": "git_off_t", - "cppFunctionName": "FileSize", - "jsFunctionName": "fileSize", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "type": "git_oid", - "name": "id", - "cType": "git_oid", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "type": "unsigned short", - "name": "flags", - "cType": "unsigned short", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned short", - "name": "flags_extended", - "cType": "unsigned short", - "cppFunctionName": "FlagsExtended", - "jsFunctionName": "flagsExtended", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "path", - "cType": "const char *", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [ - "git_index_get_byindex", - "git_index_get_bypath" - ], - "needs": [ - "git_index_add", - "git_index_conflict_add", - "git_index_conflict_get", - "git_index_conflict_next", - "git_index_entry_stage", - "git_merge_file_from_index" - ] - }, - "typeName": "index_entry", - "cType": "git_index_entry", - "functions": [], - "cppClassName": "GitIndexEntry", - "jsClassName": "IndexEntry", - "filename": "index_entry", - "isLibgitType": true, - "dependencies": [ - "../include/index_time.h", - "../include/oid.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "ignore": false, - "name": "index_entry" - }, - { - "type": "class", - "value": "git_index_time", - "file": "index.h", - "fields": [ - { - "type": "git_time_t", - "name": "seconds", - "cType": "git_time_t", - "cppFunctionName": "Seconds", - "jsFunctionName": "seconds", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "type": "unsigned int", - "name": "nanoseconds", - "cType": "unsigned int", - "cppFunctionName": "Nanoseconds", - "jsFunctionName": "nanoseconds", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [] - }, - "typeName": "index_time", - "cType": "git_index_time", - "functions": [], - "cppClassName": "GitIndexTime", - "jsClassName": "IndexTime", - "filename": "index_time", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "index_time" - }, - { - "typeName": "indexcap", - "type": "enum", - "cType": "git_indexcap_t", - "isMask": true, - "values": [ - { - "name": "GIT_INDEXCAP_IGNORE_CASE", - "value": 1, - "JsName": "IGNORE_CASE" - }, - { - "name": "GIT_INDEXCAP_NO_FILEMODE", - "value": 2, - "JsName": "NO_FILEMODE" - }, - { - "name": "GIT_INDEXCAP_NO_SYMLINKS", - "value": 4, - "JsName": "NO_SYMLINKS" - }, - { - "name": "GIT_INDEXCAP_FROM_OWNER", - "value": -1, - "JsName": "FROM_OWNER" - } - ], - "owner": "Index", - "JsName": "CAP" - }, - { - "functions": [ - { - "type": "function", - "file": "indexer.h", - "args": [ - { - "name": "idx", - "type": "git_indexer *", - "comment": "the indexer", - "cType": "git_indexer *", - "cppClassName": "GitIndexer", - "jsClassName": "Indexer", - "isReturn": false, - "isSelf": true - }, - { - "name": "stats", - "type": "git_transfer_progress *", - "comment": null, - "cType": "git_transfer_progress *", - "cppClassName": "GitTransferProgress", - "jsClassName": "TransferProgress", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "indexer", - "examples": { - "network/index-pack.c": [ - "ex/v0.21.2/network/index-pack.html#git_indexer_commit-3" - ] - }, - "cFunctionName": "git_indexer_commit", - "cppFunctionName": "Commit", - "jsFunctionName": "commit", - "isPrototypeMethod": true, - "cppClassName": "GitIndexer" - }, - { - "type": "function", - "file": "indexer.h", - "args": [ - { - "name": "idx", - "type": "const git_indexer *", - "comment": "the indexer instance", - "cType": "const git_indexer *", - "cppClassName": "GitIndexer", - "jsClassName": "Indexer", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": null, - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "indexer", - "examples": { - "network/index-pack.c": [ - "ex/v0.21.2/network/index-pack.html#git_indexer_hash-4" - ] - }, - "cFunctionName": "git_indexer_hash", - "cppFunctionName": "Hash", - "jsFunctionName": "hash", - "isPrototypeMethod": true, - "cppClassName": "GitIndexer" - } - ], - "type": "class", - "cType": "git_indexer", - "typeName": "indexer", - "cppClassName": "GitIndexer", - "jsClassName": "Indexer", - "filename": "indexer", - "isLibgitType": true, - "dependencies": [ - "../include/indexer.h", - "../include/transfer_progress.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "freeFunctionName": "git_indexer_free", - "name": "indexer" - }, - { - "functions": [ - { - "type": "function", - "file": "common.h", - "args": [], - "return": { - "type": "int", - "comment": " A combination of GIT_FEATURE_* values.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "libgit2", - "cFunctionName": "git_libgit2_features", - "cppFunctionName": "Features", - "jsFunctionName": "features", - "cppClassName": "GitLibgit2" - }, - { - "type": "function", - "file": "common.h", - "args": [ - { - "name": "option", - "type": "int", - "comment": "Option key", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "libgit2", - "cFunctionName": "git_libgit2_opts", - "cppFunctionName": "Opts", - "jsFunctionName": "opts", - "cppClassName": "GitLibgit2" - }, - { - "type": "function", - "file": "common.h", - "args": [ - { - "name": "major", - "type": "int *", - "comment": "Store the major version number", - "cType": "int *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "minor", - "type": "int *", - "comment": "Store the minor version number", - "cType": "int *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "rev", - "type": "int *", - "comment": "Store the revision (patch) number", - "cType": "int *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "libgit2", - "cFunctionName": "git_libgit2_version", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "GitLibgit2" - } - ], - "type": "class", - "cType": null, - "typeName": "libgit2", - "cppClassName": "GitLibgit2", - "jsClassName": "Libgit2", - "filename": "libgit2", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "libgit2" - }, - { - "functions": [], - "type": "class", - "cType": null, - "typeName": "mempack", - "cppClassName": "GitMempack", - "jsClassName": "Mempack", - "filename": "mempack", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "mempack" - }, - { - "functions": [ - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "pointer to store the index result in", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository that contains the given trees", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "our_commit", - "type": "const git_commit *", - "comment": "the commit that reflects the destination tree", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "their_commit", - "type": "const git_commit *", - "comment": "the commit to merge in to `our_commit`", - "cType": "const git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_merge_options *", - "comment": "the merge tree options (or null for defaults)", - "cType": "const git_merge_options *", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_commits", - "cppFunctionName": "Commits", - "jsFunctionName": "commits", - "isAsync": true, - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "opts", - "type": "git_merge_file_input *", - "comment": "the `git_merge_file_input` instance to initialize.", - "cType": "git_merge_file_input *", - "cppClassName": "GitMergeFileInput", - "jsClassName": "MergeFileInput", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "the version of the struct; you should pass\n `GIT_MERGE_FILE_INPUT_VERSION` here.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_file_init_input", - "cppFunctionName": "FileInitInput", - "jsFunctionName": "fileInitInput", - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "head", - "type": "git_merge_head *", - "comment": "merge head to free", - "cType": "git_merge_head *", - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_head_free", - "cppFunctionName": "HeadFree", - "jsFunctionName": "headFree", - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "out", - "type": "git_merge_head **", - "comment": "pointer to store the git_merge_head result in", - "cType": "git_merge_head **", - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository that contains the given commit", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "branch_name", - "type": "const char *", - "comment": "name of the (remote) branch", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "remote_url", - "type": "const char *", - "comment": "url of the remote", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "oid", - "type": "const git_oid *", - "comment": "the commit object id to use as a merge input", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_head_from_fetchhead", - "cppFunctionName": "HeadFromFetchhead", - "jsFunctionName": "headFromFetchhead", - "isAsync": true, - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "out", - "type": "git_merge_head **", - "comment": "pointer to store the git_merge_head result in", - "cType": "git_merge_head **", - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository that contains the given commit", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "the commit object id to use as a merge input", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_head_from_id", - "cppFunctionName": "HeadFromId", - "jsFunctionName": "headFromId", - "isAsync": true, - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "out", - "type": "git_merge_head **", - "comment": "pointer to store the git_merge_head result in", - "cType": "git_merge_head **", - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository that contains the given reference", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "ref", - "type": "const git_reference *", - "comment": "reference to use as a merge input", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_head_from_ref", - "cppFunctionName": "HeadFromRef", - "jsFunctionName": "headFromRef", - "isAsync": true, - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "head", - "type": "const git_merge_head *", - "comment": "the given merge head", - "cType": "const git_merge_head *", - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_oid *", - "comment": " commit id", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_head_id", - "cppFunctionName": "HeadId", - "jsFunctionName": "headId", - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "opts", - "type": "git_merge_options *", - "comment": "the `git_merge_options` instance to initialize.", - "cType": "git_merge_options *", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "the version of the struct; you should pass\n `GIT_MERGE_OPTIONS_VERSION` here.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitMerge" - }, - { - "type": "function", - "file": "merge.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "pointer to store the index result in", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository that contains the given trees", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "ancestor_tree", - "type": "const git_tree *", - "comment": "the common ancestor between the trees (or null if none)", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "our_tree", - "type": "const git_tree *", - "comment": "the tree that reflects the destination tree", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "their_tree", - "type": "const git_tree *", - "comment": "the tree to merge in to `our_tree`", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_merge_options *", - "comment": "the merge tree options (or null for defaults)", - "cType": "const git_merge_options *", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "merge", - "cFunctionName": "git_merge_trees", - "cppFunctionName": "Trees", - "jsFunctionName": "trees", - "isAsync": true, - "cppClassName": "GitMerge" - } - ], - "type": "class", - "cType": null, - "typeName": "merge", - "cppClassName": "GitMerge", - "jsClassName": "Merge", - "filename": "merge", - "isLibgitType": true, - "dependencies": [ - "../include/index.h", - "../include/repository.h", - "../include/commit.h", - "../include/merge_options.h", - "../include/merge_file_input.h", - "../include/merge_head.h", - "../include/oid.h", - "../include/reference.h", - "../include/tree.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "merge" - }, - { - "typeName": "merge_analysis", - "type": "enum", - "cType": "git_merge_analysis_t", - "isMask": true, - "values": [ - { - "name": "GIT_MERGE_ANALYSIS_NONE", - "value": 0, - "JsName": "NONE" - }, - { - "name": "GIT_MERGE_ANALYSIS_NORMAL", - "value": 1, - "JsName": "NORMAL" - }, - { - "name": "GIT_MERGE_ANALYSIS_UP_TO_DATE", - "value": 2, - "JsName": "UP_TO_DATE" - }, - { - "name": "GIT_MERGE_ANALYSIS_FASTFORWARD", - "value": 4, - "JsName": "FASTFORWARD" - }, - { - "name": "GIT_MERGE_ANALYSIS_UNBORN", - "value": 8, - "JsName": "UNBORN" - } - ], - "owner": "Merge", - "JsName": "ANALYSIS" - }, - { - "typeName": "merge_file_favor", - "type": "enum", - "cType": "git_merge_file_favor_t", - "isMask": true, - "values": [ - { - "name": "GIT_MERGE_FILE_FAVOR_NORMAL", - "value": 0, - "JsName": "NORMAL" - }, - { - "name": "GIT_MERGE_FILE_FAVOR_OURS", - "value": 1, - "JsName": "OURS" - }, - { - "name": "GIT_MERGE_FILE_FAVOR_THEIRS", - "value": 2, - "JsName": "THEIRS" - }, - { - "name": "GIT_MERGE_FILE_FAVOR_UNION", - "value": 3, - "JsName": "UNION" - } - ], - "owner": "Merge", - "JsName": "FILE_FAVOR" - }, - { - "type": "struct", - "value": "git_merge_file_input", - "file": "merge.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "ptr", - "cType": "const char *", - "cppFunctionName": "Ptr", - "jsFunctionName": "ptr", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "size", - "cType": "size_t", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "path", - "cType": "const char *", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "mode", - "cType": "unsigned int", - "cppFunctionName": "Mode", - "jsFunctionName": "mode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_merge_file", - "git_merge_file_init_input" - ] - }, - "typeName": "merge_file_input", - "cType": "git_merge_file_input", - "functions": [], - "cppClassName": "GitMergeFileInput", - "jsClassName": "MergeFileInput", - "filename": "merge_file_input", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "merge_file_input" - }, - { - "type": "class", - "value": "git_merge_head", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_merge", - "git_merge_analysis", - "git_merge_head_free", - "git_merge_head_from_fetchhead", - "git_merge_head_from_id", - "git_merge_head_from_ref", - "git_merge_head_id" - ] - }, - "typeName": "merge_head", - "cType": "git_merge_head", - "functions": [], - "cppClassName": "GitMergeHead", - "jsClassName": "MergeHead", - "filename": "merge_head", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "merge_head" - }, - { - "type": "struct", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_merge_tree_flag_t", - "name": "flags", - "cType": "git_merge_tree_flag_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true, - "isMask": true - }, - { - "type": "unsigned int", - "name": "rename_threshold", - "cType": "unsigned int", - "cppFunctionName": "RenameThreshold", - "jsFunctionName": "renameThreshold", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "target_limit", - "cType": "unsigned int", - "cppFunctionName": "TargetLimit", - "jsFunctionName": "targetLimit", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_merge_file_favor_t", - "name": "file_favor", - "cType": "git_merge_file_favor_t", - "cppFunctionName": "FileFavor", - "jsFunctionName": "fileFavor", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true, - "isMask": true - } - ], - "used": { - "needs": [ - "git_merge_init_options" - ] - }, - "typeName": "merge_options", - "cType": "git_merge_options", - "functions": [], - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "filename": "merge_options", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "merge_options" - }, - { - "type": "class", - "value": "git_merge_result", - "file": "types.h", - "used": { - "returns": [], - "needs": [] - }, - "typeName": "merge_result", - "cType": "git_merge_result", - "functions": [], - "cppClassName": "GitMergeResult", - "jsClassName": "MergeResult", - "filename": "merge_result", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "merge_result" - }, - { - "typeName": "merge_tree_flag", - "type": "enum", - "cType": "git_merge_tree_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_MERGE_TREE_FIND_RENAMES", - "value": 1, - "JsName": "TREE_FIND_RENAMES" - } - ], - "owner": "Merge", - "JsName": "TREE_FLAG" - }, - { - "functions": [], - "type": "class", - "cType": null, - "typeName": "message", - "cppClassName": "GitMessage", - "jsClassName": "Message", - "filename": "message", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "message" - }, - { - "type": "class", - "value": "git_note", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_note_free", - "git_note_id", - "git_note_message", - "git_note_read" - ] - }, - "typeName": "note", - "cType": "git_note", - "functions": [ - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "pointer to store the OID (optional); NULL in case of error", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where to store the note", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "author", - "type": "const git_signature *", - "comment": "signature of the notes commit author", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": "signature of the notes commit committer", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "notes_ref", - "type": "const char *", - "comment": "canonical name of the reference to use (optional);\n\t\t\t\t\tdefaults to \"refs/notes/commits\"", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "oid", - "type": "const git_oid *", - "comment": "OID of the git object to decorate", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "note", - "type": "const char *", - "comment": "Content of the note to add for object oid", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing note", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "out", - "type": "const char **", - "comment": "Pointer to the default notes reference", - "cType": "const char **", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The Git repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_default_ref", - "cppFunctionName": "DefaultRef", - "jsFunctionName": "defaultRef", - "isAsync": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "note", - "type": "const git_note *", - "comment": "the note", - "cType": "const git_note *", - "cppClassName": "GitNote", - "jsClassName": "Note", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " the note object's id", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "it", - "type": "git_note_iterator *", - "comment": "pointer to the iterator", - "cType": "git_note_iterator *", - "cppClassName": "GitNoteIterator", - "jsClassName": "NoteIterator", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_iterator_free", - "cppFunctionName": "IteratorFree", - "jsFunctionName": "iteratorFree", - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "out", - "type": "git_note_iterator **", - "comment": "pointer to the iterator", - "cType": "git_note_iterator **", - "cppClassName": "GitNoteIterator", - "jsClassName": "NoteIterator", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where to look up the note", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "notes_ref", - "type": "const char *", - "comment": "canonical name of the reference to use (optional); defaults to\n \"refs/notes/commits\"", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_iterator_new", - "cppFunctionName": "IteratorNew", - "jsFunctionName": "iteratorNew", - "isAsync": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "note", - "type": "const git_note *", - "comment": "the note", - "cType": "const git_note *", - "cppClassName": "GitNote", - "jsClassName": "Note", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the note message", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_message", - "cppFunctionName": "Message", - "jsFunctionName": "message", - "isPrototypeMethod": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "note_id", - "type": "git_oid *", - "comment": "id of blob containing the message", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "annotated_id", - "type": "git_oid *", - "comment": "id of the git object being annotated", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "it", - "type": "git_note_iterator *", - "comment": "pointer to the iterator", - "cType": "git_note_iterator *", - "cppClassName": "GitNoteIterator", - "jsClassName": "NoteIterator", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 (no error), GIT_ITEROVER (iteration is done) or an error code\n (negative value)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_next", - "cppFunctionName": "Next", - "jsFunctionName": "next", - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "out", - "type": "git_note **", - "comment": "pointer to the read note; NULL in case of error", - "cType": "git_note **", - "cppClassName": "GitNote", - "jsClassName": "Note", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where to look up the note", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "notes_ref", - "type": "const char *", - "comment": "canonical name of the reference to use (optional); defaults to\n \"refs/notes/commits\"", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "oid", - "type": "const git_oid *", - "comment": "OID of the git object to read the note from", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_read", - "cppFunctionName": "Read", - "jsFunctionName": "read", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitNote" - }, - { - "type": "function", - "file": "notes.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where the note lives", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "notes_ref", - "type": "const char *", - "comment": "canonical name of the reference to use (optional);\n\t\t\t\t\tdefaults to \"refs/notes/commits\"", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "author", - "type": "const git_signature *", - "comment": "signature of the notes commit author", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": "signature of the notes commit committer", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "oid", - "type": "const git_oid *", - "comment": "OID of the git object to remove the note from", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "note", - "cFunctionName": "git_note_remove", - "cppFunctionName": "Remove", - "jsFunctionName": "remove", - "cppClassName": "GitNote" - } - ], - "cppClassName": "GitNote", - "jsClassName": "Note", - "filename": "note", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h", - "../include/repository.h", - "../include/signature.h", - "../include/note.h", - "../include/note_iterator.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_note_free", - "name": "note" - }, - { - "type": "class", - "value": "git_note_iterator", - "file": "notes.h", - "used": { - "returns": [], - "needs": [ - "git_note_iterator_free", - "git_note_iterator_new", - "git_note_next" - ] - }, - "typeName": "note_iterator", - "cType": "git_note_iterator", - "functions": [], - "cppClassName": "GitNoteIterator", - "jsClassName": "NoteIterator", - "filename": "note_iterator", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "note_iterator" - }, - { - "type": "class", - "value": "git_object", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_checkout_tree", - "git_object_dup", - "git_object_free", - "git_object_id", - "git_object_lookup", - "git_object_lookup_bypath", - "git_object_lookup_prefix", - "git_object_owner", - "git_object_peel", - "git_object_short_id", - "git_object_type", - "git_reference_peel", - "git_revparse_ext", - "git_revparse_single", - "git_tag_annotation_create", - "git_tag_create", - "git_tag_create_lightweight", - "git_tag_peel", - "git_tag_target", - "git_tree_entry_to_object" - ] - }, - "typeName": "object", - "cType": "git_object", - "functions": [ - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "type", - "type": "git_otype", - "comment": "object type to get its size", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " size in bytes of the object", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object__size", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "dest", - "type": "git_object **", - "comment": "Pointer to store the copy of the object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "source", - "type": "git_object *", - "comment": "Original object to copy", - "cType": "git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": null, - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_dup", - "cppFunctionName": "Dup", - "jsFunctionName": "dup", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "obj", - "type": "const git_object *", - "comment": "the repository object", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " the SHA1 id", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "object", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_object_id-8", - "ex/v0.21.2/blame.html#git_object_id-9", - "ex/v0.21.2/blame.html#git_object_id-10", - "ex/v0.21.2/blame.html#git_object_id-11" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_object_id-10", - "ex/v0.21.2/cat-file.html#git_object_id-11" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_object_id-32", - "ex/v0.21.2/log.html#git_object_id-33", - "ex/v0.21.2/log.html#git_object_id-34", - "ex/v0.21.2/log.html#git_object_id-35" - ], - "rev-parse.c": [ - "ex/v0.21.2/rev-parse.html#git_object_id-2", - "ex/v0.21.2/rev-parse.html#git_object_id-3", - "ex/v0.21.2/rev-parse.html#git_object_id-4", - "ex/v0.21.2/rev-parse.html#git_object_id-5", - "ex/v0.21.2/rev-parse.html#git_object_id-6" - ] - }, - "cFunctionName": "git_object_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "object", - "type": "git_object **", - "comment": "pointer to the looked-up object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to look up the object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "the unique identifier for the object", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "type", - "type": "git_otype", - "comment": "the type of the object", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_object_lookup-31" - ] - }, - "cFunctionName": "git_object_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "out", - "type": "git_object **", - "comment": "buffer that receives a pointer to the object (which must be freed\n by the caller)", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "treeish", - "type": "const git_object *", - "comment": "root object that can be peeled to a tree", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "relative path from the root object to the desired object", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "type", - "type": "git_otype", - "comment": "type of object desired", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_lookup_bypath", - "cppFunctionName": "LookupBypath", - "jsFunctionName": "lookupBypath", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "object_out", - "type": "git_object **", - "comment": "pointer where to store the looked-up object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to look up the object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "a short identifier for the object", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "the length of the short identifier", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "type", - "type": "git_otype", - "comment": "the type of the object", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_lookup_prefix", - "cppFunctionName": "LookupPrefix", - "jsFunctionName": "lookupPrefix", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "obj", - "type": "const git_object *", - "comment": "the object", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " the repository who owns this object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "peeled", - "type": "git_object **", - "comment": "Pointer to the peeled git_object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "object", - "type": "const git_object *", - "comment": "The object to be processed", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "target_type", - "type": "git_otype", - "comment": "The type of the requested object (GIT_OBJ_COMMIT,\n GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY).", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_peel", - "cppFunctionName": "Peel", - "jsFunctionName": "peel", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "out", - "type": "git_buf *", - "comment": "Buffer to write string into", - "cType": "git_buf *", - "cppClassName": "GitBuf", - "jsClassName": "Buf", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "shouldAlloc": true - }, - { - "name": "obj", - "type": "const git_object *", - "comment": "The object to get an ID for", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 for error", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "examples": { - "tag.c": [ - "ex/v0.21.2/tag.html#git_object_short_id-3" - ] - }, - "cFunctionName": "git_object_short_id", - "cppFunctionName": "ShortId", - "jsFunctionName": "shortId", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "str", - "type": "const char *", - "comment": "the string to convert.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_otype", - "comment": " the corresponding git_otype.", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_string2type", - "cppFunctionName": "String2type", - "jsFunctionName": "string2type", - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "obj", - "type": "const git_object *", - "comment": "the repository object", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_otype", - "comment": " the object's type", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - }, - "group": "object", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_object_type-12", - "ex/v0.21.2/cat-file.html#git_object_type-13", - "ex/v0.21.2/cat-file.html#git_object_type-14" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_object_type-4" - ] - }, - "cFunctionName": "git_object_type", - "cppFunctionName": "Type", - "jsFunctionName": "type", - "isPrototypeMethod": true, - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "type", - "type": "git_otype", - "comment": "object type to convert.", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const char *", - "comment": " the corresponding string representation.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_object_type2string-16", - "ex/v0.21.2/cat-file.html#git_object_type2string-17", - "ex/v0.21.2/cat-file.html#git_object_type2string-18", - "ex/v0.21.2/cat-file.html#git_object_type2string-19" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_object_type2string-32" - ] - }, - "cFunctionName": "git_object_type2string", - "cppFunctionName": "Type2string", - "jsFunctionName": "type2string", - "cppClassName": "GitObject" - }, - { - "type": "function", - "file": "object.h", - "args": [ - { - "name": "type", - "type": "git_otype", - "comment": "object type to test.", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " true if the type represents a valid loose object type,\n false otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "object", - "cFunctionName": "git_object_typeisloose", - "cppFunctionName": "Typeisloose", - "jsFunctionName": "typeisloose", - "cppClassName": "GitObject" - } - ], - "cppClassName": "GitObject", - "jsClassName": "Object", - "filename": "object", - "isLibgitType": true, - "dependencies": [ - "../include/object.h", - "../include/oid.h", - "../include/repository.h", - "../include/buf.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_object_free", - "name": "object" - }, - { - "type": "class", - "value": "git_odb", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_indexer_new", - "git_odb_add_alternate", - "git_odb_add_backend", - "git_odb_add_disk_alternate", - "git_odb_exists", - "git_odb_exists_prefix", - "git_odb_foreach", - "git_odb_free", - "git_odb_get_backend", - "git_odb_new", - "git_odb_num_backends", - "git_odb_open", - "git_odb_open_rstream", - "git_odb_open_wstream", - "git_odb_read", - "git_odb_read_header", - "git_odb_read_prefix", - "git_odb_refresh", - "git_odb_write", - "git_odb_write_pack", - "git_repository_odb", - "git_repository_wrap_odb" - ] - }, - "typeName": "odb", - "cType": "git_odb", - "functions": [ - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "odb", - "type": "git_odb *", - "comment": "database to add the backend to", - "cType": "git_odb *", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "path to the objects folder for the alternate", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; error code otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "cFunctionName": "git_odb_add_disk_alternate", - "cppFunctionName": "AddDiskAlternate", - "jsFunctionName": "addDiskAlternate", - "isPrototypeMethod": true, - "cppClassName": "GitOdb" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "out", - "type": "git_odb **", - "comment": "location to store the database pointer, if opened.\n\t\t\tSet to NULL if the open failed.", - "cType": "git_odb **", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "objects_dir", - "type": "const char *", - "comment": "path of the backends' \"objects\" directory.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "cFunctionName": "git_odb_open", - "cppFunctionName": "Open", - "jsFunctionName": "open", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitOdb" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "out", - "type": "git_odb_object **", - "comment": "pointer where to store the read object", - "cType": "git_odb_object **", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "db", - "type": "git_odb *", - "comment": "database to search for the object in.", - "cType": "git_odb *", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the object to read.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " - 0 if the object was read;\n - GIT_ENOTFOUND if the object is not in the database.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_odb_read-21" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_odb_read-33" - ] - }, - "cFunctionName": "git_odb_read", - "cppFunctionName": "Read", - "jsFunctionName": "read", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitOdb" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "pointer to store the OID result of the write", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "odb", - "type": "git_odb *", - "comment": "object database where to store the object", - "cType": "git_odb *", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "data", - "type": "const void *", - "comment": "buffer with the data to store", - "cType": "const void *", - "cppClassName": "Wrapper", - "jsClassName": "Buffer", - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "size of the buffer", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "type", - "type": "git_otype", - "comment": "type of the data to store", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_odb_write-34" - ] - }, - "cFunctionName": "git_odb_write", - "cppFunctionName": "Write", - "jsFunctionName": "write", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitOdb" - } - ], - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "filename": "odb", - "isLibgitType": true, - "dependencies": [ - "../include/odb.h", - "../include/odb_object.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_odb_free", - "name": "odb" - }, - { - "type": "class", - "value": "git_odb_object", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_odb_object_data", - "git_odb_object_dup", - "git_odb_object_free", - "git_odb_object_id", - "git_odb_object_size", - "git_odb_object_type", - "git_odb_read", - "git_odb_read_prefix" - ] - }, - "typeName": "odb_object", - "cType": "git_odb_object", - "functions": [ - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "object", - "type": "git_odb_object *", - "comment": "the object", - "cType": "git_odb_object *", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const void *", - "comment": " a pointer to the data", - "cType": "const void *", - "cppClassName": "Wrapper", - "jsClassName": "Buffer", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_odb_object_data-36" - ] - }, - "cFunctionName": "git_odb_object_data", - "cppFunctionName": "Data", - "jsFunctionName": "data", - "isPrototypeMethod": true, - "cppClassName": "GitOdbObject" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "dest", - "type": "git_odb_object **", - "comment": "pointer where to store the copy", - "cType": "git_odb_object **", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "source", - "type": "git_odb_object *", - "comment": "object to copy", - "cType": "git_odb_object *", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "cFunctionName": "git_odb_object_dup", - "cppFunctionName": "Dup", - "jsFunctionName": "dup", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitOdbObject" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "object", - "type": "git_odb_object *", - "comment": "the object", - "cType": "git_odb_object *", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " a pointer to the OID", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "cFunctionName": "git_odb_object_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitOdbObject" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "object", - "type": "git_odb_object *", - "comment": "the object", - "cType": "git_odb_object *", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " the size", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_odb_object_size-23" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_odb_object_size-37" - ] - }, - "cFunctionName": "git_odb_object_size", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "isPrototypeMethod": true, - "cppClassName": "GitOdbObject" - }, - { - "type": "function", - "file": "odb.h", - "args": [ - { - "name": "object", - "type": "git_odb_object *", - "comment": "the object", - "cType": "git_odb_object *", - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_otype", - "comment": " the type", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - }, - "group": "odb", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_odb_object_type-38" - ] - }, - "cFunctionName": "git_odb_object_type", - "cppFunctionName": "Type", - "jsFunctionName": "type", - "isPrototypeMethod": true, - "cppClassName": "GitOdbObject" - } - ], - "cppClassName": "GitOdbObject", - "jsClassName": "OdbObject", - "filename": "odb_object", - "isLibgitType": true, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h", - "../include/odb_object.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_odb_object_free", - "name": "odb_object" - }, - { - "typeName": "odb_stream", - "type": "enum", - "cType": "git_odb_stream_t", - "isMask": true, - "values": [ - { - "name": "GIT_STREAM_RDONLY", - "value": 2, - "JsName": "RDONLY" - }, - { - "name": "GIT_STREAM_WRONLY", - "value": 4, - "JsName": "WRONLY" - }, - { - "name": "GIT_STREAM_RW", - "value": 6, - "JsName": "RW" - } - ], - "owner": "Odb", - "JsName": "STREAM" - }, - { - "type": "class", - "value": "git_oid", - "file": "oid.h", - "fields": [], - "used": { - "returns": [ - "git_blob_id", - "git_commit_id", - "git_commit_parent_id", - "git_commit_tree_id", - "git_filter_source_id", - "git_indexer_hash", - "git_merge_head_id", - "git_note_id", - "git_object_id", - "git_odb_object_id", - "git_packbuilder_hash", - "git_reference_target", - "git_reference_target_peel", - "git_reflog_entry_id_new", - "git_reflog_entry_id_old", - "git_submodule_head_id", - "git_submodule_index_id", - "git_submodule_wd_id", - "git_tag_id", - "git_tag_target_id", - "git_tree_entry_id", - "git_tree_id" - ], - "needs": [ - "git_blob_create_frombuffer", - "git_blob_create_fromchunks", - "git_blob_create_fromdisk", - "git_blob_create_fromworkdir", - "git_blob_lookup", - "git_blob_lookup_prefix", - "git_commit_amend", - "git_commit_create", - "git_commit_create_from_callback", - "git_commit_create_from_ids", - "git_commit_create_v", - "git_commit_lookup", - "git_commit_lookup_prefix", - "git_graph_ahead_behind", - "git_graph_descendant_of", - "git_index_write_tree", - "git_index_write_tree_to", - "git_merge_base", - "git_merge_base_many", - "git_merge_base_octopus", - "git_merge_head_from_fetchhead", - "git_merge_head_from_id", - "git_note_create", - "git_note_next", - "git_note_read", - "git_note_remove", - "git_object_lookup", - "git_object_lookup_prefix", - "git_odb_exists", - "git_odb_exists_prefix", - "git_odb_hash", - "git_odb_hashfile", - "git_odb_open_rstream", - "git_odb_read", - "git_odb_read_header", - "git_odb_read_prefix", - "git_odb_stream_finalize_write", - "git_odb_write", - "git_oid_allocfmt", - "git_oid_cmp", - "git_oid_cpy", - "git_oid_equal", - "git_oid_fmt", - "git_oid_fromraw", - "git_oid_fromstr", - "git_oid_fromstrn", - "git_oid_fromstrp", - "git_oid_iszero", - "git_oid_ncmp", - "git_oid_nfmt", - "git_oid_pathfmt", - "git_oid_strcmp", - "git_oid_streq", - "git_oid_tostr", - "git_packbuilder_insert", - "git_packbuilder_insert_commit", - "git_packbuilder_insert_tree", - "git_reference__alloc", - "git_reference_create", - "git_reference_create_matching", - "git_reference_name_to_id", - "git_reference_set_target", - "git_reflog_append", - "git_repository_hashfile", - "git_repository_set_head_detached", - "git_revwalk_hide", - "git_revwalk_next", - "git_revwalk_push", - "git_tag_annotation_create", - "git_tag_create", - "git_tag_create_frombuffer", - "git_tag_create_lightweight", - "git_tag_lookup", - "git_tag_lookup_prefix", - "git_tree_entry_byid", - "git_tree_lookup", - "git_tree_lookup_prefix", - "git_treebuilder_insert", - "git_treebuilder_write" - ] - }, - "typeName": "oid", - "cType": "git_oid", - "functions": [ - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "id", - "type": "const git_oid *", - "comment": "the oid structure to format", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "char *", - "comment": " the c-string; NULL if memory is exhausted. Caller must\n\t\t\tdeallocate the string with git__free().", - "cType": "char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_allocfmt", - "cppFunctionName": "Allocfmt", - "jsFunctionName": "allocfmt", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "a", - "type": "const git_oid *", - "comment": "first oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "b", - "type": "const git_oid *", - "comment": "second oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " \n<\n0, 0, >0 if a \n<\n b, a == b, a > b.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_cmp", - "cppFunctionName": "Cmp", - "jsFunctionName": "cmp", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "a", - "type": "const git_oid *", - "comment": "first oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "b", - "type": "const git_oid *", - "comment": "second oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " true if equal, false otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_equal", - "cppFunctionName": "Equal", - "jsFunctionName": "equal", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "oid structure the result is written into.", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "str", - "type": "const char *", - "comment": "input hex string; must be pointing at the start of\n\t\tthe hex sequence and have at least the number of bytes\n\t\tneeded for an oid encoded in hex (40 bytes).", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_oid_fromstr-39", - "ex/v0.21.2/general.html#git_oid_fromstr-40", - "ex/v0.21.2/general.html#git_oid_fromstr-41", - "ex/v0.21.2/general.html#git_oid_fromstr-42", - "ex/v0.21.2/general.html#git_oid_fromstr-43", - "ex/v0.21.2/general.html#git_oid_fromstr-44", - "ex/v0.21.2/general.html#git_oid_fromstr-45", - "ex/v0.21.2/general.html#git_oid_fromstr-46" - ] - }, - "cFunctionName": "git_oid_fromstr", - "cppFunctionName": "Fromstr", - "jsFunctionName": "fromString", - "isAsync": false, - "isConstructorMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "id", - "type": "const git_oid *", - "comment": null, - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if all zeros, 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_oid_iszero-21" - ], - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_oid_iszero-3" - ] - }, - "cFunctionName": "git_oid_iszero", - "cppFunctionName": "Iszero", - "jsFunctionName": "iszero", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "a", - "type": "const git_oid *", - "comment": "first oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "b", - "type": "const git_oid *", - "comment": "second oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "len", - "type": "size_t", - "comment": "the number of hex chars to compare", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 in case of a match", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_ncmp", - "cppFunctionName": "Ncmp", - "jsFunctionName": "ncmp", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "id", - "type": "const git_oid *", - "comment": "oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "str", - "type": "const char *", - "comment": "input hex string of an object id.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " -1 if str is not valid, \n<\n0 if id sorts before str,\n 0 if id matches str, >0 if id sorts after str.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_strcmp", - "cppFunctionName": "Strcmp", - "jsFunctionName": "strcmp", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - }, - { - "type": "function", - "file": "oid.h", - "args": [ - { - "name": "id", - "type": "const git_oid *", - "comment": "oid structure.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": true - }, - { - "name": "str", - "type": "const char *", - "comment": "input hex string of an object id.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 in case of a match, -1 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "oid", - "cFunctionName": "git_oid_streq", - "cppFunctionName": "Streq", - "jsFunctionName": "streq", - "isPrototypeMethod": true, - "cppClassName": "GitOid" - } - ], - "cppClassName": "GitOid", - "jsClassName": "Oid", - "filename": "oid", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "shouldAlloc": true, - "name": "oid" - }, - { - "type": "class", - "value": "git_oid_shorten", - "file": "oid.h", - "used": { - "returns": [ - "git_oid_shorten_new" - ], - "needs": [ - "git_oid_shorten_add", - "git_oid_shorten_free" - ] - }, - "typeName": "oid_shorten", - "cType": "git_oid_shorten", - "functions": [], - "cppClassName": "GitOidShorten", - "jsClassName": "OidShorten", - "filename": "oid_shorten", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "oid_shorten" - }, - { - "typeName": "otype", - "type": "enum", - "cType": "git_otype", - "isMask": false, - "values": [ - { - "name": "GIT_OBJ_ANY", - "value": -2, - "JsName": "OBJ_ANY" - }, - { - "name": "GIT_OBJ_BAD", - "value": -1, - "JsName": "OBJ_BAD" - }, - { - "name": "GIT_OBJ__EXT1", - "value": 0, - "JsName": "OBJ__EXT1" - }, - { - "name": "GIT_OBJ_COMMIT", - "value": 1, - "JsName": "OBJ_COMMIT" - }, - { - "name": "GIT_OBJ_TREE", - "value": 2, - "JsName": "OBJ_TREE" - }, - { - "name": "GIT_OBJ_BLOB", - "value": 3, - "JsName": "OBJ_BLOB" - }, - { - "name": "GIT_OBJ_TAG", - "value": 4, - "JsName": "OBJ_TAG" - }, - { - "name": "GIT_OBJ__EXT2", - "value": 5, - "JsName": "OBJ__EXT2" - }, - { - "name": "GIT_OBJ_OFS_DELTA", - "value": 6, - "JsName": "OBJ_OFS_DELTA" - }, - { - "name": "GIT_OBJ_REF_DELTA", - "value": 7, - "JsName": "OBJ_REF_DELTA" - } - ], - "owner": "Enums", - "JsName": "OTYPE" - }, - { - "type": "class", - "value": "git_packbuilder", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_packbuilder_foreach", - "git_packbuilder_free", - "git_packbuilder_hash", - "git_packbuilder_insert", - "git_packbuilder_insert_commit", - "git_packbuilder_insert_tree", - "git_packbuilder_new", - "git_packbuilder_object_count", - "git_packbuilder_set_callbacks", - "git_packbuilder_set_threads", - "git_packbuilder_write", - "git_packbuilder_written" - ] - }, - "typeName": "packbuilder", - "cType": "git_packbuilder", - "functions": [ - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "The packbuilder object", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": null, - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_hash", - "cppFunctionName": "Hash", - "jsFunctionName": "hash", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "The packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The oid of the commit", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name; might be NULL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_insert", - "cppFunctionName": "Insert", - "jsFunctionName": "insert", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "The packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The oid of the commit", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_insert_commit", - "cppFunctionName": "InsertCommit", - "jsFunctionName": "insertCommit", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "The packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The oid of the root tree", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_insert_tree", - "cppFunctionName": "InsertTree", - "jsFunctionName": "insertTree", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "the packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "uint32_t", - "comment": " the number of objects in the packfile", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_object_count", - "cppFunctionName": "ObjectCount", - "jsFunctionName": "objectCount", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "The packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "unsigned int", - "comment": "Number of threads to spawn", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "unsigned int", - "comment": " number of actual threads to be used", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_set_threads", - "cppFunctionName": "SetThreads", - "jsFunctionName": "setThreads", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - }, - { - "type": "function", - "file": "pack.h", - "args": [ - { - "name": "pb", - "type": "git_packbuilder *", - "comment": "the packbuilder", - "cType": "git_packbuilder *", - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "uint32_t", - "comment": " the number of objects which have already been written", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "packbuilder", - "cFunctionName": "git_packbuilder_written", - "cppFunctionName": "Written", - "jsFunctionName": "written", - "isPrototypeMethod": true, - "cppClassName": "GitPackbuilder" - } - ], - "cppClassName": "GitPackbuilder", - "jsClassName": "Packbuilder", - "filename": "packbuilder", - "isLibgitType": true, - "dependencies": [ - "../include/packbuilder.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_packbuilder_free", - "name": "packbuilder" - }, - { - "typeName": "packbuilder_stage", - "type": "enum", - "cType": "git_packbuilder_stage_t", - "isMask": true, - "values": [ - { - "name": "GIT_PACKBUILDER_ADDING_OBJECTS", - "value": 0, - "JsName": "ADDING_OBJECTS" - }, - { - "name": "GIT_PACKBUILDER_DELTAFICATION", - "value": 1, - "JsName": "DELTAFICATION" - } - ], - "owner": "Packbuilder", - "JsName": "STAGE" - }, - { - "type": "class", - "value": "git_patch", - "file": "patch.h", - "used": { - "returns": [], - "needs": [ - "git_patch_free", - "git_patch_from_blob_and_buffer", - "git_patch_from_blobs", - "git_patch_from_buffers", - "git_patch_from_diff", - "git_patch_get_delta", - "git_patch_get_hunk", - "git_patch_get_line_in_hunk", - "git_patch_line_stats", - "git_patch_num_hunks", - "git_patch_num_lines_in_hunk", - "git_patch_print", - "git_patch_size", - "git_patch_to_buf" - ] - }, - "typeName": "patch", - "cType": "git_patch", - "functions": [ - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "out", - "type": "git_patch **", - "comment": "The generated patch; NULL on error", - "cType": "git_patch **", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "old_blob", - "type": "const git_blob *", - "comment": "Blob for old side of diff, or NULL for empty blob", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": false - }, - { - "name": "old_as_path", - "type": "const char *", - "comment": "Treat old blob as if it had this filename; can be NULL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer", - "type": "const char *", - "comment": "Raw data for new side of diff, or NULL for empty", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer_len", - "type": "size_t", - "comment": "Length of raw data for new side of diff", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer_as_path", - "type": "const char *", - "comment": "Treat buffer as if it had this filename; can be NULL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_diff_options *", - "comment": "Options for diff, or NULL for default options", - "cType": "const git_diff_options *", - "cppClassName": "GitDiffOptions", - "jsClassName": "DiffOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code \n<\n 0", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_from_blob_and_buffer", - "cppFunctionName": "FromBlobAndBuffer", - "jsFunctionName": "fromBlobAndBuffer", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "out", - "type": "git_patch **", - "comment": "The generated patch; NULL on error", - "cType": "git_patch **", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "old_blob", - "type": "const git_blob *", - "comment": "Blob for old side of diff, or NULL for empty blob", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": false - }, - { - "name": "old_as_path", - "type": "const char *", - "comment": "Treat old blob as if it had this filename; can be NULL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "new_blob", - "type": "const git_blob *", - "comment": "Blob for new side of diff, or NULL for empty blob", - "cType": "const git_blob *", - "cppClassName": "GitBlob", - "jsClassName": "Blob", - "isLibgitType": true, - "isEnum": false, - "dependencies": [ - "../include/wrapper.h", - "node_buffer.h" - ], - "isReturn": false, - "isSelf": false - }, - { - "name": "new_as_path", - "type": "const char *", - "comment": "Treat new blob as if it had this filename; can be NULL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "const git_diff_options *", - "comment": "Options for diff, or NULL for default options", - "cType": "const git_diff_options *", - "cppClassName": "GitDiffOptions", - "jsClassName": "DiffOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or error code \n<\n 0", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_from_blobs", - "cppFunctionName": "FromBlobs", - "jsFunctionName": "fromBlobs", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "out", - "type": "git_patch **", - "comment": "Output parameter for the delta patch object", - "cType": "git_patch **", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "diff", - "type": "git_diff *", - "comment": "Diff list object", - "cType": "git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": false, - "isSelf": false - }, - { - "name": "idx", - "type": "size_t", - "comment": "Index into diff list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, other value \n<\n 0 on error", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_from_diff", - "cppFunctionName": "FromDiff", - "jsFunctionName": "fromDiff", - "isAsync": false, - "isConstructorMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "patch", - "type": "const git_patch *", - "comment": null, - "cType": "const git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_diff_delta *", - "comment": null, - "cType": "const git_diff_delta *", - "cppClassName": "GitDiffDelta", - "jsClassName": "DiffDelta", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_get_delta", - "cppFunctionName": "GetDelta", - "jsFunctionName": "getDelta", - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "out", - "type": "const git_diff_hunk **", - "comment": "Output pointer to git_diff_hunk of hunk", - "cType": "const git_diff_hunk **", - "cppClassName": "GitDiffHunk", - "jsClassName": "DiffHunk", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "returnName": "hunk" - }, - { - "name": "lines_in_hunk", - "type": "size_t *", - "comment": "Output count of total lines in this hunk", - "cType": "size_t *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": true, - "isSelf": false - }, - { - "name": "patch", - "type": "git_patch *", - "comment": "Input pointer to patch object", - "cType": "git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "hunk_idx", - "type": "size_t", - "comment": "Input index of hunk to get information about", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if hunk_idx out of range, \n<\n0 on error", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_get_hunk", - "cppFunctionName": "GetHunk", - "jsFunctionName": "getHunk", - "isAsync": false, - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "out", - "type": "const git_diff_line **", - "comment": "The git_diff_line data for this line", - "cType": "const git_diff_line **", - "cppClassName": "GitDiffLine", - "jsClassName": "DiffLine", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "patch", - "type": "git_patch *", - "comment": "The patch to look in", - "cType": "git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "hunk_idx", - "type": "size_t", - "comment": "The index of the hunk", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "line_of_hunk", - "type": "size_t", - "comment": "The index of the line in the hunk", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_get_line_in_hunk", - "cppFunctionName": "GetLineInHunk", - "jsFunctionName": "getLineInHunk", - "isAsync": false, - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "patch", - "type": "const git_patch *", - "comment": null, - "cType": "const git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": null, - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_num_hunks", - "cppFunctionName": "NumHunks", - "jsFunctionName": "numHunks", - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "patch", - "type": "const git_patch *", - "comment": "The git_patch object", - "cType": "const git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "hunk_idx", - "type": "size_t", - "comment": "Index of the hunk", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Number of lines in hunk or -1 if invalid hunk index", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_num_lines_in_hunk", - "cppFunctionName": "NumLinesInHunk", - "jsFunctionName": "numLinesInHunk", - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - }, - { - "type": "function", - "file": "patch.h", - "args": [ - { - "name": "patch", - "type": "git_patch *", - "comment": "A git_patch representing changes to one file", - "cType": "git_patch *", - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "include_context", - "type": "int", - "comment": "Include context lines in size if non-zero", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "include_hunk_headers", - "type": "int", - "comment": "Include hunk header lines if non-zero", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "include_file_headers", - "type": "int", - "comment": "Include file header lines if non-zero", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " The number of bytes of data", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "patch", - "cFunctionName": "git_patch_size", - "cppFunctionName": "Size", - "jsFunctionName": "size", - "isPrototypeMethod": true, - "cppClassName": "GitPatch" - } - ], - "cppClassName": "GitPatch", - "jsClassName": "Patch", - "filename": "patch", - "isLibgitType": true, - "dependencies": [ - "../include/patch.h", - "../include/blob.h", - "../include/diff_options.h", - "../include/diff.h", - "../include/diff_delta.h", - "../include/diff_hunk.h", - "../include/diff_line.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_patch_free", - "name": "patch" - }, - { - "type": "class", - "value": "git_pathspec", - "file": "pathspec.h", - "used": { - "returns": [], - "needs": [ - "git_pathspec_free", - "git_pathspec_match_diff", - "git_pathspec_match_index", - "git_pathspec_match_tree", - "git_pathspec_match_workdir", - "git_pathspec_matches_path", - "git_pathspec_new" - ] - }, - "typeName": "pathspec", - "cType": "git_pathspec", - "functions": [ - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "out", - "type": "git_pathspec_match_list **", - "comment": "Output list of matches; pass NULL to just get return value", - "cType": "git_pathspec_match_list **", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "diff", - "type": "git_diff *", - "comment": "A generated diff list", - "cType": "git_diff *", - "cppClassName": "GitDiff", - "jsClassName": "Diff", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "Combination of git_pathspec_flag_t options to control match", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "ps", - "type": "git_pathspec *", - "comment": "Pathspec to be matched", - "cType": "git_pathspec *", - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on error, GIT_ENOTFOUND if no matches and\n the GIT_PATHSPEC_NO_MATCH_ERROR flag is used", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_diff", - "cppFunctionName": "MatchDiff", - "jsFunctionName": "matchDiff", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "out", - "type": "git_pathspec_match_list **", - "comment": "Output list of matches; pass NULL to just get return value", - "cType": "git_pathspec_match_list **", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "index", - "type": "git_index *", - "comment": "The index to match against", - "cType": "git_index *", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "Combination of git_pathspec_flag_t options to control match", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "ps", - "type": "git_pathspec *", - "comment": "Pathspec to be matched", - "cType": "git_pathspec *", - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on error, GIT_ENOTFOUND if no matches and\n the GIT_PATHSPEC_NO_MATCH_ERROR flag is used", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_index", - "cppFunctionName": "MatchIndex", - "jsFunctionName": "matchIndex", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "const git_pathspec_match_list *", - "comment": "The git_pathspec_match_list object", - "cType": "const git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "pos", - "type": "size_t", - "comment": "The index into the list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_diff_delta *", - "comment": " The filename of the match", - "cType": "const git_diff_delta *", - "cppClassName": "GitDiffDelta", - "jsClassName": "DiffDelta", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_diff_entry", - "cppFunctionName": "MatchListDiffEntry", - "jsFunctionName": "matchListDiffEntry", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "const git_pathspec_match_list *", - "comment": "The git_pathspec_match_list object", - "cType": "const git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "pos", - "type": "size_t", - "comment": "The index into the list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const char *", - "comment": " The filename of the match", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_entry", - "cppFunctionName": "MatchListEntry", - "jsFunctionName": "matchListEntry", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "const git_pathspec_match_list *", - "comment": "The git_pathspec_match_list object", - "cType": "const git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " Number of items in match list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_entrycount", - "cppFunctionName": "MatchListEntrycount", - "jsFunctionName": "matchListEntrycount", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "const git_pathspec_match_list *", - "comment": "The git_pathspec_match_list object", - "cType": "const git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "pos", - "type": "size_t", - "comment": "The index into the failed items", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const char *", - "comment": " The pathspec pattern that didn't match anything", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_failed_entry", - "cppFunctionName": "MatchListFailedEntry", - "jsFunctionName": "matchListFailedEntry", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "const git_pathspec_match_list *", - "comment": "The git_pathspec_match_list object", - "cType": "const git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " Number of items in original pathspec that had no matches", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_failed_entrycount", - "cppFunctionName": "MatchListFailedEntrycount", - "jsFunctionName": "matchListFailedEntrycount", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "m", - "type": "git_pathspec_match_list *", - "comment": "The git_pathspec_match_list to be freed", - "cType": "git_pathspec_match_list *", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_list_free", - "cppFunctionName": "MatchListFree", - "jsFunctionName": "matchListFree", - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "out", - "type": "git_pathspec_match_list **", - "comment": "Output list of matches; pass NULL to just get return value", - "cType": "git_pathspec_match_list **", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "tree", - "type": "git_tree *", - "comment": "The root-level tree to match against", - "cType": "git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "Combination of git_pathspec_flag_t options to control match", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "ps", - "type": "git_pathspec *", - "comment": "Pathspec to be matched", - "cType": "git_pathspec *", - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on error, GIT_ENOTFOUND if no matches and\n the GIT_PATHSPEC_NO_MATCH_ERROR flag is used", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_pathspec_match_tree-41" - ] - }, - "cFunctionName": "git_pathspec_match_tree", - "cppFunctionName": "MatchTree", - "jsFunctionName": "matchTree", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "out", - "type": "git_pathspec_match_list **", - "comment": "Output list of matches; pass NULL to just get return value", - "cType": "git_pathspec_match_list **", - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository in which to match; bare repo is an error", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "Combination of git_pathspec_flag_t options to control match", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "ps", - "type": "git_pathspec *", - "comment": "Pathspec to be matched", - "cType": "git_pathspec *", - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on error, GIT_ENOTFOUND if no matches and\n the GIT_PATHSPEC_NO_MATCH_ERROR flag was given", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_match_workdir", - "cppFunctionName": "MatchWorkdir", - "jsFunctionName": "matchWorkdir", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitPathspec" - }, - { - "type": "function", - "file": "pathspec.h", - "args": [ - { - "name": "ps", - "type": "const git_pathspec *", - "comment": "The compiled pathspec", - "cType": "const git_pathspec *", - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "flags", - "type": "uint32_t", - "comment": "Combination of git_pathspec_flag_t options to control match", - "cType": "uint32_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "The pathname to attempt to match", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 is path matches spec, 0 if it does not", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "pathspec", - "cFunctionName": "git_pathspec_matches_path", - "cppFunctionName": "MatchesPath", - "jsFunctionName": "matchesPath", - "isPrototypeMethod": true, - "cppClassName": "GitPathspec" - } - ], - "cppClassName": "GitPathspec", - "jsClassName": "Pathspec", - "filename": "pathspec", - "isLibgitType": true, - "dependencies": [ - "../include/pathspec_match_list.h", - "../include/diff.h", - "../include/pathspec.h", - "../include/index.h", - "../include/diff_delta.h", - "../include/tree.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_pathspec_free", - "name": "pathspec" - }, - { - "typeName": "pathspec_flag", - "type": "enum", - "cType": "git_pathspec_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_PATHSPEC_DEFAULT", - "value": 0, - "JsName": "DEFAULT" - }, - { - "name": "GIT_PATHSPEC_IGNORE_CASE", - "value": 1, - "JsName": "IGNORE_CASE" - }, - { - "name": "GIT_PATHSPEC_USE_CASE", - "value": 2, - "JsName": "USE_CASE" - }, - { - "name": "GIT_PATHSPEC_NO_GLOB", - "value": 4, - "JsName": "NO_GLOB" - }, - { - "name": "GIT_PATHSPEC_NO_MATCH_ERROR", - "value": 8, - "JsName": "NO_MATCH_ERROR" - }, - { - "name": "GIT_PATHSPEC_FIND_FAILURES", - "value": 16, - "JsName": "FIND_FAILURES" - }, - { - "name": "GIT_PATHSPEC_FAILURES_ONLY", - "value": 32, - "JsName": "FAILURES_ONLY" - } - ], - "owner": "Pathspec", - "JsName": "FLAG" - }, - { - "type": "class", - "value": "git_pathspec_match_list", - "file": "pathspec.h", - "used": { - "returns": [], - "needs": [ - "git_pathspec_match_diff", - "git_pathspec_match_index", - "git_pathspec_match_list_diff_entry", - "git_pathspec_match_list_entry", - "git_pathspec_match_list_entrycount", - "git_pathspec_match_list_failed_entry", - "git_pathspec_match_list_failed_entrycount", - "git_pathspec_match_list_free", - "git_pathspec_match_tree", - "git_pathspec_match_workdir" - ] - }, - "typeName": "pathspec_match_list", - "cType": "git_pathspec_match_list", - "functions": [], - "cppClassName": "GitPathspecMatchList", - "jsClassName": "PathspecMatchList", - "filename": "pathspec_match_list", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "pathspec_match_list" - }, - { - "functions": [ - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "push", - "type": "git_push *", - "comment": "The push object", - "cType": "git_push *", - "cppClassName": "GitPush", - "jsClassName": "Push", - "isReturn": false, - "isSelf": true - }, - { - "name": "refspec", - "type": "const char *", - "comment": "Refspec string", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_add_refspec", - "cppFunctionName": "AddRefspec", - "jsFunctionName": "addRefspec", - "isPrototypeMethod": true, - "cppClassName": "GitPush" - }, - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "push", - "type": "git_push *", - "comment": "The push object", - "cType": "git_push *", - "cppClassName": "GitPush", - "jsClassName": "Push", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_finish", - "cppFunctionName": "Finish", - "jsFunctionName": "finish", - "isPrototypeMethod": true, - "cppClassName": "GitPush" - }, - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "opts", - "type": "git_push_options *", - "comment": "the `git_push_options` instance to initialize.", - "cType": "git_push_options *", - "cppClassName": "GitPushOptions", - "jsClassName": "PushOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "the version of the struct; you should pass\n `GIT_PUSH_OPTIONS_VERSION` here.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitPush" - }, - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "push", - "type": "git_push *", - "comment": "The push object", - "cType": "git_push *", - "cppClassName": "GitPush", - "jsClassName": "Push", - "isReturn": false, - "isSelf": true - }, - { - "name": "opts", - "type": "const git_push_options *", - "comment": "The options to set on the push object", - "cType": "const git_push_options *", - "cppClassName": "GitPushOptions", - "jsClassName": "PushOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_set_options", - "cppFunctionName": "SetOptions", - "jsFunctionName": "setOptions", - "isPrototypeMethod": true, - "cppClassName": "GitPush" - }, - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "push", - "type": "const git_push *", - "comment": "The push object", - "cType": "const git_push *", - "cppClassName": "GitPush", - "jsClassName": "Push", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " true if remote side successfully unpacked, false otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_unpack_ok", - "cppFunctionName": "UnpackOk", - "jsFunctionName": "unpackOk", - "isPrototypeMethod": true, - "cppClassName": "GitPush" - }, - { - "type": "function", - "file": "push.h", - "args": [ - { - "name": "push", - "type": "git_push *", - "comment": "The push object", - "cType": "git_push *", - "cppClassName": "GitPush", - "jsClassName": "Push", - "isReturn": false, - "isSelf": true - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity to use when updating reflogs", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "reflog_message", - "type": "const char *", - "comment": "The message to insert into the reflogs. If NULL, the\n default is \"update by push\".", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "push", - "cFunctionName": "git_push_update_tips", - "cppFunctionName": "UpdateTips", - "jsFunctionName": "updateTips", - "isPrototypeMethod": true, - "cppClassName": "GitPush" - } - ], - "type": "class", - "cType": "git_push", - "typeName": "push", - "cppClassName": "GitPush", - "jsClassName": "Push", - "filename": "push", - "isLibgitType": true, - "dependencies": [ - "../include/push.h", - "../include/push_options.h", - "../include/signature.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "freeFunctionName": "git_push_free", - "name": "push" - }, - { - "type": "struct", - "value": "git_push_options", - "file": "push.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "pb_parallelism", - "cType": "unsigned int", - "cppFunctionName": "PbParallelism", - "jsFunctionName": "pbParallelism", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_push_init_options", - "git_push_set_options" - ] - }, - "typeName": "push_options", - "cType": "git_push_options", - "functions": [], - "cppClassName": "GitPushOptions", - "jsClassName": "PushOptions", - "filename": "push_options", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "push_options" - }, - { - "typeName": "ref", - "type": "enum", - "cType": "git_ref_t", - "isMask": true, - "values": [ - { - "name": "GIT_REF_INVALID", - "value": 0, - "JsName": "INVALID" - }, - { - "name": "GIT_REF_OID", - "value": 1, - "JsName": "OID" - }, - { - "name": "GIT_REF_SYMBOLIC", - "value": 2, - "JsName": "SYMBOLIC" - }, - { - "name": "GIT_REF_LISTALL", - "value": 3, - "JsName": "LISTALL" - } - ], - "owner": "Enums", - "JsName": "REF" - }, - { - "type": "class", - "value": "git_refdb", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_refdb_compress", - "git_refdb_free", - "git_refdb_new", - "git_refdb_open", - "git_refdb_set_backend", - "git_repository_refdb" - ] - }, - "typeName": "refdb", - "cType": "git_refdb", - "functions": [ - { - "type": "function", - "file": "refdb.h", - "args": [ - { - "name": "refdb", - "type": "git_refdb *", - "comment": null, - "cType": "git_refdb *", - "cppClassName": "GitRefdb", - "jsClassName": "Refdb", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "refdb", - "cFunctionName": "git_refdb_compress", - "cppFunctionName": "Compress", - "jsFunctionName": "compress", - "isPrototypeMethod": true, - "cppClassName": "GitRefdb" - }, - { - "type": "function", - "file": "refdb.h", - "args": [ - { - "name": "out", - "type": "git_refdb **", - "comment": "location to store the database pointer, if opened.\n\t\t\tSet to NULL if the open failed.", - "cType": "git_refdb **", - "cppClassName": "GitRefdb", - "jsClassName": "Refdb", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "refdb", - "cFunctionName": "git_refdb_open", - "cppFunctionName": "Open", - "jsFunctionName": "open", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefdb" - } - ], - "cppClassName": "GitRefdb", - "jsClassName": "Refdb", - "filename": "refdb", - "isLibgitType": true, - "dependencies": [ - "../include/refdb.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_refdb_free", - "name": "refdb" - }, - { - "type": "class", - "value": "git_reference", - "file": "types.h", - "used": { - "returns": [ - "git_reference__alloc", - "git_reference__alloc_symbolic" - ], - "needs": [ - "git_branch_create", - "git_branch_delete", - "git_branch_is_head", - "git_branch_lookup", - "git_branch_move", - "git_branch_name", - "git_branch_next", - "git_branch_set_upstream", - "git_branch_upstream", - "git_merge_head_from_ref", - "git_reference_cmp", - "git_reference_create", - "git_reference_create_matching", - "git_reference_delete", - "git_reference_dwim", - "git_reference_free", - "git_reference_is_branch", - "git_reference_is_note", - "git_reference_is_remote", - "git_reference_is_tag", - "git_reference_lookup", - "git_reference_name", - "git_reference_next", - "git_reference_owner", - "git_reference_peel", - "git_reference_rename", - "git_reference_resolve", - "git_reference_set_target", - "git_reference_shorthand", - "git_reference_symbolic_create", - "git_reference_symbolic_create_matching", - "git_reference_symbolic_set_target", - "git_reference_symbolic_target", - "git_reference_target", - "git_reference_target_peel", - "git_reference_type", - "git_repository_head", - "git_revparse_ext" - ] - }, - "typeName": "reference", - "cType": "git_reference", - "functions": [ - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref1", - "type": "const git_reference *", - "comment": "The first git_reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "ref2", - "type": "const git_reference *", - "comment": "The second git_reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 if the same, else a stable but meaningless ordering.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_cmp", - "cppFunctionName": "Cmp", - "jsFunctionName": "cmp", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where that reference will live", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The object id pointed to by the reference.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where that reference will live", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The object id pointed to by the reference.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "current_id", - "type": "const git_oid *", - "comment": "The expected value of the reference at the time of update", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EMODIFIED if the value of the reference\n has changed, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_create_matching", - "cppFunctionName": "CreateMatching", - "jsFunctionName": "createMatching", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "git_reference *", - "comment": "The reference to remove", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_EMODIFIED or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_delete", - "cppFunctionName": "Delete", - "jsFunctionName": "delete", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "pointer in which to store the reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository in which to look", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "shorthand", - "type": "const char *", - "comment": "the short name for the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_dwim", - "cppFunctionName": "Dwim", - "jsFunctionName": "dwim", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "refname", - "type": "const char *", - "comment": "the reference's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_ensure_log", - "cppFunctionName": "EnsureLog", - "jsFunctionName": "ensureLog", - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "refname", - "type": "const char *", - "comment": "the reference's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 when no reflog can be found, 1 when it exists;\n otherwise an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_has_log", - "cppFunctionName": "HasLog", - "jsFunctionName": "hasLog", - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "A git reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 when the reference lives in the refs/heads\n namespace; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_is_branch", - "cppFunctionName": "IsBranch", - "jsFunctionName": "isBranch", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "A git reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 when the reference lives in the refs/notes\n namespace; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_is_note", - "cppFunctionName": "IsNote", - "jsFunctionName": "isNote", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "A git reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 when the reference lives in the refs/remotes\n namespace; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_is_remote", - "cppFunctionName": "IsRemote", - "jsFunctionName": "isRemote", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "A git reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 when the reference lives in the refs/tags\n namespace; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_is_tag", - "cppFunctionName": "IsTag", - "jsFunctionName": "isTag", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "refname", - "type": "const char *", - "comment": "name to be checked.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the reference name is acceptable; 0 if it isn't", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_is_valid_name", - "cppFunctionName": "IsValidName", - "jsFunctionName": "isValidName", - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "array", - "type": "git_strarray *", - "comment": "Pointer to a git_strarray structure where\n\t\tthe reference names will be stored", - "cType": "git_strarray *", - "cppClassName": "Array", - "jsClassName": "Array", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "shouldAlloc": true, - "size": "count", - "key": "strings" - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to find the refs", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_reference_list-56" - ] - }, - "cFunctionName": "git_reference_list", - "cppFunctionName": "List", - "jsFunctionName": "list", - "isAsync": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "pointer to the looked-up reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to look up the reference", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_reference_lookup-52" - ] - }, - "cFunctionName": "git_reference_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the full name for the ref", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_name", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "Pointer to oid to be filled in", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository in which to look up the reference", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...)", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_name_to_id", - "cppFunctionName": "NameToId", - "jsFunctionName": "nameToId", - "isAsync": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "buffer_out", - "type": "char *", - "comment": "User allocated buffer to store normalized name", - "cType": "char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer_size", - "type": "size_t", - "comment": "Size of buffer_out", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "Reference name to be checked.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "unsigned int", - "comment": "Flags to constrain name validation rules - see the\n GIT_REF_FORMAT constants above.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EBUFS if buffer is too small, GIT_EINVALIDSPEC\n or an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_normalize_name", - "cppFunctionName": "NormalizeName", - "jsFunctionName": "normalizeName", - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " a pointer to the repo", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_object **", - "comment": "Pointer to the peeled git_object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "git_reference *", - "comment": "The reference to be processed", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "type", - "type": "git_otype", - "comment": "The type of the requested object (GIT_OBJ_COMMIT,\n GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY).", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EAMBIGUOUS, GIT_ENOTFOUND or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_peel", - "cppFunctionName": "Peel", - "jsFunctionName": "peel", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The reference to remove", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_remove", - "cppFunctionName": "Remove", - "jsFunctionName": "remove", - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "new_ref", - "type": "git_reference **", - "comment": null, - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "git_reference *", - "comment": "The reference to rename", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "new_name", - "type": "const char *", - "comment": "The new name for the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite an existing reference", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_rename", - "cppFunctionName": "Rename", - "jsFunctionName": "rename", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the peeled reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_resolve", - "cppFunctionName": "Resolve", - "jsFunctionName": "resolve", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "git_reference *", - "comment": "The reference", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "The new target OID for the reference", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EMODIFIED if the value of the reference\n has changed since it was read, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_set_target", - "cppFunctionName": "SetTarget", - "jsFunctionName": "setTarget", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "a reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the human-readable version of the name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_reference_shorthand-2" - ] - }, - "cFunctionName": "git_reference_shorthand", - "cppFunctionName": "Shorthand", - "jsFunctionName": "shorthand", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where that reference will live", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const char *", - "comment": "The target of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_symbolic_create", - "cppFunctionName": "SymbolicCreate", - "jsFunctionName": "symbolicCreate", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where that reference will live", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const char *", - "comment": "The target of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "current_value", - "type": "const char *", - "comment": "The expected value of the reference when updating", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EEXISTS, GIT_EINVALIDSPEC, GIT_EMODIFIED or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_symbolic_create_matching", - "cppFunctionName": "SymbolicCreateMatching", - "jsFunctionName": "symbolicCreateMatching", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "Pointer to the newly created reference", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "ref", - "type": "git_reference *", - "comment": "The reference", - "cType": "git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "target", - "type": "const char *", - "comment": "The new target for the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_symbolic_set_target", - "cppFunctionName": "SymbolicSetTarget", - "jsFunctionName": "symbolicSetTarget", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " a pointer to the name if available, NULL otherwise", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_reference_symbolic_target-54" - ] - }, - "cFunctionName": "git_reference_symbolic_target", - "cppFunctionName": "SymbolicTarget", - "jsFunctionName": "symbolicTarget", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " a pointer to the oid if available, NULL otherwise", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_reference_target-53" - ] - }, - "cFunctionName": "git_reference_target", - "cppFunctionName": "Target", - "jsFunctionName": "target", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " a pointer to the oid if available, NULL otherwise", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "cFunctionName": "git_reference_target_peel", - "cppFunctionName": "TargetPeel", - "jsFunctionName": "targetPeel", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - }, - { - "type": "function", - "file": "refs.h", - "args": [ - { - "name": "ref", - "type": "const git_reference *", - "comment": "The reference", - "cType": "const git_reference *", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_ref_t", - "comment": " the type", - "cType": "git_ref_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "reference", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_reference_type-55" - ] - }, - "cFunctionName": "git_reference_type", - "cppFunctionName": "Type", - "jsFunctionName": "type", - "isPrototypeMethod": true, - "cppClassName": "GitRefs" - } - ], - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "filename": "reference", - "isLibgitType": true, - "dependencies": [ - "../include/reference.h", - "../include/repository.h", - "../include/oid.h", - "../include/signature.h", - "../include/strarray.h", - "../include/object.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_reference_free", - "name": "reference" - }, - { - "type": "class", - "value": "git_reflog", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_reflog_append", - "git_reflog_drop", - "git_reflog_entry_byindex", - "git_reflog_entrycount", - "git_reflog_free", - "git_reflog_read", - "git_reflog_write" - ] - }, - "typeName": "reflog", - "cType": "git_reflog", - "functions": [ - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "reflog", - "type": "git_reflog *", - "comment": "an existing reflog object", - "cType": "git_reflog *", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "the OID the reference is now pointing to", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "committer", - "type": "const git_signature *", - "comment": "the signature of the committer", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "msg", - "type": "const char *", - "comment": "the reflog message", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_append", - "cppFunctionName": "Append", - "jsFunctionName": "append", - "isPrototypeMethod": true, - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the reflog to delete", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_delete", - "cppFunctionName": "Delete", - "jsFunctionName": "delete", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "reflog", - "type": "git_reflog *", - "comment": "a previously loaded reflog.", - "cType": "git_reflog *", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "idx", - "type": "size_t", - "comment": "the position of the entry to remove. Should be greater than or\n equal to 0 (zero) and less than `git_reflog_entrycount()`.", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "rewrite_previous_entry", - "type": "int", - "comment": "1 to rewrite the history; 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if the entry doesn't exist\n or an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_drop", - "cppFunctionName": "Drop", - "jsFunctionName": "drop", - "isPrototypeMethod": true, - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "reflog", - "type": "git_reflog *", - "comment": "a previously loaded reflog", - "cType": "git_reflog *", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "idx", - "type": "size_t", - "comment": "the position of the entry to lookup. Should be greater than or\n equal to 0 (zero) and less than `git_reflog_entrycount()`.", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_reflog_entry *", - "comment": " the entry; NULL if not found", - "cType": "const git_reflog_entry *", - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entry_byindex", - "cppFunctionName": "EntryByindex", - "jsFunctionName": "entryByindex", - "isPrototypeMethod": true, - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "entry", - "type": "const git_reflog_entry *", - "comment": "a reflog entry", - "cType": "const git_reflog_entry *", - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_signature *", - "comment": " the committer", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entry_committer", - "cppFunctionName": "EntryCommitter", - "jsFunctionName": "entryCommitter", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "entry", - "type": "const git_reflog_entry *", - "comment": "a reflog entry", - "cType": "const git_reflog_entry *", - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_oid *", - "comment": " the new oid at this time", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entry_id_new", - "cppFunctionName": "EntryIdNew", - "jsFunctionName": "entryIdNew", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "entry", - "type": "const git_reflog_entry *", - "comment": "a reflog entry", - "cType": "const git_reflog_entry *", - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_oid *", - "comment": " the old oid", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entry_id_old", - "cppFunctionName": "EntryIdOld", - "jsFunctionName": "entryIdOld", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "entry", - "type": "const git_reflog_entry *", - "comment": "a reflog entry", - "cType": "const git_reflog_entry *", - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const char *", - "comment": " the log msg", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entry_message", - "cppFunctionName": "EntryMessage", - "jsFunctionName": "entryMessage", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "reflog", - "type": "git_reflog *", - "comment": "the previously loaded reflog", - "cType": "git_reflog *", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " the number of log entries", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_entrycount", - "cppFunctionName": "Entrycount", - "jsFunctionName": "entrycount", - "isPrototypeMethod": true, - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "out", - "type": "git_reflog **", - "comment": "pointer to reflog", - "cType": "git_reflog **", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repostiory", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "reference to look up", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_read", - "cppFunctionName": "Read", - "jsFunctionName": "read", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "old_name", - "type": "const char *", - "comment": "the old name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the new name of the reference", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_rename", - "cppFunctionName": "Rename", - "jsFunctionName": "rename", - "cppClassName": "GitReflog" - }, - { - "type": "function", - "file": "reflog.h", - "args": [ - { - "name": "reflog", - "type": "git_reflog *", - "comment": "an existing reflog object", - "cType": "git_reflog *", - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "reflog", - "cFunctionName": "git_reflog_write", - "cppFunctionName": "Write", - "jsFunctionName": "write", - "isPrototypeMethod": true, - "cppClassName": "GitReflog" - } - ], - "cppClassName": "GitReflog", - "jsClassName": "Reflog", - "filename": "reflog", - "isLibgitType": true, - "dependencies": [ - "../include/reflog.h", - "../include/oid.h", - "../include/signature.h", - "../include/repository.h", - "../include/reflog_entry.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_reflog_free", - "name": "reflog" - }, - { - "type": "class", - "value": "git_reflog_entry", - "file": "types.h", - "used": { - "returns": [ - "git_reflog_entry_byindex" - ], - "needs": [ - "git_reflog_entry_committer", - "git_reflog_entry_id_new", - "git_reflog_entry_id_old", - "git_reflog_entry_message" - ] - }, - "typeName": "reflog_entry", - "cType": "git_reflog_entry", - "functions": [], - "cppClassName": "GitReflogEntry", - "jsClassName": "ReflogEntry", - "filename": "reflog_entry", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "reflog_entry" - }, - { - "functions": [ - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "spec", - "type": "const git_refspec *", - "comment": "refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_direction", - "comment": " GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH", - "cType": "git_direction", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_direction", - "cppFunctionName": "Direction", - "jsFunctionName": "direction", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - }, - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "refspec", - "type": "const git_refspec *", - "comment": "the refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the refspec's destination specifier", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_dst", - "cppFunctionName": "Dst", - "jsFunctionName": "dst", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - }, - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "refspec", - "type": "const git_refspec *", - "comment": "the refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - }, - { - "name": "refname", - "type": "const char *", - "comment": "the name of the reference to check", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the refspec matches, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_dst_matches", - "cppFunctionName": "DstMatches", - "jsFunctionName": "dstMatches", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - }, - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "refspec", - "type": "const git_refspec *", - "comment": "the refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if force update has been set, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_force", - "cppFunctionName": "Force", - "jsFunctionName": "force", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - }, - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "refspec", - "type": "const git_refspec *", - "comment": "the refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the refspec's source specifier", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_src", - "cppFunctionName": "Src", - "jsFunctionName": "src", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - }, - { - "type": "function", - "file": "refspec.h", - "args": [ - { - "name": "refspec", - "type": "const git_refspec *", - "comment": "the refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": true - }, - { - "name": "refname", - "type": "const char *", - "comment": "the name of the reference to check", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the refspec matches, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "refspec", - "cFunctionName": "git_refspec_src_matches", - "cppFunctionName": "SrcMatches", - "jsFunctionName": "srcMatches", - "isPrototypeMethod": true, - "cppClassName": "GitRefspec" - } - ], - "type": "class", - "cType": "git_refspec", - "typeName": "refspec", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "filename": "refspec", - "isLibgitType": true, - "dependencies": [ - "../include/refspec.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "refspec" - }, - { - "functions": [ - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "refspec", - "type": "const char *", - "comment": "the new fetch refspec", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error value", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_add_fetch", - "cppFunctionName": "AddFetch", - "jsFunctionName": "addFetch", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "refspec", - "type": "const char *", - "comment": "the new push refspec", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error value", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_add_push", - "cppFunctionName": "AddPush", - "jsFunctionName": "addPush", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote to query", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_remote_autotag_option_t", - "comment": " the auto-follow setting", - "cType": "git_remote_autotag_option_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_autotag", - "cppFunctionName": "Autotag", - "jsFunctionName": "autotag", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to configure", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "check", - "type": "int", - "comment": "whether to check the server's certificate (defaults to yes)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_check_cert", - "cppFunctionName": "CheckCert", - "jsFunctionName": "checkCert", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_clear_refspecs", - "cppFunctionName": "ClearRefspecs", - "jsFunctionName": "clearRefspecs", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to connect to", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "direction", - "type": "git_direction", - "comment": "GIT_DIRECTION_FETCH if you want to fetch or\n GIT_DIRECTION_PUSH if you want to push", - "cType": "git_direction", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_connect-6" - ], - "network/ls-remote.c": [ - "ex/v0.21.2/network/ls-remote.html#git_remote_connect-4" - ] - }, - "cFunctionName": "git_remote_connect", - "cppFunctionName": "Connect", - "jsFunctionName": "connect", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if it's connected, 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_connected", - "cppFunctionName": "Connected", - "jsFunctionName": "connected", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "out", - "type": "git_remote **", - "comment": "the resulting remote", - "cType": "git_remote **", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository in which to create the remote", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the remote's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "url", - "type": "const char *", - "comment": "the remote's url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "out", - "type": "git_remote **", - "comment": "pointer to the new remote object", - "cType": "git_remote **", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the associated repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "url", - "type": "const char *", - "comment": "the remote repository's URL", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "fetch", - "type": "const char *", - "comment": "the fetch refspec to use for this remote.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_create_anonymous-4" - ], - "network/ls-remote.c": [ - "ex/v0.21.2/network/ls-remote.html#git_remote_create_anonymous-2" - ] - }, - "cFunctionName": "git_remote_create_anonymous", - "cppFunctionName": "CreateAnonymous", - "jsFunctionName": "createAnonymous", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "out", - "type": "git_remote **", - "comment": "the resulting remote", - "cType": "git_remote **", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository in which to create the remote", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the remote's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "url", - "type": "const char *", - "comment": "the remote's url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "fetch", - "type": "const char *", - "comment": "the remote fetch value", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_EINVALIDSPEC, GIT_EEXISTS or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_create_with_fetchspec", - "cppFunctionName": "CreateWithFetchspec", - "jsFunctionName": "createWithFetchspec", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "A valid remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_delete", - "cppFunctionName": "Delete", - "jsFunctionName": "delete", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to disconnect from", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_disconnect-8" - ] - }, - "cFunctionName": "git_remote_disconnect", - "cppFunctionName": "Disconnect", - "jsFunctionName": "disconnect", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": null, - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_download-7" - ] - }, - "cFunctionName": "git_remote_download", - "cppFunctionName": "Download", - "jsFunctionName": "download", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "dest", - "type": "git_remote **", - "comment": "pointer where to store the copy", - "cType": "git_remote **", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": true, - "isSelf": false - }, - { - "name": "source", - "type": "git_remote *", - "comment": "object to copy", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_dup", - "cppFunctionName": "Dup", - "jsFunctionName": "dup", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to fetch from", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity to use when updating reflogs", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "reflog_message", - "type": "const char *", - "comment": "The message to insert into the reflogs. If NULL, the\n\t\t\t\t\t\t\t\t default is \"fetch\"", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_fetch", - "cppFunctionName": "Fetch", - "jsFunctionName": "fetch", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote to query", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "n", - "type": "size_t", - "comment": "the refspec to get", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_refspec *", - "comment": " the nth refspec", - "cType": "const git_refspec *", - "cppClassName": "GitRefspec", - "jsClassName": "Refspec", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_get_refspec", - "cppFunctionName": "GetRefspec", - "jsFunctionName": "getRefspec", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "opts", - "type": "git_remote_callbacks *", - "comment": "the `git_remote_callbacks` struct to initialize", - "cType": "git_remote_callbacks *", - "cppClassName": "GitRemoteCallbacks", - "jsClassName": "RemoteCallbacks", - "isLibgitType": true, - "isEnum": false, - "fields": { - "completion": { - "ignore": true - }, - "sideband_progress": { - "ignore": true - }, - "transfer_progress": { - "ignore": true - }, - "update_tips": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_REMOTE_CALLBACKS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_init_callbacks", - "cppFunctionName": "InitCallbacks", - "jsFunctionName": "initCallbacks", - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote_name", - "type": "const char *", - "comment": "name to be checked.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the reference name is acceptable; 0 if it isn't", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_is_valid_name", - "cppFunctionName": "IsValidName", - "jsFunctionName": "isValidName", - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "out", - "type": "git_strarray *", - "comment": "a string array which receives the names of the remotes", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false, - "shouldAlloc": true - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to query", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_list", - "cppFunctionName": "List", - "jsFunctionName": "list", - "isAsync": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "out", - "type": "git_remote **", - "comment": "pointer to the new remote object", - "cType": "git_remote **", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the associated repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "the remote's name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_ENOTFOUND, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_load-5" - ], - "network/ls-remote.c": [ - "ex/v0.21.2/network/ls-remote.html#git_remote_load-3" - ] - }, - "cFunctionName": "git_remote_load", - "cppFunctionName": "Load", - "jsFunctionName": "load", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " a pointer to the name or NULL for in-memory remotes", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_name", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " a pointer to the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " a pointer to the url or NULL if no special url for pushing is set", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_pushurl", - "cppFunctionName": "Pushurl", - "jsFunctionName": "pushurl", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " the amount of refspecs configured in this remote", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_refspec_count", - "cppFunctionName": "RefspecCount", - "jsFunctionName": "refspecCount", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote to save to config", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, GIT_EINVALIDSPEC or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_save", - "cppFunctionName": "Save", - "jsFunctionName": "save", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to configure", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "value", - "type": "git_remote_autotag_option_t", - "comment": "a GIT_REMOTE_DOWNLOAD_TAGS value", - "cType": "git_remote_autotag_option_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_autotag", - "cppFunctionName": "SetAutotag", - "jsFunctionName": "setAutotag", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to configure", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "callbacks", - "type": "const git_remote_callbacks *", - "comment": "a pointer to the user's callback settings", - "cType": "const git_remote_callbacks *", - "cppClassName": "GitRemoteCallbacks", - "jsClassName": "RemoteCallbacks", - "isLibgitType": true, - "isEnum": false, - "fields": { - "completion": { - "ignore": true - }, - "sideband_progress": { - "ignore": true - }, - "transfer_progress": { - "ignore": true - }, - "update_tips": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_set_callbacks-12" - ], - "network/ls-remote.c": [ - "ex/v0.21.2/network/ls-remote.html#git_remote_set_callbacks-7" - ] - }, - "cFunctionName": "git_remote_set_callbacks", - "cppFunctionName": "SetCallbacks", - "jsFunctionName": "setCallbacks", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to modify", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "array", - "type": "git_strarray *", - "comment": "the new list of fetch resfpecs", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_fetch_refspecs", - "cppFunctionName": "SetFetchRefspecs", - "jsFunctionName": "setFetchRefspecs", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to modify", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "array", - "type": "git_strarray *", - "comment": "the new list of push resfpecs", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_push_refspecs", - "cppFunctionName": "SetPushRefspecs", - "jsFunctionName": "setPushRefspecs", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "url", - "type": "const char *", - "comment": "the url to set or NULL to clear the pushurl", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error value", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_pushurl", - "cppFunctionName": "SetPushurl", - "jsFunctionName": "setPushurl", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to configure", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "transport", - "type": "git_transport *", - "comment": "the transport object for the remote to use", - "cType": "git_transport *", - "cppClassName": "GitTransport", - "jsClassName": "Transport", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_transport", - "cppFunctionName": "SetTransport", - "jsFunctionName": "setTransport", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to configure", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "value", - "type": "int", - "comment": "0 to disable updating FETCH_HEAD", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_update_fetchhead", - "cppFunctionName": "SetUpdateFetchhead", - "jsFunctionName": "setUpdateFetchhead", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "url", - "type": "const char *", - "comment": "the url to set", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error value", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_set_url", - "cppFunctionName": "SetUrl", - "jsFunctionName": "setUrl", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": null, - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_transfer_progress *", - "comment": null, - "cType": "const git_transfer_progress *", - "cppClassName": "GitTransferProgress", - "jsClassName": "TransferProgress", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_stats-13" - ] - }, - "cFunctionName": "git_remote_stats", - "cppFunctionName": "Stats", - "jsFunctionName": "stats", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_stop", - "cppFunctionName": "Stop", - "jsFunctionName": "stop", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "url", - "type": "const char *", - "comment": "the url to check", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the url is supported, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_supported_url", - "cppFunctionName": "SupportedUrl", - "jsFunctionName": "supportedUrl", - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to query", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " the update FETCH_HEAD setting", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_update_fetchhead", - "cppFunctionName": "UpdateFetchhead", - "jsFunctionName": "updateFetchhead", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "git_remote *", - "comment": "the remote to update", - "cType": "git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity to use when updating reflogs", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "reflog_message", - "type": "const char *", - "comment": "The message to insert into the reflogs. If NULL, the\n default is \"fetch \n\", where \n is the name of\n the remote (or its url, for in-memory remotes).", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "examples": { - "network/fetch.c": [ - "ex/v0.21.2/network/fetch.html#git_remote_update_tips-11" - ] - }, - "cFunctionName": "git_remote_update_tips", - "cppFunctionName": "UpdateTips", - "jsFunctionName": "updateTips", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "remote", - "type": "const git_remote *", - "comment": "the remote", - "cType": "const git_remote *", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " a pointer to the url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_url", - "cppFunctionName": "Url", - "jsFunctionName": "url", - "isPrototypeMethod": true, - "cppClassName": "GitRemote" - }, - { - "type": "function", - "file": "remote.h", - "args": [ - { - "name": "url", - "type": "const char *", - "comment": "the url to check", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 1 if the url is valid, 0 otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "remote", - "cFunctionName": "git_remote_valid_url", - "cppFunctionName": "ValidUrl", - "jsFunctionName": "validUrl", - "cppClassName": "GitRemote" - } - ], - "type": "class", - "cType": "git_remote", - "typeName": "remote", - "cppClassName": "GitRemote", - "jsClassName": "Remote", - "filename": "remote", - "isLibgitType": true, - "dependencies": [ - "../include/remote.h", - "../include/repository.h", - "../include/signature.h", - "../include/refspec.h", - "../include/remote_callbacks.h", - "../include/strarray.h", - "../include/transport.h", - "../include/transfer_progress.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "freeFunctionName": "git_remote_free", - "name": "remote" - }, - { - "type": "struct", - "value": "git_remote_callbacks", - "file": "remote.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_cred_acquire_cb", - "name": "credentials", - "cType": "git_cred_acquire_cb", - "cppFunctionName": "Credentials", - "jsFunctionName": "credentials", - "cppClassName": "GitCredAcquireCb", - "jsClassName": "CredAcquireCb", - "isCallbackFunction": true, - "args": [ - { - "name": "cred", - "cType": "git_cred **", - "isReturn": true, - "cppClassName": "GitCred", - "jsClassName": "Cred" - }, - { - "name": "url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String" - }, - { - "name": "username_from_url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String" - }, - { - "name": "allowed_types", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number" - }, - { - "name": "payload", - "cType": "void *", - "cppClassName": "Void", - "jsClassName": "Void" - } - ], - "returnType": "int", - "returnNoResults": 1, - "returnSuccess": 0, - "returnError": -1 - }, - { - "type": "void *", - "name": "payload", - "cType": "void *", - "cppFunctionName": "Payload", - "jsFunctionName": "payload", - "cppClassName": "Void", - "jsClassName": "Void", - "isCallbackFunction": false, - "payloadFor": "*" - } - ], - "used": { - "returns": [ - "git_remote_get_callbacks" - ], - "needs": [ - "git_remote_init_callbacks", - "git_remote_set_callbacks" - ] - }, - "typeName": "remote_callbacks", - "cType": "git_remote_callbacks", - "functions": [], - "cppClassName": "GitRemoteCallbacks", - "jsClassName": "RemoteCallbacks", - "filename": "remote_callbacks", - "isLibgitType": true, - "dependencies": [ - "../include/cred.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "remote_callbacks" - }, - { - "typeName": "remote_completion_type", - "type": "enum", - "cType": "git_remote_completion_type", - "isMask": false, - "values": [ - { - "name": "GIT_REMOTE_COMPLETION_DOWNLOAD", - "value": 0, - "JsName": "COMPLETION_DOWNLOAD" - }, - { - "name": "GIT_REMOTE_COMPLETION_INDEXING", - "value": 1, - "JsName": "COMPLETION_INDEXING" - }, - { - "name": "GIT_REMOTE_COMPLETION_ERROR", - "value": 2, - "JsName": "COMPLETION_ERROR" - } - ], - "owner": "Remote", - "JsName": "COMPLETION_TYPE" - }, - { - "type": "class", - "value": "git_repository", - "file": "types.h", - "used": { - "returns": [ - "git_blob_owner", - "git_commit_owner", - "git_filter_source_repo", - "git_index_owner", - "git_object_owner", - "git_reference_owner", - "git_remote_owner", - "git_revwalk_repository", - "git_submodule_owner", - "git_tag_owner", - "git_tree_owner" - ], - "needs": [ - "git_attr_add_macro", - "git_attr_cache_flush", - "git_attr_foreach", - "git_attr_get", - "git_attr_get_many", - "git_blame_file", - "git_blob_create_frombuffer", - "git_blob_create_fromchunks", - "git_blob_create_fromdisk", - "git_blob_create_fromworkdir", - "git_blob_lookup", - "git_blob_lookup_prefix", - "git_branch_create", - "git_branch_iterator_new", - "git_branch_lookup", - "git_checkout_head", - "git_checkout_index", - "git_checkout_tree", - "git_cherry_pick", - "git_cherry_pick_commit", - "git_clone", - "git_clone_into", - "git_clone_local_into", - "git_commit_create", - "git_commit_create_from_callback", - "git_commit_create_from_ids", - "git_commit_create_v", - "git_commit_lookup", - "git_commit_lookup_prefix", - "git_diff_commit_as_email", - "git_diff_index_to_workdir", - "git_diff_tree_to_index", - "git_diff_tree_to_tree", - "git_diff_tree_to_workdir", - "git_diff_tree_to_workdir_with_index", - "git_filter_list_apply_to_file", - "git_filter_list_load", - "git_filter_list_new", - "git_graph_ahead_behind", - "git_graph_descendant_of", - "git_ignore_add_rule", - "git_ignore_clear_internal_rules", - "git_ignore_path_is_ignored", - "git_index_write_tree_to", - "git_merge", - "git_merge_analysis", - "git_merge_base", - "git_merge_base_many", - "git_merge_base_octopus", - "git_merge_commits", - "git_merge_file_from_index", - "git_merge_head_from_fetchhead", - "git_merge_head_from_id", - "git_merge_head_from_ref", - "git_merge_trees", - "git_note_create", - "git_note_default_ref", - "git_note_foreach", - "git_note_iterator_new", - "git_note_read", - "git_note_remove", - "git_object_lookup", - "git_object_lookup_prefix", - "git_packbuilder_new", - "git_pathspec_match_workdir", - "git_refdb_backend_fs", - "git_refdb_new", - "git_refdb_open", - "git_reference_create", - "git_reference_create_matching", - "git_reference_dwim", - "git_reference_ensure_log", - "git_reference_foreach", - "git_reference_foreach_glob", - "git_reference_foreach_name", - "git_reference_has_log", - "git_reference_iterator_glob_new", - "git_reference_iterator_new", - "git_reference_list", - "git_reference_lookup", - "git_reference_name_to_id", - "git_reference_remove", - "git_reference_symbolic_create", - "git_reference_symbolic_create_matching", - "git_reflog_delete", - "git_reflog_read", - "git_reflog_rename", - "git_remote_create", - "git_remote_create_anonymous", - "git_remote_create_with_fetchspec", - "git_remote_list", - "git_remote_load", - "git_repository_config", - "git_repository_config_snapshot", - "git_repository_detach_head", - "git_repository_fetchhead_foreach", - "git_repository_free", - "git_repository_get_namespace", - "git_repository_hashfile", - "git_repository_head", - "git_repository_head_detached", - "git_repository_head_unborn", - "git_repository_index", - "git_repository_init", - "git_repository_init_ext", - "git_repository_is_bare", - "git_repository_is_empty", - "git_repository_is_shallow", - "git_repository_mergehead_foreach", - "git_repository_message", - "git_repository_message_remove", - "git_repository_odb", - "git_repository_open", - "git_repository_open_bare", - "git_repository_open_ext", - "git_repository_path", - "git_repository_refdb", - "git_repository_set_head", - "git_repository_set_head_detached", - "git_repository_set_namespace", - "git_repository_set_workdir", - "git_repository_state", - "git_repository_state_cleanup", - "git_repository_workdir", - "git_repository_wrap_odb", - "git_revert", - "git_revert_commit", - "git_revparse", - "git_revparse_ext", - "git_revparse_single", - "git_revwalk_new", - "git_signature_default", - "git_stash_drop", - "git_stash_foreach", - "git_status_file", - "git_status_foreach", - "git_status_foreach_ext", - "git_status_list_new", - "git_status_should_ignore", - "git_submodule_add_setup", - "git_submodule_foreach", - "git_submodule_lookup", - "git_submodule_open", - "git_submodule_reload_all", - "git_tag_annotation_create", - "git_tag_create", - "git_tag_create_frombuffer", - "git_tag_create_lightweight", - "git_tag_delete", - "git_tag_foreach", - "git_tag_list", - "git_tag_list_match", - "git_tag_lookup", - "git_tag_lookup_prefix", - "git_tree_entry_to_object", - "git_tree_lookup", - "git_tree_lookup_prefix", - "git_treebuilder_write" - ] - }, - "typeName": "repository", - "cType": "git_repository", - "functions": [ - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_config **", - "comment": "Pointer to store the loaded configuration", - "cType": "git_config **", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_config", - "cppFunctionName": "Config", - "jsFunctionName": "config", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_config **", - "comment": "Pointer to store the loaded configuration", - "cType": "git_config **", - "cppClassName": "GitConfig", - "jsClassName": "Config", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_config_snapshot", - "cppFunctionName": "ConfigSnapshot", - "jsFunctionName": "configSnapshot", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository pointer", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "reflog_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing\n branch or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_detach_head", - "cppFunctionName": "DetachHead", - "jsFunctionName": "detachHead", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repo", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the active namespace, or NULL if there isn't one", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_get_namespace", - "cppFunctionName": "GetNamespace", - "jsFunctionName": "getNamespace", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_reference **", - "comment": "pointer to the reference which will be retrieved", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "a repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing\n branch, GIT_ENOTFOUND when HEAD is missing; an error code otherwise", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_repository_head-5" - ] - }, - "cFunctionName": "git_repository_head", - "cppFunctionName": "Head", - "jsFunctionName": "head", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repo to test", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if HEAD is detached, 0 if it's not; error code if there\n was an error.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_head_detached", - "cppFunctionName": "HeadDetached", - "jsFunctionName": "headDetached", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repo to test", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if the current branch is unborn, 0 if it's not; error\n code if there was an error", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_head_unborn", - "cppFunctionName": "HeadUnborn", - "jsFunctionName": "headUnborn", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "Pointer to store the loaded index", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_repository_index-60" - ], - "init.c": [ - "ex/v0.21.2/init.html#git_repository_index-9" - ] - }, - "cFunctionName": "git_repository_index", - "cppFunctionName": "Index", - "jsFunctionName": "index", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "pointer to the repo which will be created or reinitialized", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "the path to the repository", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "is_bare", - "type": "unsigned int", - "comment": "if true, a Git repository without a working directory is\n\t\tcreated at the pointed path. If false, provided path will be\n\t\tconsidered as the working directory into which the .git directory\n\t\twill be created.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_repository_init-5" - ] - }, - "cFunctionName": "git_repository_init", - "cppFunctionName": "Init", - "jsFunctionName": "init", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "Pointer to the repo which will be created or reinitialized.", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo_path", - "type": "const char *", - "comment": "The path to the repository.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "opts", - "type": "git_repository_init_options *", - "comment": "Pointer to git_repository_init_options struct.", - "cType": "git_repository_init_options *", - "cppClassName": "GitRepositoryInitOptions", - "jsClassName": "RepositoryInitOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code on failure.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_repository_init_ext-6" - ] - }, - "cFunctionName": "git_repository_init_ext", - "cppFunctionName": "InitExt", - "jsFunctionName": "initExt", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "opts", - "type": "git_repository_init_options *", - "comment": "the `git_repository_init_options` struct to initialize", - "cType": "git_repository_init_options *", - "cppClassName": "GitRepositoryInitOptions", - "jsClassName": "RepositoryInitOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_REPOSITORY_INIT_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_init_init_options", - "cppFunctionName": "InitInitOptions", - "jsFunctionName": "initInitOptions", - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repo to test", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if the repository is bare, 0 otherwise.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_repository_is_bare-7" - ] - }, - "cFunctionName": "git_repository_is_bare", - "cppFunctionName": "IsBare", - "jsFunctionName": "isBare", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repo to test", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if the repository is empty, 0 if it isn't, error code\n if the repository is corrupted", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_is_empty", - "cppFunctionName": "IsEmpty", - "jsFunctionName": "isEmpty", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 1 if shallow, zero if not", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_is_shallow", - "cppFunctionName": "IsShallow", - "jsFunctionName": "isShallow", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": null, - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_message_remove", - "cppFunctionName": "MessageRemove", - "jsFunctionName": "messageRemove", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_odb **", - "comment": "Pointer to store the loaded ODB", - "cType": "git_odb **", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_repository_odb-31" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_repository_odb-59" - ] - }, - "cFunctionName": "git_repository_odb", - "cppFunctionName": "Odb", - "jsFunctionName": "odb", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "pointer to the repo which will be opened", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "the path to the repository", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_repository_open-57" - ], - "network/git2.c": [ - "ex/v0.21.2/network/git2.html#git_repository_open-3" - ] - }, - "cFunctionName": "git_repository_open", - "cppFunctionName": "Open", - "jsFunctionName": "open", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "Pointer to the repo which will be opened.", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "bare_path", - "type": "const char *", - "comment": "Direct path to the bare repository", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_open_bare", - "cppFunctionName": "OpenBare", - "jsFunctionName": "openBare", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "Pointer to the repo which will be opened. This can\n actually be NULL if you only want to use the error code to\n see if a repo at this path could be opened.", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "Path to open as git repository. If the flags\n permit \"searching\", then this can be a path to a subdirectory\n inside the working directory of the repository.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "flags", - "type": "unsigned int", - "comment": "A combination of the GIT_REPOSITORY_OPEN flags above.", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "ceiling_dirs", - "type": "const char *", - "comment": "A GIT_PATH_LIST_SEPARATOR delimited list of path\n prefixes at which the search for a containing repository should\n terminate.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if no repository could be found,\n or -1 if there was a repository but open failed for some reason\n (such as repo corruption or system errors).", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_repository_open_ext-22" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_repository_open_ext-29" - ], - "diff.c": [ - "ex/v0.21.2/diff.html#git_repository_open_ext-13" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_repository_open_ext-42", - "ex/v0.21.2/log.html#git_repository_open_ext-43" - ], - "rev-parse.c": [ - "ex/v0.21.2/rev-parse.html#git_repository_open_ext-14" - ], - "status.c": [ - "ex/v0.21.2/status.html#git_repository_open_ext-3" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_repository_open_ext-9" - ] - }, - "cFunctionName": "git_repository_open_ext", - "cppFunctionName": "OpenExt", - "jsFunctionName": "openExt", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the path to the repository", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_repository_path-7" - ], - "status.c": [ - "ex/v0.21.2/status.html#git_repository_path-6" - ] - }, - "cFunctionName": "git_repository_path", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_refdb **", - "comment": "Pointer to store the loaded refdb", - "cType": "git_refdb **", - "cppClassName": "GitRefdb", - "jsClassName": "Refdb", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_refdb", - "cppFunctionName": "Refdb", - "jsFunctionName": "refdb", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository pointer", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "refname", - "type": "const char *", - "comment": "Canonical name of the reference the HEAD should point at", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_set_head", - "cppFunctionName": "SetHead", - "jsFunctionName": "setHead", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository pointer", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "commitish", - "type": "const git_oid *", - "comment": "Object id of the Commit the HEAD should point to", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "signature", - "type": "const git_signature *", - "comment": "The identity that will used to populate the reflog entry", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "log_message", - "type": "const char *", - "comment": "The one line long message to be appended to the reflog", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_set_head_detached", - "cppFunctionName": "SetHeadDetached", - "jsFunctionName": "setHeadDetached", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repo", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "nmspace", - "type": "const char *", - "comment": "The namespace. This should not include the refs\n\tfolder, e.g. to namespace all references under `refs/namespaces/foo/`,\n\tuse `foo` as the namespace.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, -1 on error", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_set_namespace", - "cppFunctionName": "SetNamespace", - "jsFunctionName": "setNamespace", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "workdir", - "type": "const char *", - "comment": "The path to a working directory", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "update_gitlink", - "type": "int", - "comment": "Create/update gitlink in workdir and set config\n \"core.worktree\" (if workdir is not the parent of the .git directory)", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0, or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_set_workdir", - "cppFunctionName": "SetWorkdir", - "jsFunctionName": "setWorkdir", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository pointer", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " The state of the repository", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_state", - "cppFunctionName": "State", - "jsFunctionName": "state", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or error", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_state_cleanup", - "cppFunctionName": "StateCleanup", - "jsFunctionName": "stateCleanup", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " the path to the working dir, if it exists", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_repository_workdir-8" - ] - }, - "cFunctionName": "git_repository_workdir", - "cppFunctionName": "Workdir", - "jsFunctionName": "workdir", - "isPrototypeMethod": true, - "cppClassName": "GitRepository" - }, - { - "type": "function", - "file": "repository.h", - "args": [ - { - "name": "out", - "type": "git_repository **", - "comment": "pointer to the repo", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "odb", - "type": "git_odb *", - "comment": "the object database to wrap", - "cType": "git_odb *", - "cppClassName": "GitOdb", - "jsClassName": "Odb", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "repository", - "cFunctionName": "git_repository_wrap_odb", - "cppFunctionName": "WrapOdb", - "jsFunctionName": "wrapOdb", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitRepository" - } - ], - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "filename": "repository", - "isLibgitType": true, - "dependencies": [ - "../include/config.h", - "../include/repository.h", - "../include/signature.h", - "../include/reference.h", - "../include/index.h", - "../include/repository_init_options.h", - "../include/odb.h", - "../include/refdb.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_repository_free", - "name": "repository" - }, - { - "typeName": "repository_init_flag", - "type": "enum", - "cType": "git_repository_init_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_REPOSITORY_INIT_BARE", - "value": 1, - "JsName": "INIT_BARE" - }, - { - "name": "GIT_REPOSITORY_INIT_NO_REINIT", - "value": 2, - "JsName": "INIT_NO_REINIT" - }, - { - "name": "GIT_REPOSITORY_INIT_NO_DOTGIT_DIR", - "value": 4, - "JsName": "INIT_NO_DOTGIT_DIR" - }, - { - "name": "GIT_REPOSITORY_INIT_MKDIR", - "value": 8, - "JsName": "INIT_MKDIR" - }, - { - "name": "GIT_REPOSITORY_INIT_MKPATH", - "value": 16, - "JsName": "INIT_MKPATH" - }, - { - "name": "GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE", - "value": 32, - "JsName": "INIT_EXTERNAL_TEMPLATE" - } - ], - "owner": "Repository", - "JsName": "INIT_FLAG" - }, - { - "typeName": "repository_init_mode", - "type": "enum", - "cType": "git_repository_init_mode_t", - "isMask": true, - "values": [ - { - "name": "GIT_REPOSITORY_INIT_SHARED_UMASK", - "value": 0, - "JsName": "INIT_SHARED_UMASK" - }, - { - "name": "GIT_REPOSITORY_INIT_SHARED_GROUP", - "value": 1533, - "JsName": "INIT_SHARED_GROUP" - }, - { - "name": "GIT_REPOSITORY_INIT_SHARED_ALL", - "value": 1535, - "JsName": "INIT_SHARED_ALL" - } - ], - "owner": "Repository", - "JsName": "INIT_MODE" - }, - { - "type": "struct", - "value": "git_repository_init_options", - "file": "repository.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint32_t", - "name": "flags", - "cType": "uint32_t", - "cppFunctionName": "Flags", - "jsFunctionName": "flags", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "uint32_t", - "name": "mode", - "cType": "uint32_t", - "cppFunctionName": "Mode", - "jsFunctionName": "mode", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "workdir_path", - "cType": "const char *", - "cppFunctionName": "WorkdirPath", - "jsFunctionName": "workdirPath", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "description", - "cType": "const char *", - "cppFunctionName": "Description", - "jsFunctionName": "description", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "template_path", - "cType": "const char *", - "cppFunctionName": "TemplatePath", - "jsFunctionName": "templatePath", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "initial_head", - "cType": "const char *", - "cppFunctionName": "InitialHead", - "jsFunctionName": "initialHead", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "const char *", - "name": "origin_url", - "cType": "const char *", - "cppFunctionName": "OriginUrl", - "jsFunctionName": "originUrl", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_repository_init_ext", - "git_repository_init_init_options" - ] - }, - "typeName": "repository_init_options", - "cType": "git_repository_init_options", - "functions": [], - "cppClassName": "GitRepositoryInitOptions", - "jsClassName": "RepositoryInitOptions", - "filename": "repository_init_options", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "repository_init_options" - }, - { - "typeName": "repository_open_flag", - "type": "enum", - "cType": "git_repository_open_flag_t", - "isMask": true, - "values": [ - { - "name": "GIT_REPOSITORY_OPEN_NO_SEARCH", - "value": 1, - "JsName": "OPEN_NO_SEARCH" - }, - { - "name": "GIT_REPOSITORY_OPEN_CROSS_FS", - "value": 2, - "JsName": "OPEN_CROSS_FS" - }, - { - "name": "GIT_REPOSITORY_OPEN_BARE", - "value": 4, - "JsName": "OPEN_BARE" - } - ], - "owner": "Repository", - "JsName": "OPEN_FLAG" - }, - { - "functions": [ - { - "type": "function", - "file": "revert.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to revert", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "commit", - "type": "git_commit *", - "comment": "the commit to revert", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "given_opts", - "type": "const git_revert_options *", - "comment": "merge flags", - "cType": "const git_revert_options *", - "cppClassName": "GitRevertOptions", - "jsClassName": "RevertOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " zero on success, -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revert", - "cFunctionName": "git_revert", - "cppFunctionName": "Revert", - "jsFunctionName": "revert", - "cppClassName": "GitRevert" - }, - { - "type": "function", - "file": "revert.h", - "args": [ - { - "name": "out", - "type": "git_index **", - "comment": "pointer to store the index result in", - "cType": "git_index **", - "cppClassName": "GitIndex", - "jsClassName": "Index", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository that contains the given commits", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "revert_commit", - "type": "git_commit *", - "comment": "the commit to revert", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "our_commit", - "type": "git_commit *", - "comment": "the commit to revert against (eg, HEAD)", - "cType": "git_commit *", - "cppClassName": "GitCommit", - "jsClassName": "Commit", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "mainline", - "type": "unsigned int", - "comment": "the parent of the revert commit, if it is a merge", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "merge_options", - "type": "const git_merge_options *", - "comment": "the merge options (or null for defaults)", - "cType": "const git_merge_options *", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " zero on success, -1 on failure.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revert", - "cFunctionName": "git_revert_commit", - "cppFunctionName": "Commit", - "jsFunctionName": "commit", - "isAsync": true, - "cppClassName": "GitRevert" - }, - { - "type": "function", - "file": "revert.h", - "args": [ - { - "name": "opts", - "type": "git_revert_options *", - "comment": "the `git_revert_options` struct to initialize", - "cType": "git_revert_options *", - "cppClassName": "GitRevertOptions", - "jsClassName": "RevertOptions", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_REVERT_OPTIONS_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revert", - "cFunctionName": "git_revert_init_options", - "cppFunctionName": "InitOptions", - "jsFunctionName": "initOptions", - "cppClassName": "GitRevert" - } - ], - "type": "class", - "cType": null, - "typeName": "revert", - "cppClassName": "GitRevert", - "jsClassName": "Revert", - "filename": "revert", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/commit.h", - "../include/revert_options.h", - "../include/index.h", - "../include/merge_options.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "revert" - }, - { - "type": "struct", - "value": "git_revert_options", - "file": "revert.h", - "fields": [ - { - "type": "unsigned int", - "name": "version", - "cType": "unsigned int", - "cppFunctionName": "Version", - "jsFunctionName": "version", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "mainline", - "cType": "unsigned int", - "cppFunctionName": "Mainline", - "jsFunctionName": "mainline", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "git_merge_options", - "name": "merge_opts", - "cType": "git_merge_options", - "cppFunctionName": "MergeOpts", - "jsFunctionName": "mergeOpts", - "cppClassName": "GitMergeOptions", - "jsClassName": "MergeOptions", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - }, - { - "type": "git_checkout_options", - "name": "checkout_opts", - "cType": "git_checkout_options", - "cppFunctionName": "CheckoutOpts", - "jsFunctionName": "checkoutOpts", - "cppClassName": "GitCheckoutOptions", - "jsClassName": "CheckoutOptions", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_revert", - "git_revert_init_options" - ] - }, - "typeName": "revert_options", - "cType": "git_revert_options", - "functions": [], - "cppClassName": "GitRevertOptions", - "jsClassName": "RevertOptions", - "filename": "revert_options", - "isLibgitType": true, - "dependencies": [ - "../include/merge_options.h", - "../include/checkout_options.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": true, - "name": "revert_options" - }, - { - "functions": [ - { - "type": "function", - "file": "revparse.h", - "args": [ - { - "name": "object_out", - "type": "git_object **", - "comment": "pointer to output object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "reference_out", - "type": "git_reference **", - "comment": "pointer to output reference or NULL", - "cType": "git_reference **", - "cppClassName": "GitRefs", - "jsClassName": "Refs", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to search in", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "spec", - "type": "const char *", - "comment": "the textual specification for an object", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC\n or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revparse", - "cFunctionName": "git_revparse_ext", - "cppFunctionName": "Ext", - "jsFunctionName": "ext", - "cppClassName": "GitRevparse" - }, - { - "type": "function", - "file": "revparse.h", - "args": [ - { - "name": "out", - "type": "git_object **", - "comment": "pointer to output object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repository to search in", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "spec", - "type": "const char *", - "comment": "the textual specification for an object", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revparse", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_revparse_single-24" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_revparse_single-32" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_revparse_single-45" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_revparse_single-11", - "ex/v0.21.2/tag.html#git_revparse_single-12", - "ex/v0.21.2/tag.html#git_revparse_single-13", - "ex/v0.21.2/tag.html#git_revparse_single-14" - ] - }, - "cFunctionName": "git_revparse_single", - "cppFunctionName": "Single", - "jsFunctionName": "single", - "isAsync": true, - "cppClassName": "GitRevparse" - } - ], - "type": "class", - "cType": null, - "typeName": "revparse", - "cppClassName": "GitRevparse", - "jsClassName": "Revparse", - "filename": "revparse", - "isLibgitType": true, - "dependencies": [ - "../include/object.h", - "../include/reference.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "revparse" - }, - { - "typeName": "revparse_mode", - "type": "enum", - "cType": "git_revparse_mode_t", - "isMask": true, - "values": [ - { - "name": "GIT_REVPARSE_SINGLE", - "value": 1, - "JsName": "SINGLE" - }, - { - "name": "GIT_REVPARSE_RANGE", - "value": 2, - "JsName": "RANGE" - }, - { - "name": "GIT_REVPARSE_MERGE_BASE", - "value": 4, - "JsName": "MERGE_BASE" - } - ], - "owner": "Revparse", - "JsName": "MODE" - }, - { - "type": "class", - "value": "git_revwalk", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_revwalk_add_hide_cb", - "git_revwalk_free", - "git_revwalk_hide", - "git_revwalk_hide_glob", - "git_revwalk_hide_head", - "git_revwalk_hide_ref", - "git_revwalk_new", - "git_revwalk_next", - "git_revwalk_push", - "git_revwalk_push_glob", - "git_revwalk_push_head", - "git_revwalk_push_range", - "git_revwalk_push_ref", - "git_revwalk_repository", - "git_revwalk_reset", - "git_revwalk_simplify_first_parent", - "git_revwalk_sorting" - ] - }, - "typeName": "revwalk", - "cType": "git_revwalk", - "functions": [ - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal.", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "commit_id", - "type": "const git_oid *", - "comment": "the oid of commit that will be ignored during the traversal", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_hide-51" - ] - }, - "cFunctionName": "git_revwalk_hide", - "cppFunctionName": "Hide", - "jsFunctionName": "hide", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "glob", - "type": "const char *", - "comment": "the glob pattern references should match", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_hide_glob", - "cppFunctionName": "HideGlob", - "jsFunctionName": "hideGlob", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_hide_head", - "cppFunctionName": "HideHead", - "jsFunctionName": "hideHead", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "refname", - "type": "const char *", - "comment": "the reference to hide", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_hide_ref", - "cppFunctionName": "HideRef", - "jsFunctionName": "hideRef", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "out", - "type": "git_revwalk **", - "comment": "pointer to the new revision walker", - "cType": "git_revwalk **", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to walk through", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_revwalk_new-61" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_new-47", - "ex/v0.21.2/log.html#git_revwalk_new-48" - ] - }, - "cFunctionName": "git_revwalk_new", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": false, - "isConstructorMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "out", - "type": "git_oid *", - "comment": "Pointer where to store the oid of the next commit", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": true, - "isSelf": false - }, - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker to pop the commit from.", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 if the next commit was found;\n\tGIT_ITEROVER if there are no commits left to iterate", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_revwalk_next-63" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_next-52" - ] - }, - "cFunctionName": "git_revwalk_next", - "cppFunctionName": "Next", - "jsFunctionName": "next", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal.", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "the oid of the commit to start from.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_revwalk_push-62" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_push-49" - ] - }, - "cFunctionName": "git_revwalk_push", - "cppFunctionName": "Push", - "jsFunctionName": "push", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "glob", - "type": "const char *", - "comment": "the glob pattern references should match", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_push_glob", - "cppFunctionName": "PushGlob", - "jsFunctionName": "pushGlob", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_push_head-50" - ] - }, - "cFunctionName": "git_revwalk_push_head", - "cppFunctionName": "PushHead", - "jsFunctionName": "pushHead", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "range", - "type": "const char *", - "comment": "the range", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_push_range", - "cppFunctionName": "PushRange", - "jsFunctionName": "pushRange", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "refname", - "type": "const char *", - "comment": "the reference to push", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_push_ref", - "cppFunctionName": "PushRef", - "jsFunctionName": "pushRef", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the revision walker", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " the repository being walked", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_repository", - "cppFunctionName": "Repository", - "jsFunctionName": "repository", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walker", - "type": "git_revwalk *", - "comment": "handle to reset.", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_reset", - "cppFunctionName": "Reset", - "jsFunctionName": "reset", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": null, - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "cFunctionName": "git_revwalk_simplify_first_parent", - "cppFunctionName": "SimplifyFirstParent", - "jsFunctionName": "simplifyFirstParent", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - }, - { - "type": "function", - "file": "revwalk.h", - "args": [ - { - "name": "walk", - "type": "git_revwalk *", - "comment": "the walker being used for the traversal.", - "cType": "git_revwalk *", - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "sort_mode", - "type": "unsigned int", - "comment": "combination of GIT_SORT_XXX flags", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "revwalk", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_revwalk_sorting-64" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_revwalk_sorting-53", - "ex/v0.21.2/log.html#git_revwalk_sorting-54" - ] - }, - "cFunctionName": "git_revwalk_sorting", - "cppFunctionName": "Sorting", - "jsFunctionName": "sorting", - "isPrototypeMethod": true, - "cppClassName": "GitRevwalk" - } - ], - "cppClassName": "GitRevwalk", - "jsClassName": "Revwalk", - "filename": "revwalk", - "isLibgitType": true, - "dependencies": [ - "../include/revwalk.h", - "../include/oid.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_revwalk_free", - "name": "revwalk" - }, - { - "type": "class", - "value": "git_signature", - "file": "types.h", - "fields": [ - { - "type": "char *", - "name": "name", - "cType": "char *", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "char *", - "name": "email", - "cType": "char *", - "cppFunctionName": "Email", - "jsFunctionName": "email", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "git_time", - "name": "when", - "cType": "git_time", - "cppFunctionName": "When", - "jsFunctionName": "when", - "cppClassName": "GitTime", - "jsClassName": "Time", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false - } - ], - "used": { - "returns": [ - "git_commit_author", - "git_commit_committer", - "git_reflog_entry_committer", - "git_tag_tagger" - ], - "needs": [ - "git_branch_create", - "git_branch_move", - "git_clone_into", - "git_clone_local_into", - "git_commit_amend", - "git_commit_create", - "git_commit_create_from_callback", - "git_commit_create_from_ids", - "git_commit_create_v", - "git_note_create", - "git_note_remove", - "git_push_update_tips", - "git_reference_create", - "git_reference_create_matching", - "git_reference_rename", - "git_reference_set_target", - "git_reference_symbolic_create", - "git_reference_symbolic_create_matching", - "git_reference_symbolic_set_target", - "git_reflog_append", - "git_remote_fetch", - "git_remote_update_tips", - "git_repository_detach_head", - "git_repository_set_head", - "git_repository_set_head_detached", - "git_signature_default", - "git_signature_dup", - "git_signature_free", - "git_signature_new", - "git_signature_now", - "git_tag_annotation_create", - "git_tag_create" - ] - }, - "typeName": "signature", - "cType": "git_signature", - "functions": [ - { - "type": "function", - "file": "signature.h", - "args": [ - { - "name": "out", - "type": "git_signature **", - "comment": "new signature", - "cType": "git_signature **", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository pointer", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if config is missing, or error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "signature", - "examples": { - "init.c": [ - "ex/v0.21.2/init.html#git_signature_default-10" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_signature_default-15" - ] - }, - "cFunctionName": "git_signature_default", - "cppFunctionName": "Default", - "jsFunctionName": "default", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitSignature" - }, - { - "type": "function", - "file": "signature.h", - "args": [ - { - "name": "dest", - "type": "git_signature **", - "comment": "pointer where to store the copy", - "cType": "git_signature **", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "sig", - "type": "const git_signature *", - "comment": "signature to duplicate", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "signature", - "cFunctionName": "git_signature_dup", - "cppFunctionName": "Dup", - "jsFunctionName": "dup", - "isAsync": true, - "isConstructorMethod": true, - "isPrototypeMethod": true, - "cppClassName": "GitSignature" - }, - { - "type": "function", - "file": "signature.h", - "args": [ - { - "name": "out", - "type": "git_signature **", - "comment": "new signature, in case of error NULL", - "cType": "git_signature **", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "name of the person", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "email", - "type": "const char *", - "comment": "email of the person", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "time", - "type": "git_time_t", - "comment": "time when the action happened", - "cType": "git_time_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isReturn": false, - "isSelf": false - }, - { - "name": "offset", - "type": "int", - "comment": "timezone offset in minutes for the time", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "signature", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_signature_new-66", - "ex/v0.21.2/general.html#git_signature_new-67" - ] - }, - "cFunctionName": "git_signature_new", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": false, - "isConstructorMethod": true, - "cppClassName": "GitSignature" - }, - { - "type": "function", - "file": "signature.h", - "args": [ - { - "name": "out", - "type": "git_signature **", - "comment": "new signature, in case of error NULL", - "cType": "git_signature **", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "name of the person", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "email", - "type": "const char *", - "comment": "email of the person", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "signature", - "cFunctionName": "git_signature_now", - "cppFunctionName": "Now", - "jsFunctionName": "now", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitSignature" - } - ], - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "filename": "signature", - "isLibgitType": true, - "dependencies": [ - "../include/time.h", - "../include/signature.h", - "../include/repository.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "freeFunctionName": "git_signature_free", - "name": "signature" - }, - { - "functions": [], - "type": "class", - "cType": null, - "typeName": "smart", - "cppClassName": "GitSmart", - "jsClassName": "Smart", - "filename": "smart", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "smart" - }, - { - "functions": [ - { - "type": "function", - "file": "stash.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The owning repository.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "index", - "type": "size_t", - "comment": "The position within the stash list. 0 points to the\n most recent stashed state.", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, or error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "stash", - "cFunctionName": "git_stash_drop", - "cppFunctionName": "Drop", - "jsFunctionName": "drop", - "cppClassName": "GitStash" - } - ], - "type": "class", - "cType": null, - "typeName": "stash", - "cppClassName": "GitStash", - "jsClassName": "Stash", - "filename": "stash", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "stash" - }, - { - "typeName": "stash_flags", - "type": "enum", - "cType": "git_stash_flags", - "isMask": false, - "values": [ - { - "name": "GIT_STASH_DEFAULT", - "value": 0, - "JsName": "DEFAULT" - }, - { - "name": "GIT_STASH_KEEP_INDEX", - "value": 1, - "JsName": "KEEP_INDEX" - }, - { - "name": "GIT_STASH_INCLUDE_UNTRACKED", - "value": 2, - "JsName": "INCLUDE_UNTRACKED" - }, - { - "name": "GIT_STASH_INCLUDE_IGNORED", - "value": 4, - "JsName": "INCLUDE_IGNORED" - } - ], - "owner": "Stash", - "JsName": "FLAGS" - }, - { - "functions": [ - { - "type": "function", - "file": "status.h", - "args": [ - { - "name": "status_flags", - "type": "unsigned int *", - "comment": "Output combination of git_status_t values for file", - "cType": "unsigned int *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "The file to retrieve status for relative to the repo workdir", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if the file is not found in the HEAD,\n index, and work tree, GIT_EAMBIGUOUS if `path` matches multiple files\n or if it refers to a folder, and -1 on other errors.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "status", - "cFunctionName": "git_status_file", - "cppFunctionName": "File", - "jsFunctionName": "file", - "cppClassName": "GitStatus" - }, - { - "type": "function", - "file": "status.h", - "args": [ - { - "name": "statuslist", - "type": "git_status_list *", - "comment": "Existing status list object", - "cType": "git_status_list *", - "cppClassName": "GitStatusList", - "jsClassName": "StatusList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "size_t", - "comment": " the number of status entries", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "status", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_status_list_entrycount-12", - "ex/v0.21.2/status.html#git_status_list_entrycount-13" - ] - }, - "cFunctionName": "git_status_list_entrycount", - "cppFunctionName": "ListEntrycount", - "jsFunctionName": "listEntrycount", - "cppClassName": "GitStatus" - }, - { - "type": "function", - "file": "status.h", - "args": [ - { - "name": "statuslist", - "type": "git_status_list *", - "comment": "Existing status list object", - "cType": "git_status_list *", - "cppClassName": "GitStatusList", - "jsClassName": "StatusList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "status", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_status_list_free-20" - ] - }, - "cFunctionName": "git_status_list_free", - "cppFunctionName": "ListFree", - "jsFunctionName": "listFree", - "cppClassName": "GitStatus" - }, - { - "type": "function", - "file": "sys/diff.h", - "args": [ - { - "name": "out", - "type": "git_diff_perfdata *", - "comment": null, - "cType": "git_diff_perfdata *", - "cppClassName": "GitDiffPerfdata", - "jsClassName": "DiffPerfdata", - "isLibgitType": true, - "isEnum": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "isReturn": true, - "isSelf": false - }, - { - "name": "status", - "type": "const git_status_list *", - "comment": null, - "cType": "const git_status_list *", - "cppClassName": "GitStatusList", - "jsClassName": "StatusList", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "status", - "cFunctionName": "git_status_list_get_perfdata", - "cppFunctionName": "ListGetPerfdata", - "jsFunctionName": "listGetPerfdata", - "isAsync": true, - "cppClassName": "GitStatus" - }, - { - "type": "function", - "file": "status.h", - "args": [ - { - "name": "ignored", - "type": "int *", - "comment": "Boolean returning 0 if the file is not ignored, 1 if it is", - "cType": "int *", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "A repository object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "The file to check ignores for, rooted at the repo's workdir.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 if ignore rules could be processed for the file (regardless\n of whether it exists or not), or an error \n<\n 0 if they could not.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "status", - "cFunctionName": "git_status_should_ignore", - "cppFunctionName": "ShouldIgnore", - "jsFunctionName": "shouldIgnore", - "cppClassName": "GitStatus" - } - ], - "type": "class", - "cType": null, - "typeName": "status", - "cppClassName": "GitStatus", - "jsClassName": "Status", - "filename": "status", - "isLibgitType": true, - "dependencies": [ - "../include/repository.h", - "../include/status_list.h", - "../include/diff_perfdata.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "cDependencies": [ - "git2/sys/diff.h" - ], - "name": "status" - }, - { - "typeName": "status", - "type": "enum", - "cType": "git_status_t", - "isMask": false, - "values": [ - { - "name": "GIT_STATUS_CURRENT", - "value": 0, - "JsName": "CURRENT" - }, - { - "name": "GIT_STATUS_INDEX_NEW", - "value": 1, - "JsName": "INDEX_NEW" - }, - { - "name": "GIT_STATUS_INDEX_MODIFIED", - "value": 2, - "JsName": "INDEX_MODIFIED" - }, - { - "name": "GIT_STATUS_INDEX_DELETED", - "value": 4, - "JsName": "INDEX_DELETED" - }, - { - "name": "GIT_STATUS_INDEX_RENAMED", - "value": 8, - "JsName": "INDEX_RENAMED" - }, - { - "name": "GIT_STATUS_INDEX_TYPECHANGE", - "value": 16, - "JsName": "INDEX_TYPECHANGE" - }, - { - "name": "GIT_STATUS_WT_NEW", - "value": 128, - "JsName": "WT_NEW" - }, - { - "name": "GIT_STATUS_WT_MODIFIED", - "value": 256, - "JsName": "WT_MODIFIED" - }, - { - "name": "GIT_STATUS_WT_DELETED", - "value": 512, - "JsName": "WT_DELETED" - }, - { - "name": "GIT_STATUS_WT_TYPECHANGE", - "value": 1024, - "JsName": "WT_TYPECHANGE" - }, - { - "name": "GIT_STATUS_WT_RENAMED", - "value": 2048, - "JsName": "WT_RENAMED" - }, - { - "name": "GIT_STATUS_IGNORED", - "value": 16384, - "JsName": "IGNORED" - } - ], - "owner": "Status", - "JsName": "STATUS" - }, - { - "type": "class", - "value": "git_status_list", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_status_byindex", - "git_status_list_entrycount", - "git_status_list_free", - "git_status_list_get_perfdata", - "git_status_list_new" - ] - }, - "typeName": "status_list", - "cType": "git_status_list", - "functions": [], - "cppClassName": "GitStatusList", - "jsClassName": "StatusList", - "filename": "status_list", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "status_list" - }, - { - "typeName": "status_opt", - "type": "enum", - "cType": "git_status_opt_t", - "isMask": true, - "values": [ - { - "name": "GIT_STATUS_OPT_INCLUDE_UNTRACKED", - "value": 1, - "JsName": "INCLUDE_UNTRACKED" - }, - { - "name": "GIT_STATUS_OPT_INCLUDE_IGNORED", - "value": 2, - "JsName": "INCLUDE_IGNORED" - }, - { - "name": "GIT_STATUS_OPT_INCLUDE_UNMODIFIED", - "value": 4, - "JsName": "INCLUDE_UNMODIFIED" - }, - { - "name": "GIT_STATUS_OPT_EXCLUDE_SUBMODULES", - "value": 8, - "JsName": "EXCLUDE_SUBMODULES" - }, - { - "name": "GIT_STATUS_OPT_RECURSE_UNTRACKED_DIRS", - "value": 16, - "JsName": "RECURSE_UNTRACKED_DIRS" - }, - { - "name": "GIT_STATUS_OPT_DISABLE_PATHSPEC_MATCH", - "value": 32, - "JsName": "DISABLE_PATHSPEC_MATCH" - }, - { - "name": "GIT_STATUS_OPT_RECURSE_IGNORED_DIRS", - "value": 64, - "JsName": "RECURSE_IGNORED_DIRS" - }, - { - "name": "GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX", - "value": 128, - "JsName": "RENAMES_HEAD_TO_INDEX" - }, - { - "name": "GIT_STATUS_OPT_RENAMES_INDEX_TO_WORKDIR", - "value": 256, - "JsName": "RENAMES_INDEX_TO_WORKDIR" - }, - { - "name": "GIT_STATUS_OPT_SORT_CASE_SENSITIVELY", - "value": 512, - "JsName": "SORT_CASE_SENSITIVELY" - }, - { - "name": "GIT_STATUS_OPT_SORT_CASE_INSENSITIVELY", - "value": 1024, - "JsName": "SORT_CASE_INSENSITIVELY" - }, - { - "name": "GIT_STATUS_OPT_RENAMES_FROM_REWRITES", - "value": 2048, - "JsName": "RENAMES_FROM_REWRITES" - }, - { - "name": "GIT_STATUS_OPT_NO_REFRESH", - "value": 4096, - "JsName": "NO_REFRESH" - }, - { - "name": "GIT_STATUS_OPT_UPDATE_INDEX", - "value": 8192, - "JsName": "UPDATE_INDEX" - } - ], - "owner": "Status", - "JsName": "OPT" - }, - { - "typeName": "status_show", - "type": "enum", - "cType": "git_status_show_t", - "isMask": true, - "values": [ - { - "name": "GIT_STATUS_SHOW_INDEX_AND_WORKDIR", - "value": 0, - "JsName": "INDEX_AND_WORKDIR" - }, - { - "name": "GIT_STATUS_SHOW_INDEX_ONLY", - "value": 1, - "JsName": "INDEX_ONLY" - }, - { - "name": "GIT_STATUS_SHOW_WORKDIR_ONLY", - "value": 2, - "JsName": "WORKDIR_ONLY" - } - ], - "owner": "Status", - "JsName": "SHOW" - }, - { - "type": "class", - "value": "git_strarray", - "file": "strarray.h", - "fields": [ - { - "type": "char **", - "name": "strings", - "cType": "char **", - "cppFunctionName": "Strings", - "jsFunctionName": "strings", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "count", - "cType": "size_t", - "cppFunctionName": "Count", - "jsFunctionName": "count", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [ - "git_index_add_all", - "git_index_remove_all", - "git_index_update_all", - "git_pathspec_new", - "git_reference_list", - "git_remote_get_fetch_refspecs", - "git_remote_get_push_refspecs", - "git_remote_list", - "git_remote_rename", - "git_remote_set_fetch_refspecs", - "git_remote_set_push_refspecs", - "git_strarray_copy", - "git_strarray_free", - "git_tag_list", - "git_tag_list_match" - ] - }, - "typeName": "strarray", - "cType": "git_strarray", - "functions": [ - { - "type": "function", - "file": "strarray.h", - "args": [ - { - "name": "tgt", - "type": "git_strarray *", - "comment": "target", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "src", - "type": "const git_strarray *", - "comment": "source", - "cType": "const git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n 0 on allocation failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "strarray", - "cFunctionName": "git_strarray_copy", - "cppFunctionName": "Copy", - "jsFunctionName": "copy", - "isPrototypeMethod": true, - "cppClassName": "GitStrarray" - } - ], - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "filename": "strarray", - "isLibgitType": true, - "dependencies": [ - "../include/strarray.h" - ], - "needsForwardDeclaration": false, - "hasConstructor": false, - "freeFunctionName": "git_strarray_free", - "name": "strarray" - }, - { - "type": "class", - "value": "git_submodule", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_submodule_add_finalize", - "git_submodule_add_setup", - "git_submodule_add_to_index", - "git_submodule_branch", - "git_submodule_fetch_recurse_submodules", - "git_submodule_foreach", - "git_submodule_free", - "git_submodule_head_id", - "git_submodule_ignore", - "git_submodule_index_id", - "git_submodule_init", - "git_submodule_location", - "git_submodule_lookup", - "git_submodule_name", - "git_submodule_open", - "git_submodule_owner", - "git_submodule_path", - "git_submodule_reload", - "git_submodule_save", - "git_submodule_set_fetch_recurse_submodules", - "git_submodule_set_ignore", - "git_submodule_set_update", - "git_submodule_set_url", - "git_submodule_status", - "git_submodule_sync", - "git_submodule_update", - "git_submodule_url", - "git_submodule_wd_id" - ] - }, - "typeName": "submodule", - "cType": "git_submodule", - "functions": [ - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to finish adding.", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_add_finalize", - "cppFunctionName": "AddFinalize", - "jsFunctionName": "addFinalize", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "out", - "type": "git_submodule **", - "comment": "The newly created submodule ready to open for clone", - "cType": "git_submodule **", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository in which you want to create the submodule", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "url", - "type": "const char *", - "comment": "URL for the submodule's remote", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "path", - "type": "const char *", - "comment": "Path at which the submodule should be created", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "use_gitlink", - "type": "int", - "comment": "Should workdir contain a gitlink to the repo in\n .git/modules vs. repo directly in workdir.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EEXISTS if submodule already exists,\n -1 on other errors.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_add_setup", - "cppFunctionName": "AddSetup", - "jsFunctionName": "addSetup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to add to the index", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "write_index", - "type": "int", - "comment": "Boolean if this should immediately write the index\n file. If you pass this as false, you will have to get the\n git_index and explicitly call `git_index_write()` on it to\n save the change.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_add_to_index", - "cppFunctionName": "AddToIndex", - "jsFunctionName": "addToIndex", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " Pointer to the submodule branch", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_branch", - "cppFunctionName": "Branch", - "jsFunctionName": "branch", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": null, - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_submodule_recurse_t", - "comment": " 0 if fetchRecurseSubmodules is false, 1 if true", - "cType": "git_submodule_recurse_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_fetch_recurse_submodules", - "cppFunctionName": "FetchRecurseSubmodules", - "jsFunctionName": "fetchRecurseSubmodules", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " Pointer to git_oid or NULL if submodule is not in the HEAD.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_head_id", - "cppFunctionName": "HeadId", - "jsFunctionName": "headId", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to check", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_submodule_ignore_t", - "comment": " The current git_submodule_ignore_t valyue what will be used for\n this submodule.", - "cType": "git_submodule_ignore_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_ignore", - "cppFunctionName": "Ignore", - "jsFunctionName": "ignore", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " Pointer to git_oid or NULL if submodule is not in index.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_index_id", - "cppFunctionName": "IndexId", - "jsFunctionName": "indexId", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to write into the superproject config", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "overwrite", - "type": "int", - "comment": "By default, existing entries will not be overwritten,\n but setting this to true forces them to be updated.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_init", - "cppFunctionName": "Init", - "jsFunctionName": "init", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "out", - "type": "git_submodule **", - "comment": "Output ptr to submodule; pass NULL to just get return code", - "cType": "git_submodule **", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The parent repository", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "name", - "type": "const char *", - "comment": "The name of or path to the submodule; trailing slashes okay", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_ENOTFOUND if submodule does not exist,\n GIT_EEXISTS if a repository is found in working directory only,\n -1 on other errors.", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_submodule_lookup-21" - ] - }, - "cFunctionName": "git_submodule_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " Pointer to the submodule name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_submodule_name-24" - ] - }, - "cFunctionName": "git_submodule_name", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "repo", - "type": "git_repository **", - "comment": "Pointer to the submodule repo which was opened", - "cType": "git_repository **", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Submodule to be opened", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 if submodule repo could not be opened.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_open", - "cppFunctionName": "Open", - "jsFunctionName": "open", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " Pointer to `git_repository`", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " Pointer to the submodule path", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "examples": { - "status.c": [ - "ex/v0.21.2/status.html#git_submodule_path-25" - ] - }, - "cFunctionName": "git_submodule_path", - "cppFunctionName": "Path", - "jsFunctionName": "path", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to reload", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "force", - "type": "int", - "comment": "Force reload even if the data doesn't seem out of date", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on error", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_reload", - "cppFunctionName": "Reload", - "jsFunctionName": "reload", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "The repository to reload submodule data for", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Force full reload even if the data doesn't seem out of date", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on error", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_reload_all", - "cppFunctionName": "ReloadAll", - "jsFunctionName": "reloadAll", - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to write.", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_save", - "cppFunctionName": "Save", - "jsFunctionName": "save", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to modify", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "fetch_recurse_submodules", - "type": "git_submodule_recurse_t", - "comment": "Boolean value", - "cType": "git_submodule_recurse_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_submodule_recurse_t", - "comment": " old value for fetchRecurseSubmodules", - "cType": "git_submodule_recurse_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_set_fetch_recurse_submodules", - "cppFunctionName": "SetFetchRecurseSubmodules", - "jsFunctionName": "setFetchRecurseSubmodules", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to update", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "ignore", - "type": "git_submodule_ignore_t", - "comment": "The new value for the ignore rule", - "cType": "git_submodule_ignore_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_submodule_ignore_t", - "comment": " old value for ignore", - "cType": "git_submodule_ignore_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_set_ignore", - "cppFunctionName": "SetIgnore", - "jsFunctionName": "setIgnore", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to update", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "update", - "type": "git_submodule_update_t", - "comment": "The new value to use", - "cType": "git_submodule_update_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_submodule_update_t", - "comment": " old value for update", - "cType": "git_submodule_update_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_set_update", - "cppFunctionName": "SetUpdate", - "jsFunctionName": "setUpdate", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to the submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "url", - "type": "const char *", - "comment": "URL that should be used for the submodule", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, \n<\n0 on failure", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_set_url", - "cppFunctionName": "SetUrl", - "jsFunctionName": "setUrl", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": null, - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_sync", - "cppFunctionName": "Sync", - "jsFunctionName": "sync", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "The submodule to check", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_submodule_update_t", - "comment": " The current git_submodule_update_t value that will be used\n for this submodule.", - "cType": "git_submodule_update_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_update", - "cppFunctionName": "Update", - "jsFunctionName": "update", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " Pointer to the submodule url", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_url", - "cppFunctionName": "Url", - "jsFunctionName": "url", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - }, - { - "type": "function", - "file": "submodule.h", - "args": [ - { - "name": "submodule", - "type": "git_submodule *", - "comment": "Pointer to submodule object", - "cType": "git_submodule *", - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " Pointer to git_oid or NULL if submodule is not checked out.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "submodule", - "cFunctionName": "git_submodule_wd_id", - "cppFunctionName": "WdId", - "jsFunctionName": "wdId", - "isPrototypeMethod": true, - "cppClassName": "GitSubmodule" - } - ], - "cppClassName": "GitSubmodule", - "jsClassName": "Submodule", - "filename": "submodule", - "isLibgitType": true, - "dependencies": [ - "../include/submodule.h", - "../include/repository.h", - "../include/oid.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_submodule_free", - "name": "submodule" - }, - { - "typeName": "submodule_ignore", - "type": "enum", - "cType": "git_submodule_ignore_t", - "isMask": true, - "values": [ - { - "name": "GIT_SUBMODULE_IGNORE_RESET", - "value": -1, - "JsName": "RESET" - }, - { - "name": "GIT_SUBMODULE_IGNORE_NONE", - "value": 1, - "JsName": "NONE" - }, - { - "name": "GIT_SUBMODULE_IGNORE_UNTRACKED", - "value": 2, - "JsName": "UNTRACKED" - }, - { - "name": "GIT_SUBMODULE_IGNORE_DIRTY", - "value": 3, - "JsName": "DIRTY" - }, - { - "name": "GIT_SUBMODULE_IGNORE_ALL", - "value": 4, - "JsName": "ALL" - }, - { - "name": "GIT_SUBMODULE_IGNORE_DEFAULT", - "value": 0, - "JsName": "DEFAULT" - } - ], - "owner": "Submodule", - "JsName": "IGNORE" - }, - { - "typeName": "submodule_recurse", - "type": "enum", - "cType": "git_submodule_recurse_t", - "isMask": true, - "values": [ - { - "name": "GIT_SUBMODULE_RECURSE_RESET", - "value": -1, - "JsName": "RESET" - }, - { - "name": "GIT_SUBMODULE_RECURSE_NO", - "value": 0, - "JsName": "NO" - }, - { - "name": "GIT_SUBMODULE_RECURSE_YES", - "value": 1, - "JsName": "YES" - }, - { - "name": "GIT_SUBMODULE_RECURSE_ONDEMAND", - "value": 2, - "JsName": "ONDEMAND" - } - ], - "owner": "Submodule", - "JsName": "RECURSE" - }, - { - "typeName": "submodule_status", - "type": "enum", - "cType": "git_submodule_status_t", - "isMask": true, - "values": [ - { - "name": "GIT_SUBMODULE_STATUS_IN_HEAD", - "value": 1, - "JsName": "IN_HEAD" - }, - { - "name": "GIT_SUBMODULE_STATUS_IN_INDEX", - "value": 2, - "JsName": "IN_INDEX" - }, - { - "name": "GIT_SUBMODULE_STATUS_IN_CONFIG", - "value": 4, - "JsName": "IN_CONFIG" - }, - { - "name": "GIT_SUBMODULE_STATUS_IN_WD", - "value": 8, - "JsName": "IN_WD" - }, - { - "name": "GIT_SUBMODULE_STATUS_INDEX_ADDED", - "value": 16, - "JsName": "INDEX_ADDED" - }, - { - "name": "GIT_SUBMODULE_STATUS_INDEX_DELETED", - "value": 32, - "JsName": "INDEX_DELETED" - }, - { - "name": "GIT_SUBMODULE_STATUS_INDEX_MODIFIED", - "value": 64, - "JsName": "INDEX_MODIFIED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_UNINITIALIZED", - "value": 128, - "JsName": "WD_UNINITIALIZED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_ADDED", - "value": 256, - "JsName": "WD_ADDED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_DELETED", - "value": 512, - "JsName": "WD_DELETED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_MODIFIED", - "value": 1024, - "JsName": "WD_MODIFIED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_INDEX_MODIFIED", - "value": 2048, - "JsName": "WD_INDEX_MODIFIED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_WD_MODIFIED", - "value": 4096, - "JsName": "WD_WD_MODIFIED" - }, - { - "name": "GIT_SUBMODULE_STATUS_WD_UNTRACKED", - "value": 8192, - "JsName": "WD_UNTRACKED" - } - ], - "owner": "Submodule", - "JsName": "STATUS" - }, - { - "typeName": "submodule_update", - "type": "enum", - "cType": "git_submodule_update_t", - "isMask": true, - "values": [ - { - "name": "GIT_SUBMODULE_UPDATE_RESET", - "value": -1, - "JsName": "RESET" - }, - { - "name": "GIT_SUBMODULE_UPDATE_CHECKOUT", - "value": 1, - "JsName": "CHECKOUT" - }, - { - "name": "GIT_SUBMODULE_UPDATE_REBASE", - "value": 2, - "JsName": "REBASE" - }, - { - "name": "GIT_SUBMODULE_UPDATE_MERGE", - "value": 3, - "JsName": "MERGE" - }, - { - "name": "GIT_SUBMODULE_UPDATE_NONE", - "value": 4, - "JsName": "NONE" - }, - { - "name": "GIT_SUBMODULE_UPDATE_DEFAULT", - "value": 0, - "JsName": "DEFAULT" - } - ], - "owner": "Submodule", - "JsName": "UPDATE" - }, - { - "type": "class", - "value": "git_tag", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_tag_free", - "git_tag_id", - "git_tag_lookup", - "git_tag_lookup_prefix", - "git_tag_message", - "git_tag_name", - "git_tag_owner", - "git_tag_peel", - "git_tag_tagger", - "git_tag_target", - "git_tag_target_id", - "git_tag_target_type" - ] - }, - "typeName": "tag", - "cType": "git_tag", - "functions": [ - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "oid", - "type": "git_oid *", - "comment": "Pointer where to store the OID of the\n newly created tag", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to store the tag", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tag_name", - "type": "const char *", - "comment": "Name for the tag", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const git_object *", - "comment": "Object to which this tag points. This object\n must belong to the given `repo`.", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tagger", - "type": "const git_signature *", - "comment": "Signature of the tagger for this tag, and\n of the tagging time", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "message", - "type": "const char *", - "comment": "Full message for this tag", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_annotation_create", - "cppFunctionName": "AnnotationCreate", - "jsFunctionName": "annotationCreate", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "oid", - "type": "git_oid *", - "comment": "Pointer where to store the OID of the\n newly created tag. If the tag already exists, this parameter\n will be the oid of the existing tag, and the function will\n return a GIT_EEXISTS error code.", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to store the tag", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tag_name", - "type": "const char *", - "comment": "Name for the tag; this name is validated\n for consistency. It should also not conflict with an\n already existing tag name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const git_object *", - "comment": "Object to which this tag points. This object\n must belong to the given `repo`.", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tagger", - "type": "const git_signature *", - "comment": "Signature of the tagger for this tag, and\n of the tagging time", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "message", - "type": "const char *", - "comment": "Full message for this tag", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code\n\tA tag object is written to the ODB, and a proper reference\n\tis written in the /refs/tags folder, pointing to it", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_create-20" - ] - }, - "cFunctionName": "git_tag_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "oid", - "type": "git_oid *", - "comment": "Pointer where to store the OID of the newly created tag", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to store the tag", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "buffer", - "type": "const char *", - "comment": "Raw tag data", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing tags", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; error code otherwise", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_create_frombuffer", - "cppFunctionName": "CreateFrombuffer", - "jsFunctionName": "createFrombuffer", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "oid", - "type": "git_oid *", - "comment": "Pointer where to store the OID of the provided\n target object. If the tag already exists, this parameter\n will be filled with the oid of the existing pointed object\n and the function will return a GIT_EEXISTS error code.", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to store the lightweight tag", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tag_name", - "type": "const char *", - "comment": "Name for the tag; this name is validated\n for consistency. It should also not conflict with an\n already existing tag name", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "target", - "type": "const git_object *", - "comment": "Object to which this tag points. This object\n must belong to the given `repo`.", - "cType": "const git_object *", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "force", - "type": "int", - "comment": "Overwrite existing references", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code\n\tA proper reference is written in the /refs/tags folder,\n pointing to the provided target object", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_create_lightweight-21" - ] - }, - "cFunctionName": "git_tag_create_lightweight", - "cppFunctionName": "CreateLightweight", - "jsFunctionName": "createLightweight", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where lives the tag", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tag_name", - "type": "const char *", - "comment": "Name of the tag to be deleted;\n this name is validated for consistency.", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success, GIT_EINVALIDSPEC or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_delete-22" - ] - }, - "cFunctionName": "git_tag_delete", - "cppFunctionName": "Delete", - "jsFunctionName": "delete", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " object identity for the tag.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag_names", - "type": "git_strarray *", - "comment": "Pointer to a git_strarray structure where\n\t\tthe tag names will be stored", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to find the tags", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_list", - "cppFunctionName": "List", - "jsFunctionName": "list", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag_names", - "type": "git_strarray *", - "comment": "Pointer to a git_strarray structure where\n\t\tthe tag names will be stored", - "cType": "git_strarray *", - "cppClassName": "GitStrarray", - "jsClassName": "Strarray", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "pattern", - "type": "const char *", - "comment": "Standard fnmatch pattern", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository where to find the tags", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_list_match-23" - ] - }, - "cFunctionName": "git_tag_list_match", - "cppFunctionName": "ListMatch", - "jsFunctionName": "listMatch", - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "out", - "type": "git_tag **", - "comment": "pointer to the looked up tag", - "cType": "git_tag **", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the tag.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the tag to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_tag_lookup-69" - ] - }, - "cFunctionName": "git_tag_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "out", - "type": "git_tag **", - "comment": "pointer to the looked up tag", - "cType": "git_tag **", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the tag.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the tag to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "the length of the short identifier", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_lookup_prefix", - "cppFunctionName": "LookupPrefix", - "jsFunctionName": "lookupPrefix", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " message of the tag or NULL when unspecified", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tag_message-37", - "ex/v0.21.2/cat-file.html#git_tag_message-38" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tag_message-73" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_message-19" - ] - }, - "cFunctionName": "git_tag_message", - "cppFunctionName": "Message", - "jsFunctionName": "message", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const char *", - "comment": " name of the tag", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tag_name-35" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tag_name-72" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_tag_name-18" - ] - }, - "cFunctionName": "git_tag_name", - "cppFunctionName": "Name", - "jsFunctionName": "name", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "A previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " Repository that contains this tag.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag_target_out", - "type": "git_object **", - "comment": "Pointer to the peeled git_object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "tag", - "type": "const git_tag *", - "comment": "The tag to be processed", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "cFunctionName": "git_tag_peel", - "cppFunctionName": "Peel", - "jsFunctionName": "peel", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_signature *", - "comment": " reference to the tag's author or NULL when unspecified", - "cType": "const git_signature *", - "cppClassName": "GitSignature", - "jsClassName": "Signature", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_signature_new": { - "isAsync": false - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tag_tagger-36" - ] - }, - "cFunctionName": "git_tag_tagger", - "cppFunctionName": "Tagger", - "jsFunctionName": "tagger", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "target_out", - "type": "git_object **", - "comment": "pointer where to store the target", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_tag_target-70" - ] - }, - "cFunctionName": "git_tag_target", - "cppFunctionName": "Target", - "jsFunctionName": "target", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " pointer to the OID", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tag_target_id-33" - ] - }, - "cFunctionName": "git_tag_target_id", - "cppFunctionName": "TargetId", - "jsFunctionName": "targetId", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - }, - { - "type": "function", - "file": "tag.h", - "args": [ - { - "name": "tag", - "type": "const git_tag *", - "comment": "a previously loaded tag.", - "cType": "const git_tag *", - "cppClassName": "GitTag", - "jsClassName": "Tag", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_otype", - "comment": " type of the tagged object", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - }, - "group": "tag", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tag_target_type-34" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tag_target_type-71" - ] - }, - "cFunctionName": "git_tag_target_type", - "cppFunctionName": "TargetType", - "jsFunctionName": "targetType", - "isPrototypeMethod": true, - "cppClassName": "GitTag" - } - ], - "cppClassName": "GitTag", - "jsClassName": "Tag", - "filename": "tag", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h", - "../include/repository.h", - "../include/object.h", - "../include/signature.h", - "../include/tag.h", - "../include/strarray.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_tag_free", - "name": "tag" - }, - { - "functions": [ - { - "type": "function", - "file": "threads.h", - "args": [], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "threads", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_threads_init-26" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_threads_init-39" - ], - "diff.c": [ - "ex/v0.21.2/diff.html#git_threads_init-15" - ], - "init.c": [ - "ex/v0.21.2/init.html#git_threads_init-12" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_threads_init-56" - ], - "network/git2.c": [ - "ex/v0.21.2/network/git2.html#git_threads_init-5" - ], - "rev-parse.c": [ - "ex/v0.21.2/rev-parse.html#git_threads_init-18" - ], - "status.c": [ - "ex/v0.21.2/status.html#git_threads_init-27" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_threads_init-24" - ] - }, - "cFunctionName": "git_threads_init", - "cppFunctionName": "Init", - "jsFunctionName": "init", - "cppClassName": "GitThreads" - }, - { - "type": "function", - "file": "threads.h", - "args": [], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "threads", - "examples": { - "blame.c": [ - "ex/v0.21.2/blame.html#git_threads_shutdown-27" - ], - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_threads_shutdown-40" - ], - "diff.c": [ - "ex/v0.21.2/diff.html#git_threads_shutdown-16" - ], - "init.c": [ - "ex/v0.21.2/init.html#git_threads_shutdown-13" - ], - "log.c": [ - "ex/v0.21.2/log.html#git_threads_shutdown-57" - ], - "rev-parse.c": [ - "ex/v0.21.2/rev-parse.html#git_threads_shutdown-19" - ], - "status.c": [ - "ex/v0.21.2/status.html#git_threads_shutdown-28" - ], - "tag.c": [ - "ex/v0.21.2/tag.html#git_threads_shutdown-25" - ] - }, - "cFunctionName": "git_threads_shutdown", - "cppFunctionName": "Shutdown", - "jsFunctionName": "shutdown", - "cppClassName": "GitThreads" - } - ], - "type": "class", - "cType": null, - "typeName": "threads", - "cppClassName": "GitThreads", - "jsClassName": "Threads", - "filename": "threads", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "threads" - }, - { - "type": "class", - "value": "git_time", - "file": "types.h", - "fields": [ - { - "type": "git_time_t", - "name": "time", - "cType": "git_time_t", - "cppFunctionName": "Time", - "jsFunctionName": "time", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": true - }, - { - "type": "int", - "name": "offset", - "cType": "int", - "cppFunctionName": "Offset", - "jsFunctionName": "offset", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [], - "needs": [] - }, - "typeName": "time", - "cType": "git_time", - "functions": [], - "cppClassName": "GitTime", - "jsClassName": "Time", - "filename": "time", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "time" - }, - { - "functions": [], - "type": "class", - "cType": null, - "typeName": "trace", - "cppClassName": "GitTrace", - "jsClassName": "Trace", - "filename": "trace", - "isLibgitType": true, - "dependencies": [], - "fields": [], - "needsForwardDeclaration": false, - "name": "trace" - }, - { - "typeName": "trace_level", - "type": "enum", - "cType": "git_trace_level_t", - "isMask": true, - "values": [ - { - "name": "GIT_TRACE_NONE", - "value": 0, - "JsName": "NONE" - }, - { - "name": "GIT_TRACE_FATAL", - "value": 1, - "JsName": "FATAL" - }, - { - "name": "GIT_TRACE_ERROR", - "value": 2, - "JsName": "ERROR" - }, - { - "name": "GIT_TRACE_WARN", - "value": 3, - "JsName": "WARN" - }, - { - "name": "GIT_TRACE_INFO", - "value": 4, - "JsName": "INFO" - }, - { - "name": "GIT_TRACE_DEBUG", - "value": 5, - "JsName": "DEBUG" - }, - { - "name": "GIT_TRACE_TRACE", - "value": 6, - "JsName": "TRACE" - } - ], - "owner": "Trace", - "JsName": "LEVEL" - }, - { - "type": "class", - "value": "git_transfer_progress", - "file": "types.h", - "fields": [ - { - "type": "unsigned int", - "name": "total_objects", - "cType": "unsigned int", - "cppFunctionName": "TotalObjects", - "jsFunctionName": "totalObjects", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "indexed_objects", - "cType": "unsigned int", - "cppFunctionName": "IndexedObjects", - "jsFunctionName": "indexedObjects", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "received_objects", - "cType": "unsigned int", - "cppFunctionName": "ReceivedObjects", - "jsFunctionName": "receivedObjects", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "local_objects", - "cType": "unsigned int", - "cppFunctionName": "LocalObjects", - "jsFunctionName": "localObjects", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "total_deltas", - "cType": "unsigned int", - "cppFunctionName": "TotalDeltas", - "jsFunctionName": "totalDeltas", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "unsigned int", - "name": "indexed_deltas", - "cType": "unsigned int", - "cppFunctionName": "IndexedDeltas", - "jsFunctionName": "indexedDeltas", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "type": "size_t", - "name": "received_bytes", - "cType": "size_t", - "cppFunctionName": "ReceivedBytes", - "jsFunctionName": "receivedBytes", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - } - ], - "used": { - "returns": [ - "git_remote_stats" - ], - "needs": [ - "git_indexer_append", - "git_indexer_commit" - ] - }, - "typeName": "transfer_progress", - "cType": "git_transfer_progress", - "functions": [], - "cppClassName": "GitTransferProgress", - "jsClassName": "TransferProgress", - "filename": "transfer_progress", - "isLibgitType": true, - "dependencies": [], - "needsForwardDeclaration": false, - "hasConstructor": false, - "name": "transfer_progress" - }, - { - "functions": [ - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "opts", - "type": "git_transport *", - "comment": "the `git_transport` struct to initialize", - "cType": "git_transport *", - "cppClassName": "GitTransport", - "jsClassName": "Transport", - "isReturn": false, - "isSelf": true - }, - { - "name": "version", - "type": "unsigned int", - "comment": "Version of struct; pass `GIT_TRANSPORT_VERSION`", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " Zero on success; -1 on failure.", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "transport", - "cFunctionName": "git_transport_init", - "cppFunctionName": "Init", - "jsFunctionName": "init", - "isPrototypeMethod": true, - "cppClassName": "GitTransport" - }, - { - "type": "function", - "file": "transport.h", - "args": [ - { - "name": "prefix", - "type": "const char *", - "comment": "From the previous call to git_transport_register", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "priority", - "type": "unsigned int", - "comment": "From the previous call to git_transport_register", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "transport", - "cFunctionName": "git_transport_unregister", - "cppFunctionName": "Unregister", - "jsFunctionName": "unregister", - "cppClassName": "GitTransport" - } - ], - "type": "class", - "cType": "git_transport", - "typeName": "transport", - "cppClassName": "GitTransport", - "jsClassName": "Transport", - "filename": "transport", - "isLibgitType": true, - "dependencies": [ - "../include/transport.h" - ], - "fields": [], - "needsForwardDeclaration": false, - "name": "transport" - }, - { - "type": "class", - "value": "git_tree", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_commit_amend", - "git_commit_create", - "git_commit_create_v", - "git_commit_tree", - "git_diff_tree_to_index", - "git_diff_tree_to_tree", - "git_diff_tree_to_workdir", - "git_diff_tree_to_workdir_with_index", - "git_index_read_tree", - "git_merge_trees", - "git_pathspec_match_tree", - "git_tree_entry_byid", - "git_tree_entry_byindex", - "git_tree_entry_byname", - "git_tree_entry_bypath", - "git_tree_entrycount", - "git_tree_free", - "git_tree_id", - "git_tree_lookup", - "git_tree_lookup_prefix", - "git_tree_owner", - "git_tree_walk", - "git_treebuilder_create" - ] - }, - "typeName": "tree", - "cType": "git_tree", - "functions": [ - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "a previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "the sha being looked for", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_tree_entry *", - "comment": " the tree entry; NULL if not found", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_byid", - "cppFunctionName": "EntryByid", - "jsFunctionName": "entryByid", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "a previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "idx", - "type": "size_t", - "comment": "the position in the entry list", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_tree_entry *", - "comment": " the tree entry; NULL if not found", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entry_byindex-42" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tree_entry_byindex-78" - ] - }, - "cFunctionName": "git_tree_entry_byindex", - "cppFunctionName": "EntryByindex", - "jsFunctionName": "entryByindex", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "a previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "filename", - "type": "const char *", - "comment": "the filename of the desired entry", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_tree_entry *", - "comment": " the tree entry; NULL if not found", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_tree_entry_byname-77" - ] - }, - "cFunctionName": "git_tree_entry_byname", - "cppFunctionName": "EntryByname", - "jsFunctionName": "entryByname", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "out", - "type": "git_tree_entry **", - "comment": "Pointer where to store the tree entry", - "cType": "git_tree_entry **", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "root", - "type": "const git_tree *", - "comment": "Previously loaded tree which is the root of the relative path", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "path", - "type": "const char *", - "comment": "Path to the contained entry", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; GIT_ENOTFOUND if the path does not exist", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_bypath", - "cppFunctionName": "EntryBypath", - "jsFunctionName": "entryBypath", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "e1", - "type": "const git_tree_entry *", - "comment": "first tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "e2", - "type": "const git_tree_entry *", - "comment": "second tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " \n<\n0 if e1 is before e2, 0 if e1 == e2, >0 if e1 is after e2", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_cmp", - "cppFunctionName": "EntryCmp", - "jsFunctionName": "entryCmp", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "dest", - "type": "git_tree_entry **", - "comment": "pointer where to store the copy", - "cType": "git_tree_entry **", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "source", - "type": "const git_tree_entry *", - "comment": "tree entry to duplicate", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_dup", - "cppFunctionName": "EntryDup", - "jsFunctionName": "entryDup", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_filemode_t", - "comment": " filemode as an integer", - "cType": "git_filemode_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entry_filemode-46" - ] - }, - "cFunctionName": "git_tree_entry_filemode", - "cppFunctionName": "EntryFilemode", - "jsFunctionName": "entryFilemode", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_filemode_t", - "comment": " filemode as an integer", - "cType": "git_filemode_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_filemode_raw", - "cppFunctionName": "EntryFilemodeRaw", - "jsFunctionName": "entryFilemodeRaw", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "git_tree_entry *", - "comment": "The entry to free", - "cType": "git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_entry_free", - "cppFunctionName": "EntryFree", - "jsFunctionName": "entryFree", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_oid *", - "comment": " the oid of the object", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entry_id-44" - ] - }, - "cFunctionName": "git_tree_entry_id", - "cppFunctionName": "EntryId", - "jsFunctionName": "entryId", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const char *", - "comment": " the name of the file", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entry_name-43" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tree_entry_name-79", - "ex/v0.21.2/general.html#git_tree_entry_name-80" - ] - }, - "cFunctionName": "git_tree_entry_name", - "cppFunctionName": "EntryName", - "jsFunctionName": "entryName", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "object_out", - "type": "git_object **", - "comment": "pointer to the converted object", - "cType": "git_object **", - "cppClassName": "GitObject", - "jsClassName": "Object", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "repository where to lookup the pointed object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_tree_entry_to_object-81" - ] - }, - "cFunctionName": "git_tree_entry_to_object", - "cppFunctionName": "EntryToObject", - "jsFunctionName": "entryToObject", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "entry", - "type": "const git_tree_entry *", - "comment": "a tree entry", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "git_otype", - "comment": " the type of the pointed object", - "cType": "git_otype", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": false, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entry_type-45" - ] - }, - "cFunctionName": "git_tree_entry_type", - "cppFunctionName": "EntryType", - "jsFunctionName": "entryType", - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "a previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "size_t", - "comment": " the number of entries in the tree", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "cat-file.c": [ - "ex/v0.21.2/cat-file.html#git_tree_entrycount-41" - ], - "general.c": [ - "ex/v0.21.2/general.html#git_tree_entrycount-76" - ] - }, - "cFunctionName": "git_tree_entrycount", - "cppFunctionName": "Entrycount", - "jsFunctionName": "entrycount", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "a previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "const git_oid *", - "comment": " object identity for the tree.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_id", - "cppFunctionName": "Id", - "jsFunctionName": "id", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "out", - "type": "git_tree **", - "comment": "Pointer to the looked up tree", - "cType": "git_tree **", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "The repo to use when locating the tree.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "Identity of the tree to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "examples": { - "general.c": [ - "ex/v0.21.2/general.html#git_tree_lookup-74", - "ex/v0.21.2/general.html#git_tree_lookup-75" - ], - "init.c": [ - "ex/v0.21.2/init.html#git_tree_lookup-14" - ] - }, - "cFunctionName": "git_tree_lookup", - "cppFunctionName": "Lookup", - "jsFunctionName": "lookup", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "out", - "type": "git_tree **", - "comment": "pointer to the looked up tree", - "cType": "git_tree **", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "the repo to use when locating the tree.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "identity of the tree to locate.", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "len", - "type": "size_t", - "comment": "the length of the short identifier", - "cType": "size_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_lookup_prefix", - "cppFunctionName": "LookupPrefix", - "jsFunctionName": "lookupPrefix", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitTree" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "tree", - "type": "const git_tree *", - "comment": "A previously loaded tree.", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "git_repository *", - "comment": " Repository that contains this tree.", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "functions": { - "git_repository_discover": { - "ignore": true - }, - "git_repository_fetchhead_foreach": { - "ignore": true - }, - "git_repository_free": { - "ignore": true - }, - "git_repository_hashfile": { - "ignore": true - }, - "git_repository_mergehead_foreach": { - "ignore": true - }, - "git_repository_message": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - "group": "tree", - "cFunctionName": "git_tree_owner", - "cppFunctionName": "Owner", - "jsFunctionName": "owner", - "isPrototypeMethod": true, - "cppClassName": "GitTree" - } - ], - "cppClassName": "GitTree", - "jsClassName": "Tree", - "filename": "tree", - "isLibgitType": true, - "dependencies": [ - "../include/tree.h", - "../include/oid.h", - "../include/tree_entry.h", - "../include/object.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_tree_free", - "name": "tree" - }, - { - "type": "class", - "value": "git_tree_entry", - "file": "types.h", - "used": { - "returns": [ - "git_tree_entry_byid", - "git_tree_entry_byindex", - "git_tree_entry_byname", - "git_treebuilder_get" - ], - "needs": [ - "git_tree_entry_bypath", - "git_tree_entry_cmp", - "git_tree_entry_dup", - "git_tree_entry_filemode", - "git_tree_entry_filemode_raw", - "git_tree_entry_free", - "git_tree_entry_id", - "git_tree_entry_name", - "git_tree_entry_to_object", - "git_tree_entry_type", - "git_treebuilder_insert" - ] - }, - "fields": [ - { - "name": "removed", - "type": "uint16_t", - "cType": "uint16_t", - "cppFunctionName": "Removed", - "jsFunctionName": "removed", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "attr", - "type": "uint16_t", - "cType": "uint16_t", - "cppFunctionName": "Attr", - "jsFunctionName": "attr", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "oid", - "type": "git_oid", - "cType": "git_oid", - "cppFunctionName": "Oid", - "jsFunctionName": "oid", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isCallbackFunction": false, - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "functions": { - "git_oid_cpy": { - "ignore": true - }, - "git_oid_fmt": { - "ignore": true - }, - "git_oid_fromraw": { - "ignore": true - }, - "git_oid_fromstr": { - "jsFunctionName": "fromString", - "isAsync": false - }, - "git_oid_fromstrn": { - "ignore": true - }, - "git_oid_fromstrp": { - "ignore": true - }, - "git_oid_nfmt": { - "ignore": true - }, - "git_oid_pathfmt": { - "ignore": true - }, - "git_oid_shorten_add": { - "ignore": true - }, - "git_oid_shorten_free": { - "ignore": true - }, - "git_oid_shorten_new": { - "ignore": true - }, - "git_oid_tostr": { - "ignore": true, - "jsFunctionName": "toString" - } - }, - "fields": { - "id": { - "ignore": true - } - } - }, - { - "name": "filename_len", - "type": "size_t", - "cType": "size_t", - "cppFunctionName": "FilenameLen", - "jsFunctionName": "filenameLen", - "cppClassName": "Number", - "jsClassName": "Number", - "isCallbackFunction": false - }, - { - "name": "filename", - "structType": "char", - "structName": "filename[1]", - "type": "char *", - "cType": "char *", - "cppFunctionName": "Filename", - "jsFunctionName": "filename", - "cppClassName": "String", - "jsClassName": "String", - "isCallbackFunction": false - } - ], - "typeName": "tree_entry", - "cType": "git_tree_entry", - "functions": [], - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "filename": "tree_entry", - "isLibgitType": true, - "dependencies": [ - "../include/oid.h" - ], - "needsForwardDeclaration": true, - "hasConstructor": false, - "name": "tree_entry" - }, - { - "type": "class", - "value": "git_treebuilder", - "file": "types.h", - "used": { - "returns": [], - "needs": [ - "git_treebuilder_clear", - "git_treebuilder_create", - "git_treebuilder_entrycount", - "git_treebuilder_filter", - "git_treebuilder_free", - "git_treebuilder_get", - "git_treebuilder_insert", - "git_treebuilder_remove", - "git_treebuilder_write" - ] - }, - "typeName": "treebuilder", - "cType": "git_treebuilder", - "functions": [ - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "Builder to clear", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "void", - "comment": null, - "cType": "void", - "cppClassName": "Void", - "jsClassName": "Void", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_clear", - "cppFunctionName": "Clear", - "jsFunctionName": "clear", - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "out", - "type": "git_treebuilder **", - "comment": "Pointer where to store the tree builder", - "cType": "git_treebuilder **", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "source", - "type": "const git_tree *", - "comment": "Source tree to initialize the builder (optional)", - "cType": "const git_tree *", - "cppClassName": "GitTree", - "jsClassName": "Tree", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 on success; error code otherwise", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_create", - "cppFunctionName": "Create", - "jsFunctionName": "create", - "isAsync": true, - "isConstructorMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "a previously loaded treebuilder.", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "unsigned int", - "comment": " the number of entries in the treebuilder", - "cType": "unsigned int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_entrycount", - "cppFunctionName": "Entrycount", - "jsFunctionName": "entrycount", - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "Tree builder", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "filename", - "type": "const char *", - "comment": "Name of the entry", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "const git_tree_entry *", - "comment": " pointer to the entry; NULL if not found", - "cType": "const git_tree_entry *", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_get", - "cppFunctionName": "Get", - "jsFunctionName": "get", - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "out", - "type": "const git_tree_entry **", - "comment": "Pointer to store the entry (optional)", - "cType": "const git_tree_entry **", - "cppClassName": "GitTreeEntry", - "jsClassName": "TreeEntry", - "isLibgitType": true, - "isEnum": false, - "isReturn": true, - "isSelf": false - }, - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "Tree builder", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "filename", - "type": "const char *", - "comment": "Filename of the entry", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - }, - { - "name": "id", - "type": "const git_oid *", - "comment": "SHA1 oid of the entry", - "cType": "const git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "filemode", - "type": "git_filemode_t", - "comment": "Folder attributes of the entry. This parameter must\n\t\t\tbe valued with one of the following entries: 0040000, 0100644,\n\t\t\t0100755, 0120000 or 0160000.", - "cType": "git_filemode_t", - "cppClassName": "Number", - "jsClassName": "Number", - "isLibgitType": true, - "isEnum": true, - "isMask": true, - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "isErrorCode": true, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_insert", - "cppFunctionName": "Insert", - "jsFunctionName": "insert", - "isAsync": true, - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "Tree builder", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - }, - { - "name": "filename", - "type": "const char *", - "comment": "Filename of the entry to remove", - "cType": "const char *", - "cppClassName": "String", - "jsClassName": "String", - "isReturn": false, - "isSelf": false - } - ], - "return": { - "type": "int", - "comment": null, - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_remove", - "cppFunctionName": "Remove", - "jsFunctionName": "remove", - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - }, - { - "type": "function", - "file": "tree.h", - "args": [ - { - "name": "id", - "type": "git_oid *", - "comment": "Pointer to store the OID of the newly written tree", - "cType": "git_oid *", - "cppClassName": "GitOid", - "jsClassName": "Oid", - "isLibgitType": true, - "isEnum": false, - "shouldAlloc": true, - "fields": { - "id": { - "ignore": true - } - }, - "isReturn": false, - "isSelf": false - }, - { - "name": "repo", - "type": "git_repository *", - "comment": "Repository in which to store the object", - "cType": "git_repository *", - "cppClassName": "GitRepository", - "jsClassName": "Repository", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": false - }, - { - "name": "bld", - "type": "git_treebuilder *", - "comment": "Tree builder to write", - "cType": "git_treebuilder *", - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "isLibgitType": true, - "isEnum": false, - "isReturn": false, - "isSelf": true - } - ], - "return": { - "type": "int", - "comment": " 0 or an error code", - "cType": "int", - "cppClassName": "Number", - "jsClassName": "Number", - "isReturn": false, - "isSelf": false - }, - "group": "treebuilder", - "cFunctionName": "git_treebuilder_write", - "cppFunctionName": "Write", - "jsFunctionName": "write", - "isPrototypeMethod": true, - "cppClassName": "GitTreebuilder" - } - ], - "cppClassName": "GitTreebuilder", - "jsClassName": "Treebuilder", - "filename": "treebuilder", - "isLibgitType": true, - "dependencies": [ - "../include/treebuilder.h", - "../include/tree.h", - "../include/tree_entry.h", - "../include/oid.h", - "../include/repository.h" - ], - "fields": [], - "needsForwardDeclaration": true, - "hasConstructor": false, - "freeFunctionName": "git_treebuilder_free", - "name": "treebuilder" - }, - { - "typeName": "treewalk_mode", - "type": "enum", - "cType": "git_treewalk_mode", - "isMask": false, - "values": [ - { - "name": "GIT_TREEWALK_PRE", - "value": 0, - "JsName": "WALK_PRE" - }, - { - "name": "GIT_TREEWALK_POST", - "value": 1, - "JsName": "WALK_POST" - } - ], - "owner": "Tree", - "JsName": "WALK_MODE" - } -] \ No newline at end of file diff --git a/bower.json b/bower.json deleted file mode 100644 index 05b177b..0000000 --- a/bower.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "nodegit.github.com", - "versions": "0.1.0", - "dependencies": { - "combyne": "~0.6.1", - "jquery": "~2.1.1", - "underscore": "~1.7.0" - } -} diff --git a/bower_components/combyne/.bower.json b/bower_components/combyne/.bower.json deleted file mode 100644 index 1204346..0000000 --- a/bower_components/combyne/.bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "combyne", - "version": "0.6.1", - "main": "dist/combyne.js", - "devDependencies": { - "mocha": "~1.20.1", - "requirejs": "~2.1.10", - "assert": "~0.1.0", - "json3": "~3.3.1" - }, - "ignore": [ - "build", - "test", - ".gitignore", - ".jscs.json", - ".jshintrc", - ".travis.yml", - "CONTRIBUTING.md", - "Gruntfile.coffee", - "package.json" - ], - "homepage": "https://github.com/tbranyen/combyne", - "_release": "0.6.1", - "_resolution": { - "type": "version", - "tag": "0.6.1", - "commit": "1b22c91330e90864b2a1383bca97c266f1c55737" - }, - "_source": "git://github.com/tbranyen/combyne.git", - "_target": "~0.6.1", - "_originalSource": "combyne" -} \ No newline at end of file diff --git a/bower_components/combyne/.npmignore b/bower_components/combyne/.npmignore deleted file mode 100644 index 90996ff..0000000 --- a/bower_components/combyne/.npmignore +++ /dev/null @@ -1,11 +0,0 @@ -bower_components -node_modules -build -test -.gitignore -.jscs.json -.jshintrc -.npmignore -.travis.yml -CONTRIBUTING.md -Gruntfile.coffee diff --git a/bower_components/combyne/LICENSE b/bower_components/combyne/LICENSE deleted file mode 100644 index 8fe4c2f..0000000 --- a/bower_components/combyne/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2014 Tim Branyen - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/bower_components/combyne/README.md b/bower_components/combyne/README.md deleted file mode 100644 index 8d4c017..0000000 --- a/bower_components/combyne/README.md +++ /dev/null @@ -1,563 +0,0 @@ - - -**Stable: 0.6.1** - -[![Build Status](https://travis-ci.org/tbranyen/combyne.png?branch=master)](https://travis-ci.org/tbranyen/combyne) -[![Coverage Status](https://coveralls.io/repos/tbranyen/combyne/badge.png?branch=master)](https://coveralls.io/r/tbranyen/combyne?branch=master) -[![Code Climahttps://codeclimate.com/github/tbranyen/combyne/badgeste](https://codeclimate.com/github/tbranyen/combyne.png)](https://codeclimate.com/github/tbranyen/combyne) - -No dependencies. Can be loaded as a browser global, AMD module, and Node -module. Works with Browserify. Can be installed via NPM or Bower. - -Combyne works great with: - -- [Express](https://github.com/tbranyen/combynexpress) -- [Browserify](https://github.com/chesles/combynify) -- [AMD](https://github.com/tbranyen/combyne-amd-loader) - -## Install. ## - -Node: - -``` bash -npm install combyne -``` - -Bower: - -``` bash -bower install combyne -``` - -## Getting started. ## - -### Node. ### - -Require in your source: - -``` javascript -var combyne = require("combyne"); -``` - -### AMD. ### - -``` javascript -// Configure the path if necessary. -require({ - paths: { - combyne: "path/to/combyne" - } -}); - -// Use in a module. -define(["combyne"], function(combyne) {}); -``` - -There is also an AMD plugin for easier consumption and building: - -https://github.com/tbranyen/combyne-amd-loader - -### Browserify. ### - -[combynify](https://github.com/chesles/combynify) is a -[browserify](https://github.com/substack/browserify) transform plugin to -pre-compile combyne templates. - -In your code: - -``` javascript -var template = require("./template.combyne"); -var data = { ... } - -template.render(data) -``` - -Install combynify and browserify it: - -``` bash -npm install --save-dev combynify -browserify -t combynify main.js > bundle.js -``` - -Once the template is precompiled, there is no dependency on the combyne -engine. - -### Browser global. ### - -[Include the latest stable](https://github.com/tbranyen/combyne/releases) -in your markup: - -``` html - -``` - -#### Compatibility. #### - -Combyne is written in ES5 and contains polyfills to provide support back to IE -7. These polyfills are omitted in the **dist/combyne.js** file, but exist in -the **dist/combyne.legacy.js** file. Use this if you are developing/testing -with older IE. - -[![Selenium Test Status](https://saucelabs.com/browser-matrix/combyne.svg)](https://saucelabs.com/u/combyne) - -## Basic usage. ## - -``` javascript -var tmpl = combyne("hello {{msg}}!"); -tmpl.render({ msg: "world" }); - -// => hello world! -``` - -## Features. ## - -Combyne works by parsing your template into an AST. This provides mechanisms -for intelligent compilation and optimization. The template is converted to -JavaScript and invoked upon calling render with data. - -### Security. ### - -By default all templates are encoded to avoid possible issues arising from XSS -attacks. This is specifically applied to properties and you can avoid this by -using the raw property style: `{{{ value }}}`. This is very similar to -Mustache. - -While using this template engine in the browser, it is important to note that -you should not trust unknown values to render unencoded. The recommendation is -to forget it exists while writing templates in the browser, unless you know -what you're doing and have a valid use case. - -View this [XSS (Cross Site Scripting) Prevention Cheat Sheet](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet) for more information. - -### Comments. ### - -Comments are useful for ignoring anything between the open and close. They can -be nested. - -``` javascript -var tmpl = combyne("test {%-- not parsed --%}"); -tmpl.render(); - -// => test -``` - -### Custom delimiters. ### - -If you are not happy with the default Mustache-like syntax, you can trivially -change the delimiters to suit your needs. You may only change the delimiters -at a global level, because templates are compiled immediately after invoking -the `combyne` function. - -``` javascript -// This sets the delimiters, and applies to all templates. -combyne.settings.delimiters = { - START_PROP: "[[", - END_PROP: "]]" -}; - -var tmpl = combyne("[[msg]]", { msg: "hello world" }); - -tmpl.render(); -// => hello world -``` - -Defaults: - -``` javascript -START_RAW: "{{{" -END_RAW: "}}}" -START_PROP: "{{" -END_PROP: "}}" -START_EXPR: "{%" -END_EXPR: "%}" -COMMENT: "--" -FILTER: "|" -``` - -### Template variables. ### - - -``` javascript -var template = "{{foo}}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "hello" -``` - -Variables can be literal values, functions, or even objects. - -#### Passing arguments to a function. #### - - -``` javascript -var template = "{{toUpper 'hi'}}"; -var context = { toUpper: function(val) { return val.toUpperCase(); } }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "HI" -``` - -### Using filters on variables. ### - -``` javascript -var template = "{{foo|reverse}}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -tmpl.registerFilter("reverse", function(val) { - return val.split("").reverse().join(""); -}); - -var output = tmpl.render(context); -/// output == "olleh" -``` - -#### Passing arguments to filters. #### - -You may find that the property value is not enough information for the filter -function, in which case you can send additional arguments. - -``` javascript -var tmpl = combyne("{{ code|highlight 'javascript' }}"); - -tmpl.registerFilter("highlight", function(code, language) { - // Magic highlight function that takes code and language. - return highlight(code, language); -}); -``` - -#### Chaining filters on variables. #### - -``` javascript -var template = "{{foo|reverse|toUpper}}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -tmpl.registerFilter("reverse", function(val) { - return val.split("").reverse().join(""); -}); - -tmpl.registerFilter("toUpper", function(val) { - return val.toUpperCase(); -}); - -var output = tmpl.render(context); -/// output == "OLLEH" -``` - -### Conditionals. ### - -Instead of being *logic-less*, `combyne` doesn't make any assumptions and -allows you to do things like `if/elsif/else` with simple conditionals, -such as `if something == somethingElse` or `if not something`. All data -types will be coerced to Strings except for Numbers. - -``` javascript -var template = "{%if not foo%}why not?{%endif%}"; -var context = { foo: false }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "why not?" -``` - -or a more complicated example... - -``` javascript -var template = "{%if foo == 'hello'%}Hi!{%else%}bye...{%endif%}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "Hi!" -``` - -elsif is also supported: - -``` javascript -var template = "{%if foo == ''%}goodbye!{%elsif foo == 'hello'%}hello!{%endif%}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "hello!" -``` - -You can also pass conditionals through filters to do more complex logic: - -``` javascript -var tmpl = combyne("{%if hello|upper|reverse == 'OLLEH'%}hello{%endif%}"); - -tmpl.registerFilter('upper', function(value) { - return value.toUpperCase(); -}); - -tmpl.registerFilter("reverse", function(value) { - return value.split("").reverse().join(""); -}); - -var output = tmpl.render({ hello: 'hello'}); -/// output == "hello" -``` - -It also works with properties that need to be not encoded - -``` javascript -var tmpl = combyne("{%if {{{hello}}} == '<>'%}hello{%endif%}"); - -var output = tmpl.render({ hello: '<>'}); -/// output == "hello"; -``` - -### Iterating arrays. ### - -*Also works on array-like objects: arguments and NodeList.* - -``` javascript -var template = "{%each foo%}{{.}} {%endeach%}"; -var context = { foo: [1,2,3,4] }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "1 2 3 4 " -``` - -You can also pass the value into a filter before iterating over it - -``` javascript -var template = "{%each foo|upper%}{{.}} {%endeach%}"; -var context = { foo: ["a", "b", "c"] }; - -template.registerFilter("upper", function(array) { - return array.map(function (entry) { - return entry.toUpperCase(); - }); -}); - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "A B C" -``` - -You can even use filters on the root object by either specifying '.' -or leaving it blank - -``` javascript -var template = "{%each .|upper%}{{.}} {%endeach%}"; -var context = ["a", "b", "c"]; - -template.registerFilter("upper", function(array) { - return array.map(function (entry) { - return entry.toUpperCase(); - }); -}); - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "A B C" -``` - -#### Iterating an array of objects shorthand. #### - -If you pass an array of objects to Combyne, you may iterate it via a shorthand: - -``` javascript -var template = "{%each%}{{foo}} {%endeach%}"; -var context = [{ foo: 1 }, { foo: 2 }, { foo: 3 }, { foo: 4 }]; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "1 2 3 4 " -``` - -#### Change the iterated identifer within loops. #### - -``` javascript -var template = "{%each arr as val%}{{val}}{%endeach%}"; -var context = { arr: [1,2,3] }; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output = "123" -``` - -### Iterating objects. ### - -``` javascript -var template = "{%each fruits as val key%}the {{key}} is {{val}}{%endeach%}"; -var context = { - fruits: { - apple: "green" - } -}; - -var tmpl = combyne(template); - -var output = tmpl.render(context); -/// output == "the apple is green" -``` - -### Partials. ### - -``` javascript -var template = "{{foo}} {%partial bar%}"; -var context = { foo: "hello" }; - -var tmpl = combyne(template); - -tmpl.registerPartial("bar", combyne("{{name}}", { - name: "john" -})); - -var output = tmpl.render(context); -/// output == "hello john" -``` - -#### Pass template data to partial. #### - -If you need to pass the template's data to the partial, simply use the magic -operator `.`. - -``` javascript -var template = "{{foo}} {%partial bar .%}"; -var context = { foo: "hello", name: "carl" }; - -var tmpl = combyne(template); - -tmpl.registerPartial("bar", combyne("{{name}}")); - -var output = tmpl.render(context); -/// output == "hello carl" -``` - -If you need to manipulate the data passed to any partial, you must create a -function on the parent template's data that returns an object or array that -will be used by the nested partial. - -You can even pass arguments along to that function to use. - -An example follows: - -``` javascript -var template = "{%partial bar showName 'carl'%}"; -var context = { - showName: function(name) { - return { displayName: name }; - } -}; - -var tmpl = combyne(template); - -tmpl.registerPartial("bar", combyne("hello {{displayName}}")); - -var output = tmpl.render(context); -/// output == "hello carl" -``` - -#### Template inheritance. #### - -When using a framework that handles rendering for you and you wish to inject -your template into a different template (maybe a layout) in a given region -you can express this through template inheritance expressions. - -Illustrated below is a typical use case for this feature: - -``` javascript -var template = "{%extend layout as content%}

{{header}}

{%endextend%}"; -var context = { header: "Home page" }; - -var page = combyne(template); - -// Register the layout template into the page template. -page.registerPartial("layout", combyne("{%partial content%}")); - -var output = page.render(context); -/// output == "

Home page

" -``` - -The context object you pass at the `page.render` line will be propagated to -the partial template. This means that you can optionally pass a nested object -structure like: - -``` javascript -var context = { - header: "My site", - - page: { - header: "Home page" - } -}; - -// Pass the page object to the page template, restricting what it has access -// to. -var layout = "{{header}}{%partial content page%}"; - -// Register it in the partial. -page.registerPartial("layout", combyne(layout)); - -var output = page.render(context); -/// output == "My site

Home page

" -``` - -## Unit tests. ## - -There are many ways to run the unit tests as this library can operate in -various environments. - -### Browser ### - -Open test/index.html in your web browser. - -### Node ### - -Run the tests inside the Node runtime and within PhantomJS: - -``` bash -grunt test -``` - -This will run the tests against the AMD source, the built modern -dist/combyne.js, and the built legacy dist/combyne.legacy.js files. - -### Continuous testing ### - -To keep the PhantomJS tests running continuously, run: - -``` bash -grunt karma:watch -``` - -The tests will automatically run whenever files change. - -#### Code coverage #### - -If you run the tests through Karma, a test/coverage directory will be created -containing folders that correspond with the environment where the tests were -run. - -If you are running the defaults you should see something that looks like: - -``` unicode -. -└── coverage -    ├── Chrome 33.0.1750 (Linux) -    └── PhantomJS 1.9.7 (Linux) -``` - -Inside PhantomJS contains the HTML output that can be opened in a browser to -inspect the source coverage from running the tests. diff --git a/bower_components/combyne/bower.json b/bower_components/combyne/bower.json deleted file mode 100644 index cad66e4..0000000 --- a/bower_components/combyne/bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "combyne", - "version": "0.6.1", - "main": "dist/combyne.js", - "devDependencies": { - "mocha": "~1.20.1", - "requirejs": "~2.1.10", - "assert": "~0.1.0", - "json3": "~3.3.1" - }, - "ignore": [ - "build", - "test", - ".gitignore", - ".jscs.json", - ".jshintrc", - ".travis.yml", - "CONTRIBUTING.md", - "Gruntfile.coffee", - "package.json" - ] -} diff --git a/bower_components/combyne/dist/combyne.js b/bower_components/combyne/dist/combyne.js deleted file mode 100644 index 81316e8..0000000 --- a/bower_components/combyne/dist/combyne.js +++ /dev/null @@ -1,937 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.combyne=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -1) { - body.push(createObject, type, map); - } - if (compiledSource.indexOf('encode(') > -1) { - body.push(type, encode); - } - body = body.concat(['return \'\'' + compiledSource]).join(';\n'); - this.func = new Function('data', 'partials', 'filters', body); - this.source = [ - '{', - '_partials: {},', - '_filters: {},', - 'registerPartial: ' + registerPartial + ',', - 'registerFilter: ' + registerFilter + ',', - 'render: function(data) {', - 'return ' + this.func + '(data, this._partials, this._filters)', - '}', - '}' - ].join('\n'); -} -Compiler.prototype.process = function (nodes, keyVal) { - var commands = []; - nodes.map(function (node, index) { - switch (node.type) { - case 'RawProperty': - commands.push(this.compileProperty(node, false)); - break; - case 'Property': - commands.push(this.compileProperty(node, true)); - break; - case 'ConditionalExpression': - commands.push(this.compileConditional(node)); - break; - case 'LoopExpression': - commands.push(this.compileLoop(node)); - break; - case 'PartialExpression': - commands.push(this.compilePartial(node)); - break; - case 'ExtendExpression': - commands.push(this.compileExtend(node)); - break; - default: - if (node.value) { - commands.push('\'' + escapeValue(node.value) + '\''); - } - break; - } - }, this); - return commands.join('+'); -}; -Compiler.prototype.compileProperty = function (node, encode) { - var identifier = node.value; - if (identifier.indexOf('\'') === -1 && identifier.indexOf('"') === -1) { - identifier = normalizeIdentifier(node.value); - } - var value = [ - '(', - 'typeof', - identifier, - '===', - '\'function\'', - '?', - encode ? 'encode(' + identifier + '(' + node.args + '))' : identifier + '(' + node.args + ')', - ':', - encode ? 'encode(' + identifier + ') == null ? \'\' : encode(' + identifier + ')' : identifier + ' == null ? \'\' : ' + identifier, - ')' - ].join(' '); - value = node.filters.reduce(function (memo, filter) { - var args = filter.args.length ? ', ' + filter.args.map(function (value) { - if (value.indexOf('\'') === -1 && value.indexOf('"') === -1) { - if (!Number(value)) { - return normalizeIdentifier(value); - } - } - return value; - }).join(', ') : ''; - return 'filters[\'' + filter.value + '\']' + '(' + memo + args + ')'; - }, value); - return value; -}; -Compiler.prototype.compileConditional = function (node) { - if (node.conditions.length === 0) { - throw new Error('Missing conditions to if statement.'); - } - var _this = this; - var condition = node.conditions.map(function (condition) { - switch (condition.type) { - case 'Identifier': - return _this.compileProperty(condition.value, condition.value.type == 'Property'); - case 'Not': - return '!'; - case 'Literal': - return condition.value; - case 'Equality': - return condition.value; - } - }).join(''); - var els = node.els ? this.process(node.els.nodes) : null; - var elsif = node.elsif ? this.compileConditional(node.elsif) : null; - return [ - '(', - '(', - condition, - ')', - '?', - this.process(node.nodes), - ':', - els || elsif || '\'\'', - ')' - ].join(''); -}; -Compiler.prototype.compileLoop = function (node) { - var conditions = node.conditions; - var keyVal = [ - conditions[3] ? conditions[3].value : 'i', - conditions[2] ? conditions[2].value : '.' - ]; - var value = conditions.length && conditions[0].value; - var loop = [ - 'map(', - value ? this.compileProperty(value, value.type == 'Property') : 'data', - ',', - '\'', - keyVal[0], - '\'', - ',', - '\'', - value ? keyVal[1] : '', - '\'', - ',', - 'data', - ',', - 'function(data) {', - 'return ' + this.process(node.nodes, keyVal), - '}', - ').join(\'\')' - ].join(''); - return loop; -}; -Compiler.prototype.compilePartial = function (node) { - return [ - '(', - '(partials[\'' + node.value + '\']._partials = partials),', - '(partials[\'' + node.value + '\']._filters = filters),', - 'partials[\'' + node.value + '\'].render(', - node.args.length ? this.compileProperty({ - value: node.args[0], - args: node.args.slice(1), - filters: [] - }) : node.data, - ')', - ')' - ].join(''); -}; -Compiler.prototype.compileExtend = function (node) { - return [ - '(', - 'partials[\'', - node.value.template.trim(), - '\'].registerPartial', - '(\'', - node.value.partial.trim(), - '\', { render: function(_data) {', - 'data = _data || data;', - 'return ', - this.process(node.nodes), - ';', - '}, data: data}),', - 'partials[\'', - node.value.template.trim(), - '\'].render(data)', - ')' - ].join(''); -}; -module.exports = Compiler; -},{"./shared/encode":4,"./shared/map":5,"./shared/register_filter":6,"./shared/register_partial":7,"./support/array/map":9,"./support/array/reduce":10,"./utils/create_object":15,"./utils/type":18}],2:[function(require,module,exports){ -'use strict'; -var escapeDelimiter = require('./utils/escape_delimiter'); -require('./support/array/map'); -require('./support/array/some'); -function Grammar(delimiters) { - this.delimiters = delimiters; - this.internal = [ - makeEntry('START_IF', 'if '), - makeEntry('ELSE', 'else'), - makeEntry('ELSIF', 'elsif '), - makeEntry('END_IF', 'endif'), - makeEntry('NOT', 'not '), - makeEntry('EQUALITY', '=='), - makeEntry('NOT_EQUALITY', '!='), - makeEntry('GREATER_THAN_EQUAL', '>='), - makeEntry('GREATER_THAN', '>'), - makeEntry('LESS_THAN_EQUAL', '<='), - makeEntry('LESS_THAN', '<'), - makeEntry('START_EACH', 'each'), - makeEntry('END_EACH', 'endeach'), - makeEntry('ASSIGN', ' as '), - makeEntry('PARTIAL', 'partial'), - makeEntry('START_EXTEND', 'extend'), - makeEntry('END_EXTEND', 'endextend'), - makeEntry('MAGIC', '.') - ]; -} -function makeEntry(name, value) { - var escaped = escapeDelimiter(value); - return { - name: name, - escaped: escaped, - test: new RegExp('^' + escaped) - }; -} -Grammar.prototype.escape = function () { - var grammar = [ - 'START_RAW', - 'START_PROP', - 'START_EXPR', - 'END_RAW', - 'END_PROP', - 'END_EXPR', - 'COMMENT', - 'FILTER' - ]; - grammar = grammar.map(function (key) { - return makeEntry(key, this.delimiters[key]); - }, this); - grammar.push.apply(grammar, this.internal); - var string = grammar.map(function (value) { - return value.escaped; - }).join('|'); - grammar.push({ - name: 'WHITESPACE', - test: /^[\ \t\r\n]+/ - }); - string += '| |\t|\r|\n'; - grammar.push({ - name: 'OTHER', - test: new RegExp('^((?!' + string + ').)*') - }); - return grammar; -}; -module.exports = Grammar; -},{"./support/array/map":9,"./support/array/some":11,"./utils/escape_delimiter":17}],3:[function(require,module,exports){ -'use strict'; -var Grammar = require('./grammar'); -var Tokenizer = require('./tokenizer'); -var Tree = require('./tree'); -var Compiler = require('./compiler'); -var registerPartial = require('./shared/register_partial'); -var registerFilter = require('./shared/register_filter'); -var type = require('./utils/type'); -var defaults = require('./utils/defaults'); -var defaultDelimiters = { - START_RAW: '{{{', - END_RAW: '}}}', - START_PROP: '{{', - END_PROP: '}}', - START_EXPR: '{%', - END_EXPR: '%}', - COMMENT: '--', - FILTER: '|' - }; -function Combyne(template, data) { - if (!(this instanceof Combyne)) { - return new Combyne(template, data); - } - this.template = template; - this.data = data || {}; - this._partials = {}; - this._filters = {}; - if (type(this.template) !== 'string') { - throw new Error('Template must be a String.'); - } - var delimiters = defaults(Combyne.settings.delimiters, defaultDelimiters); - var grammar = new Grammar(delimiters).escape(); - var stack = new Tokenizer(this.template, grammar).parse(); - var tree = new Tree(stack).make(); - this.tree = tree; - this.stack = stack; - this.compiler = new Compiler(tree); - this.source = this.compiler.source; -} -Combyne.prototype.registerPartial = registerPartial; -Combyne.prototype.registerFilter = registerFilter; -Combyne.settings = {}; -Combyne.prototype.render = function (data) { - this.data = data || this.data; - return this.compiler.func(this.data, this._partials, this._filters); -}; -Combyne.VERSION = '0.6.1'; -module.exports = Combyne; -},{"./compiler":1,"./grammar":2,"./shared/register_filter":6,"./shared/register_partial":7,"./tokenizer":13,"./tree":14,"./utils/defaults":16,"./utils/type":18}],4:[function(require,module,exports){ -'use strict'; -var type = require('../utils/type'); -function encode(raw) { - if (type(raw) !== 'string') { - return raw; - } - return raw.replace(/["&'<>`]/g, function (match) { - return '&#' + match.charCodeAt(0) + ';'; - }); -} -module.exports = encode; -},{"../utils/type":18}],5:[function(require,module,exports){ -'use strict'; -var type = require('../utils/type'); -var createObject = require('../utils/create_object'); -require('../support/array/is_array'); -function map(obj, index, value, data, iterator) { - var isArrayLike = type(obj) === 'arguments' || type(obj) === 'nodelist'; - var isArray = Array.isArray(obj) || isArrayLike; - var output = []; - var dataObject; - if (isArray) { - obj = [].slice.call(obj); - for (var i = 0; i < obj.length; i++) { - dataObject = createObject(data); - dataObject[index] = i; - if (value) { - dataObject[value] = obj[i]; - } else { - dataObject = obj[i]; - } - output.push(iterator(dataObject)); - } - return output; - } else { - for (var key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - dataObject = createObject(data); - dataObject[index] = key; - if (value) { - dataObject[value] = obj[key]; - } else { - dataObject = obj[key]; - } - output.push(iterator(dataObject)); - } - return output; - } -} -module.exports = map; -},{"../support/array/is_array":8,"../utils/create_object":15,"../utils/type":18}],6:[function(require,module,exports){ -'use strict'; -function registerFilter(name, callback) { - this._filters[name] = callback; -} -module.exports = registerFilter; -},{}],7:[function(require,module,exports){ -'use strict'; -function registerPartial(name, template) { - this._partials[name] = template; - this._partials[name]._filters = this._filters; -} -module.exports = registerPartial; -},{}],8:[function(require,module,exports){ -'use strict'; -var type = require('../../utils/type'); -if (Array.isArray) { - return isArray; -} -function isArray(arg) { - return type(arg) === '[object Array]'; -} -module.exports = Array.isArray = isArray; -},{"../../utils/type":18}],9:[function(require,module,exports){ -'use strict'; -if (Array.prototype.map) { - return map; -} -function map(iterator, thisArg) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - thisArg = thisArg || this; - var array = Array.prototype.slice.call(this); - var retVal = []; - for (var i = 0; i < array.length; i++) { - if (i in array) { - retVal[retVal.length] = iterator.call(thisArg, array[i], i, array); - } - } - return retVal; -} -module.exports = Array.prototype.map = map; -},{}],10:[function(require,module,exports){ -'use strict'; -if (Array.prototype.reduce) { - return reduce; -} -function reduce(iterator, memo) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - var array = Array.prototype.slice.call(this); - for (var i = 0; i < array.length; i++) { - if (i in array) { - memo = iterator(memo, array[i], i, array); - } - } - return memo; -} -module.exports = Array.prototype.reduce = reduce; -},{}],11:[function(require,module,exports){ -'use strict'; -if (Array.prototype.some) { - return some; -} -function some(iterator, thisArg) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - thisArg = thisArg || this; - var array = Array.prototype.slice.call(this); - for (var i = 0; i < array.length; i++) { - if (i in array) { - if (iterator.call(thisArg, array[i], i, array)) { - return true; - } - } - } - return false; -} -module.exports = Array.prototype.some = some; -},{}],12:[function(require,module,exports){ -'use strict'; -if (String.prototype.trim) { - return trim; -} -function trim() { - return this.replace(/^\s+|\s+$/g, ''); -} -module.exports = String.prototype.trim = trim; -},{}],13:[function(require,module,exports){ -'use strict'; -require('./support/array/some'); -function Tokenizer(template, grammar) { - this.template = template; - this.grammar = grammar; - this.stack = []; -} -function parseNextToken(template, grammar, stack) { - grammar.some(function (token) { - var capture = token.test.exec(template); - if (capture && capture[0]) { - template = template.replace(token.test, ''); - stack.push({ - name: token.name, - capture: capture - }); - return true; - } - }); - return template; -} -Tokenizer.prototype.parse = function () { - var template = this.template; - var grammar = this.grammar; - var stack = this.stack; - var stackLen = 0; - while (template.length) { - template = parseNextToken(template, grammar, stack); - stackLen = stack.length; - if (stackLen - 2 >= 0) { - stack[stackLen - 1].previous = stack[stackLen - 2]; - } - } - return stack; -}; -module.exports = Tokenizer; -},{"./support/array/some":11}],14:[function(require,module,exports){ -'use strict'; -var isString = /['"]+/; -require('./support/string/trim'); -function Tree(stack) { - this.stack = stack.slice(); - this.root = { - type: 'Template', - nodes: [] - }; -} -Tree.prototype.make = function (root, END) { - root = root || this.root; - var node, result, prev; - var index = 0; - while (this.stack.length) { - node = this.stack.shift(); - switch (node.name) { - case 'START_RAW': - root.nodes.push(this.constructProperty(false)); - break; - case 'START_PROP': - root.nodes.push(this.constructProperty(true)); - break; - case 'START_EXPR': - if (result = this.constructExpression(root, END)) { - root.nodes.push(result); - break; - } else if (result !== false) { - return null; - } - break; - case 'END_EXPR': - break; - case 'WHITESPACE': - var capture = node.capture[0]; - if (node.previous.name == 'END_EXPR') { - capture = capture.replace('\n', ''); - } - root.nodes.push({ - type: 'Text', - value: capture - }); - break; - default: - var prevWhitespace = ''; - if (prev && prev.type === 'Text') { - root.nodes.pop(); - prevWhitespace = prev.value; - } - root.nodes.push({ - type: 'Text', - value: prevWhitespace + node.capture[0] - }); - break; - } - prev = node; - ++index; - } - return root; -}; -Tree.prototype.constructProperty = function (encoded) { - var propertyDescriptor = { - type: encoded ? 'Property' : 'RawProperty', - value: '', - args: [], - filters: [] - }; - var previous; - var input = '', processParsedProperty = function () { - var parts = input.trim().split(' '); - propertyDescriptor.value = parts[0]; - propertyDescriptor.args = parts.slice(1); - }; - while (this.stack.length) { - var node = this.stack.shift(); - if (!previous && node.name == 'ASSIGN') { - node.name = 'OTHER'; - } - switch (node.name) { - case 'FILTER': - propertyDescriptor.value = input.trim(); - return this.constructFilter(propertyDescriptor); - case 'END_EXPR': - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - case 'ASSIGN': - processParsedProperty(); - this.stack.unshift(node); - return propertyDescriptor; - case 'END_RAW': - case 'END_PROP': - case 'END_EXPR': - processParsedProperty(); - return propertyDescriptor; - default: - input += node.capture[0]; - break; - } - previous = node; - } - throw new Error('Unterminated property.'); -}; -Tree.prototype.constructExtend = function (root) { - root.type = 'ExtendExpression'; - var value = { - template: '', - partial: '' - }; - var side = 'template'; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'END_EXPR': - break LOOP; - case 'ASSIGN': - side = 'partial'; - break; - default: - value[side] += node.capture[0]; - break; - } - } - value.template = value.template.trim(); - value.partial = value.partial.trim(); - root.value = value; - if (!root.value.template) { - throw new Error('Missing valid template name.'); - } - if (!root.value.partial) { - throw new Error('Missing valid partial name.'); - } - this.make(root, 'END_EXTEND'); - return root; -}; -Tree.prototype.constructPartial = function (root) { - root.type = 'PartialExpression'; - root.data = 'null'; - delete root.nodes; - var input = ''; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'END_EXPR': - break LOOP; - case 'MAGIC': - root.data = 'data'; - break; - default: - input += node.capture[0]; - } - } - var parts = input.trim().split(' '); - root.value = parts[0]; - if (!root.value) { - throw new Error('Missing valid partials name.'); - } - root.args = parts.slice(1); - return root; -}; -Tree.prototype.constructFilter = function (root) { - var current = { - type: 'Filter', - args: [] - }; - var previous; - var input = ''; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - if (!previous && node.name == 'ASSIGN') { - node.name = 'OTHER'; - } - switch (node.name) { - case 'END_EXPR': - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - case 'ASSIGN': - root.filters.push(current); - this.stack.unshift(node); - break LOOP; - case 'END_RAW': - case 'END_PROP': - root.filters.push(current); - break LOOP; - case 'FILTER': - root.filters.push(current); - this.constructFilter(root); - break LOOP; - default: - input += node.capture[0]; - } - previous = node; - } - var parts = input.trim().split(' '); - current.value = parts[0]; - if (!current.value) { - throw new Error('Missing valid filter name.'); - } - current.args = parts.slice(1); - return root; -}; -Tree.prototype.constructEach = function (root) { - root.type = 'LoopExpression'; - root.conditions = []; - var isLeftSide = true; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'ASSIGN': - isLeftSide = false; - root.conditions.push({ - type: 'Assignment', - value: node.capture[0].trim() - }); - break; - case 'END_EXPR': - break LOOP; - case 'WHITESPACE': - break; - default: - if (!isLeftSide) { - root.conditions.push({ - type: 'Identifier', - value: node.capture[0].trim() - }); - } else { - if (node.name != 'START_RAW' && node.name != 'START_PROP') { - this.stack.unshift(node); - } - root.conditions.push({ - type: 'Identifier', - value: this.constructProperty(node.name != 'START_RAW') - }); - } - break; - } - } - this.make(root, 'END_EACH'); - return root; -}; -Tree.prototype.constructComment = function (root) { - var previous = {}; - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'COMMENT': - if (previous.name === 'START_EXPR') { - this.constructComment(root); - } - break; - case 'END_EXPR': - if (previous.name === 'COMMENT') { - return false; - } - break; - } - previous = node; - } - return false; -}; -Tree.prototype.constructConditional = function (root, kind) { - root.type = root.type || 'ConditionalExpression'; - root.conditions = root.conditions || []; - var prev = {}; - if (kind === 'ELSE') { - root.els = { nodes: [] }; - return this.make(root.els, 'END_IF'); - } - if (kind === 'ELSIF') { - root.elsif = { nodes: [] }; - this.constructConditional(root.elsif, 'SKIP'); - return this.make(root.elsif, 'END_IF'); - } - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - var value = node.capture[0].trim(); - switch (node.name) { - case 'NOT': - root.conditions.push({ type: 'Not' }); - break; - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - root.conditions.push({ - type: 'Equality', - value: node.capture[0].trim() - }); - break; - case 'END_EXPR': - break LOOP; - default: - if (node.name == 'WHITESPACE') { - value = node.capture[0]; - } - if (value === 'false' || value === 'true') { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (Number(value) === Number(value)) { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (isString.test(value)) { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (prev.type === 'Literal') { - prev.value += value; - } else { - if (node.name != 'START_RAW' && node.name != 'START_PROP') { - this.stack.unshift(node); - } - root.conditions.push({ - type: 'Identifier', - value: this.constructProperty(node.name != 'START_RAW') - }); - } - break; - } - prev = root.conditions[root.conditions.length - 1] || {}; - } - if (kind !== 'SKIP') { - this.make(root, 'END_IF'); - } - return root; -}; -Tree.prototype.constructExpression = function (root, END) { - var expressionRoot = { nodes: [] }; - while (this.stack.length) { - var type = this.stack.shift(); - switch (type.name) { - case END: - return; - case 'WHITESPACE': - break; - case 'COMMENT': - return this.constructComment(expressionRoot); - case 'START_EACH': - return this.constructEach(expressionRoot); - case 'ELSIF': - case 'ELSE': - case 'START_IF': - if (type.name !== 'START_IF') { - expressionRoot = root; - } - return this.constructConditional(expressionRoot, type.name); - case 'PARTIAL': - return this.constructPartial(expressionRoot); - case 'START_EXTEND': - return this.constructExtend(expressionRoot); - default: - throw new Error('Invalid expression type: ' + type.name); - } - } -}; -module.exports = Tree; -},{"./support/string/trim":12}],15:[function(require,module,exports){ -'use strict'; -function createObject(parent) { - function F() { - } - F.prototype = parent; - return new F(); -} -module.exports = createObject; -},{}],16:[function(require,module,exports){ -'use strict'; -function defaults(target, source) { - target = target || {}; - source = source; - for (var key in source) { - if (!source.hasOwnProperty(key)) { - continue; - } - if (!(key in target)) { - target[key] = source[key]; - } - } - return target; -} -module.exports = defaults; -},{}],17:[function(require,module,exports){ -'use strict'; -var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g; -function escapeDelimiter(delimiter) { - return delimiter.replace(specialCharsExp, '\\$&'); -} -module.exports = escapeDelimiter; -},{}],18:[function(require,module,exports){ -'use strict'; -function type(value) { - return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); -} -module.exports = type; -},{}]},{},[3])(3) -}); \ No newline at end of file diff --git a/bower_components/combyne/dist/combyne.legacy.js b/bower_components/combyne/dist/combyne.legacy.js deleted file mode 100644 index 81316e8..0000000 --- a/bower_components/combyne/dist/combyne.legacy.js +++ /dev/null @@ -1,937 +0,0 @@ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.combyne=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -1) { - body.push(createObject, type, map); - } - if (compiledSource.indexOf('encode(') > -1) { - body.push(type, encode); - } - body = body.concat(['return \'\'' + compiledSource]).join(';\n'); - this.func = new Function('data', 'partials', 'filters', body); - this.source = [ - '{', - '_partials: {},', - '_filters: {},', - 'registerPartial: ' + registerPartial + ',', - 'registerFilter: ' + registerFilter + ',', - 'render: function(data) {', - 'return ' + this.func + '(data, this._partials, this._filters)', - '}', - '}' - ].join('\n'); -} -Compiler.prototype.process = function (nodes, keyVal) { - var commands = []; - nodes.map(function (node, index) { - switch (node.type) { - case 'RawProperty': - commands.push(this.compileProperty(node, false)); - break; - case 'Property': - commands.push(this.compileProperty(node, true)); - break; - case 'ConditionalExpression': - commands.push(this.compileConditional(node)); - break; - case 'LoopExpression': - commands.push(this.compileLoop(node)); - break; - case 'PartialExpression': - commands.push(this.compilePartial(node)); - break; - case 'ExtendExpression': - commands.push(this.compileExtend(node)); - break; - default: - if (node.value) { - commands.push('\'' + escapeValue(node.value) + '\''); - } - break; - } - }, this); - return commands.join('+'); -}; -Compiler.prototype.compileProperty = function (node, encode) { - var identifier = node.value; - if (identifier.indexOf('\'') === -1 && identifier.indexOf('"') === -1) { - identifier = normalizeIdentifier(node.value); - } - var value = [ - '(', - 'typeof', - identifier, - '===', - '\'function\'', - '?', - encode ? 'encode(' + identifier + '(' + node.args + '))' : identifier + '(' + node.args + ')', - ':', - encode ? 'encode(' + identifier + ') == null ? \'\' : encode(' + identifier + ')' : identifier + ' == null ? \'\' : ' + identifier, - ')' - ].join(' '); - value = node.filters.reduce(function (memo, filter) { - var args = filter.args.length ? ', ' + filter.args.map(function (value) { - if (value.indexOf('\'') === -1 && value.indexOf('"') === -1) { - if (!Number(value)) { - return normalizeIdentifier(value); - } - } - return value; - }).join(', ') : ''; - return 'filters[\'' + filter.value + '\']' + '(' + memo + args + ')'; - }, value); - return value; -}; -Compiler.prototype.compileConditional = function (node) { - if (node.conditions.length === 0) { - throw new Error('Missing conditions to if statement.'); - } - var _this = this; - var condition = node.conditions.map(function (condition) { - switch (condition.type) { - case 'Identifier': - return _this.compileProperty(condition.value, condition.value.type == 'Property'); - case 'Not': - return '!'; - case 'Literal': - return condition.value; - case 'Equality': - return condition.value; - } - }).join(''); - var els = node.els ? this.process(node.els.nodes) : null; - var elsif = node.elsif ? this.compileConditional(node.elsif) : null; - return [ - '(', - '(', - condition, - ')', - '?', - this.process(node.nodes), - ':', - els || elsif || '\'\'', - ')' - ].join(''); -}; -Compiler.prototype.compileLoop = function (node) { - var conditions = node.conditions; - var keyVal = [ - conditions[3] ? conditions[3].value : 'i', - conditions[2] ? conditions[2].value : '.' - ]; - var value = conditions.length && conditions[0].value; - var loop = [ - 'map(', - value ? this.compileProperty(value, value.type == 'Property') : 'data', - ',', - '\'', - keyVal[0], - '\'', - ',', - '\'', - value ? keyVal[1] : '', - '\'', - ',', - 'data', - ',', - 'function(data) {', - 'return ' + this.process(node.nodes, keyVal), - '}', - ').join(\'\')' - ].join(''); - return loop; -}; -Compiler.prototype.compilePartial = function (node) { - return [ - '(', - '(partials[\'' + node.value + '\']._partials = partials),', - '(partials[\'' + node.value + '\']._filters = filters),', - 'partials[\'' + node.value + '\'].render(', - node.args.length ? this.compileProperty({ - value: node.args[0], - args: node.args.slice(1), - filters: [] - }) : node.data, - ')', - ')' - ].join(''); -}; -Compiler.prototype.compileExtend = function (node) { - return [ - '(', - 'partials[\'', - node.value.template.trim(), - '\'].registerPartial', - '(\'', - node.value.partial.trim(), - '\', { render: function(_data) {', - 'data = _data || data;', - 'return ', - this.process(node.nodes), - ';', - '}, data: data}),', - 'partials[\'', - node.value.template.trim(), - '\'].render(data)', - ')' - ].join(''); -}; -module.exports = Compiler; -},{"./shared/encode":4,"./shared/map":5,"./shared/register_filter":6,"./shared/register_partial":7,"./support/array/map":9,"./support/array/reduce":10,"./utils/create_object":15,"./utils/type":18}],2:[function(require,module,exports){ -'use strict'; -var escapeDelimiter = require('./utils/escape_delimiter'); -require('./support/array/map'); -require('./support/array/some'); -function Grammar(delimiters) { - this.delimiters = delimiters; - this.internal = [ - makeEntry('START_IF', 'if '), - makeEntry('ELSE', 'else'), - makeEntry('ELSIF', 'elsif '), - makeEntry('END_IF', 'endif'), - makeEntry('NOT', 'not '), - makeEntry('EQUALITY', '=='), - makeEntry('NOT_EQUALITY', '!='), - makeEntry('GREATER_THAN_EQUAL', '>='), - makeEntry('GREATER_THAN', '>'), - makeEntry('LESS_THAN_EQUAL', '<='), - makeEntry('LESS_THAN', '<'), - makeEntry('START_EACH', 'each'), - makeEntry('END_EACH', 'endeach'), - makeEntry('ASSIGN', ' as '), - makeEntry('PARTIAL', 'partial'), - makeEntry('START_EXTEND', 'extend'), - makeEntry('END_EXTEND', 'endextend'), - makeEntry('MAGIC', '.') - ]; -} -function makeEntry(name, value) { - var escaped = escapeDelimiter(value); - return { - name: name, - escaped: escaped, - test: new RegExp('^' + escaped) - }; -} -Grammar.prototype.escape = function () { - var grammar = [ - 'START_RAW', - 'START_PROP', - 'START_EXPR', - 'END_RAW', - 'END_PROP', - 'END_EXPR', - 'COMMENT', - 'FILTER' - ]; - grammar = grammar.map(function (key) { - return makeEntry(key, this.delimiters[key]); - }, this); - grammar.push.apply(grammar, this.internal); - var string = grammar.map(function (value) { - return value.escaped; - }).join('|'); - grammar.push({ - name: 'WHITESPACE', - test: /^[\ \t\r\n]+/ - }); - string += '| |\t|\r|\n'; - grammar.push({ - name: 'OTHER', - test: new RegExp('^((?!' + string + ').)*') - }); - return grammar; -}; -module.exports = Grammar; -},{"./support/array/map":9,"./support/array/some":11,"./utils/escape_delimiter":17}],3:[function(require,module,exports){ -'use strict'; -var Grammar = require('./grammar'); -var Tokenizer = require('./tokenizer'); -var Tree = require('./tree'); -var Compiler = require('./compiler'); -var registerPartial = require('./shared/register_partial'); -var registerFilter = require('./shared/register_filter'); -var type = require('./utils/type'); -var defaults = require('./utils/defaults'); -var defaultDelimiters = { - START_RAW: '{{{', - END_RAW: '}}}', - START_PROP: '{{', - END_PROP: '}}', - START_EXPR: '{%', - END_EXPR: '%}', - COMMENT: '--', - FILTER: '|' - }; -function Combyne(template, data) { - if (!(this instanceof Combyne)) { - return new Combyne(template, data); - } - this.template = template; - this.data = data || {}; - this._partials = {}; - this._filters = {}; - if (type(this.template) !== 'string') { - throw new Error('Template must be a String.'); - } - var delimiters = defaults(Combyne.settings.delimiters, defaultDelimiters); - var grammar = new Grammar(delimiters).escape(); - var stack = new Tokenizer(this.template, grammar).parse(); - var tree = new Tree(stack).make(); - this.tree = tree; - this.stack = stack; - this.compiler = new Compiler(tree); - this.source = this.compiler.source; -} -Combyne.prototype.registerPartial = registerPartial; -Combyne.prototype.registerFilter = registerFilter; -Combyne.settings = {}; -Combyne.prototype.render = function (data) { - this.data = data || this.data; - return this.compiler.func(this.data, this._partials, this._filters); -}; -Combyne.VERSION = '0.6.1'; -module.exports = Combyne; -},{"./compiler":1,"./grammar":2,"./shared/register_filter":6,"./shared/register_partial":7,"./tokenizer":13,"./tree":14,"./utils/defaults":16,"./utils/type":18}],4:[function(require,module,exports){ -'use strict'; -var type = require('../utils/type'); -function encode(raw) { - if (type(raw) !== 'string') { - return raw; - } - return raw.replace(/["&'<>`]/g, function (match) { - return '&#' + match.charCodeAt(0) + ';'; - }); -} -module.exports = encode; -},{"../utils/type":18}],5:[function(require,module,exports){ -'use strict'; -var type = require('../utils/type'); -var createObject = require('../utils/create_object'); -require('../support/array/is_array'); -function map(obj, index, value, data, iterator) { - var isArrayLike = type(obj) === 'arguments' || type(obj) === 'nodelist'; - var isArray = Array.isArray(obj) || isArrayLike; - var output = []; - var dataObject; - if (isArray) { - obj = [].slice.call(obj); - for (var i = 0; i < obj.length; i++) { - dataObject = createObject(data); - dataObject[index] = i; - if (value) { - dataObject[value] = obj[i]; - } else { - dataObject = obj[i]; - } - output.push(iterator(dataObject)); - } - return output; - } else { - for (var key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - dataObject = createObject(data); - dataObject[index] = key; - if (value) { - dataObject[value] = obj[key]; - } else { - dataObject = obj[key]; - } - output.push(iterator(dataObject)); - } - return output; - } -} -module.exports = map; -},{"../support/array/is_array":8,"../utils/create_object":15,"../utils/type":18}],6:[function(require,module,exports){ -'use strict'; -function registerFilter(name, callback) { - this._filters[name] = callback; -} -module.exports = registerFilter; -},{}],7:[function(require,module,exports){ -'use strict'; -function registerPartial(name, template) { - this._partials[name] = template; - this._partials[name]._filters = this._filters; -} -module.exports = registerPartial; -},{}],8:[function(require,module,exports){ -'use strict'; -var type = require('../../utils/type'); -if (Array.isArray) { - return isArray; -} -function isArray(arg) { - return type(arg) === '[object Array]'; -} -module.exports = Array.isArray = isArray; -},{"../../utils/type":18}],9:[function(require,module,exports){ -'use strict'; -if (Array.prototype.map) { - return map; -} -function map(iterator, thisArg) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - thisArg = thisArg || this; - var array = Array.prototype.slice.call(this); - var retVal = []; - for (var i = 0; i < array.length; i++) { - if (i in array) { - retVal[retVal.length] = iterator.call(thisArg, array[i], i, array); - } - } - return retVal; -} -module.exports = Array.prototype.map = map; -},{}],10:[function(require,module,exports){ -'use strict'; -if (Array.prototype.reduce) { - return reduce; -} -function reduce(iterator, memo) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - var array = Array.prototype.slice.call(this); - for (var i = 0; i < array.length; i++) { - if (i in array) { - memo = iterator(memo, array[i], i, array); - } - } - return memo; -} -module.exports = Array.prototype.reduce = reduce; -},{}],11:[function(require,module,exports){ -'use strict'; -if (Array.prototype.some) { - return some; -} -function some(iterator, thisArg) { - if (this == null) { - throw new TypeError(); - } - if (typeof iterator !== 'function') { - throw new TypeError(); - } - thisArg = thisArg || this; - var array = Array.prototype.slice.call(this); - for (var i = 0; i < array.length; i++) { - if (i in array) { - if (iterator.call(thisArg, array[i], i, array)) { - return true; - } - } - } - return false; -} -module.exports = Array.prototype.some = some; -},{}],12:[function(require,module,exports){ -'use strict'; -if (String.prototype.trim) { - return trim; -} -function trim() { - return this.replace(/^\s+|\s+$/g, ''); -} -module.exports = String.prototype.trim = trim; -},{}],13:[function(require,module,exports){ -'use strict'; -require('./support/array/some'); -function Tokenizer(template, grammar) { - this.template = template; - this.grammar = grammar; - this.stack = []; -} -function parseNextToken(template, grammar, stack) { - grammar.some(function (token) { - var capture = token.test.exec(template); - if (capture && capture[0]) { - template = template.replace(token.test, ''); - stack.push({ - name: token.name, - capture: capture - }); - return true; - } - }); - return template; -} -Tokenizer.prototype.parse = function () { - var template = this.template; - var grammar = this.grammar; - var stack = this.stack; - var stackLen = 0; - while (template.length) { - template = parseNextToken(template, grammar, stack); - stackLen = stack.length; - if (stackLen - 2 >= 0) { - stack[stackLen - 1].previous = stack[stackLen - 2]; - } - } - return stack; -}; -module.exports = Tokenizer; -},{"./support/array/some":11}],14:[function(require,module,exports){ -'use strict'; -var isString = /['"]+/; -require('./support/string/trim'); -function Tree(stack) { - this.stack = stack.slice(); - this.root = { - type: 'Template', - nodes: [] - }; -} -Tree.prototype.make = function (root, END) { - root = root || this.root; - var node, result, prev; - var index = 0; - while (this.stack.length) { - node = this.stack.shift(); - switch (node.name) { - case 'START_RAW': - root.nodes.push(this.constructProperty(false)); - break; - case 'START_PROP': - root.nodes.push(this.constructProperty(true)); - break; - case 'START_EXPR': - if (result = this.constructExpression(root, END)) { - root.nodes.push(result); - break; - } else if (result !== false) { - return null; - } - break; - case 'END_EXPR': - break; - case 'WHITESPACE': - var capture = node.capture[0]; - if (node.previous.name == 'END_EXPR') { - capture = capture.replace('\n', ''); - } - root.nodes.push({ - type: 'Text', - value: capture - }); - break; - default: - var prevWhitespace = ''; - if (prev && prev.type === 'Text') { - root.nodes.pop(); - prevWhitespace = prev.value; - } - root.nodes.push({ - type: 'Text', - value: prevWhitespace + node.capture[0] - }); - break; - } - prev = node; - ++index; - } - return root; -}; -Tree.prototype.constructProperty = function (encoded) { - var propertyDescriptor = { - type: encoded ? 'Property' : 'RawProperty', - value: '', - args: [], - filters: [] - }; - var previous; - var input = '', processParsedProperty = function () { - var parts = input.trim().split(' '); - propertyDescriptor.value = parts[0]; - propertyDescriptor.args = parts.slice(1); - }; - while (this.stack.length) { - var node = this.stack.shift(); - if (!previous && node.name == 'ASSIGN') { - node.name = 'OTHER'; - } - switch (node.name) { - case 'FILTER': - propertyDescriptor.value = input.trim(); - return this.constructFilter(propertyDescriptor); - case 'END_EXPR': - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - case 'ASSIGN': - processParsedProperty(); - this.stack.unshift(node); - return propertyDescriptor; - case 'END_RAW': - case 'END_PROP': - case 'END_EXPR': - processParsedProperty(); - return propertyDescriptor; - default: - input += node.capture[0]; - break; - } - previous = node; - } - throw new Error('Unterminated property.'); -}; -Tree.prototype.constructExtend = function (root) { - root.type = 'ExtendExpression'; - var value = { - template: '', - partial: '' - }; - var side = 'template'; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'END_EXPR': - break LOOP; - case 'ASSIGN': - side = 'partial'; - break; - default: - value[side] += node.capture[0]; - break; - } - } - value.template = value.template.trim(); - value.partial = value.partial.trim(); - root.value = value; - if (!root.value.template) { - throw new Error('Missing valid template name.'); - } - if (!root.value.partial) { - throw new Error('Missing valid partial name.'); - } - this.make(root, 'END_EXTEND'); - return root; -}; -Tree.prototype.constructPartial = function (root) { - root.type = 'PartialExpression'; - root.data = 'null'; - delete root.nodes; - var input = ''; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'END_EXPR': - break LOOP; - case 'MAGIC': - root.data = 'data'; - break; - default: - input += node.capture[0]; - } - } - var parts = input.trim().split(' '); - root.value = parts[0]; - if (!root.value) { - throw new Error('Missing valid partials name.'); - } - root.args = parts.slice(1); - return root; -}; -Tree.prototype.constructFilter = function (root) { - var current = { - type: 'Filter', - args: [] - }; - var previous; - var input = ''; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - if (!previous && node.name == 'ASSIGN') { - node.name = 'OTHER'; - } - switch (node.name) { - case 'END_EXPR': - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - case 'ASSIGN': - root.filters.push(current); - this.stack.unshift(node); - break LOOP; - case 'END_RAW': - case 'END_PROP': - root.filters.push(current); - break LOOP; - case 'FILTER': - root.filters.push(current); - this.constructFilter(root); - break LOOP; - default: - input += node.capture[0]; - } - previous = node; - } - var parts = input.trim().split(' '); - current.value = parts[0]; - if (!current.value) { - throw new Error('Missing valid filter name.'); - } - current.args = parts.slice(1); - return root; -}; -Tree.prototype.constructEach = function (root) { - root.type = 'LoopExpression'; - root.conditions = []; - var isLeftSide = true; - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'ASSIGN': - isLeftSide = false; - root.conditions.push({ - type: 'Assignment', - value: node.capture[0].trim() - }); - break; - case 'END_EXPR': - break LOOP; - case 'WHITESPACE': - break; - default: - if (!isLeftSide) { - root.conditions.push({ - type: 'Identifier', - value: node.capture[0].trim() - }); - } else { - if (node.name != 'START_RAW' && node.name != 'START_PROP') { - this.stack.unshift(node); - } - root.conditions.push({ - type: 'Identifier', - value: this.constructProperty(node.name != 'START_RAW') - }); - } - break; - } - } - this.make(root, 'END_EACH'); - return root; -}; -Tree.prototype.constructComment = function (root) { - var previous = {}; - while (this.stack.length) { - var node = this.stack.shift(); - switch (node.name) { - case 'COMMENT': - if (previous.name === 'START_EXPR') { - this.constructComment(root); - } - break; - case 'END_EXPR': - if (previous.name === 'COMMENT') { - return false; - } - break; - } - previous = node; - } - return false; -}; -Tree.prototype.constructConditional = function (root, kind) { - root.type = root.type || 'ConditionalExpression'; - root.conditions = root.conditions || []; - var prev = {}; - if (kind === 'ELSE') { - root.els = { nodes: [] }; - return this.make(root.els, 'END_IF'); - } - if (kind === 'ELSIF') { - root.elsif = { nodes: [] }; - this.constructConditional(root.elsif, 'SKIP'); - return this.make(root.elsif, 'END_IF'); - } - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - var value = node.capture[0].trim(); - switch (node.name) { - case 'NOT': - root.conditions.push({ type: 'Not' }); - break; - case 'EQUALITY': - case 'NOT_EQUALITY': - case 'GREATER_THAN': - case 'GREATER_THAN_EQUAL': - case 'LESS_THAN': - case 'LESS_THAN_EQUAL': - root.conditions.push({ - type: 'Equality', - value: node.capture[0].trim() - }); - break; - case 'END_EXPR': - break LOOP; - default: - if (node.name == 'WHITESPACE') { - value = node.capture[0]; - } - if (value === 'false' || value === 'true') { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (Number(value) === Number(value)) { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (isString.test(value)) { - root.conditions.push({ - type: 'Literal', - value: value - }); - } else if (prev.type === 'Literal') { - prev.value += value; - } else { - if (node.name != 'START_RAW' && node.name != 'START_PROP') { - this.stack.unshift(node); - } - root.conditions.push({ - type: 'Identifier', - value: this.constructProperty(node.name != 'START_RAW') - }); - } - break; - } - prev = root.conditions[root.conditions.length - 1] || {}; - } - if (kind !== 'SKIP') { - this.make(root, 'END_IF'); - } - return root; -}; -Tree.prototype.constructExpression = function (root, END) { - var expressionRoot = { nodes: [] }; - while (this.stack.length) { - var type = this.stack.shift(); - switch (type.name) { - case END: - return; - case 'WHITESPACE': - break; - case 'COMMENT': - return this.constructComment(expressionRoot); - case 'START_EACH': - return this.constructEach(expressionRoot); - case 'ELSIF': - case 'ELSE': - case 'START_IF': - if (type.name !== 'START_IF') { - expressionRoot = root; - } - return this.constructConditional(expressionRoot, type.name); - case 'PARTIAL': - return this.constructPartial(expressionRoot); - case 'START_EXTEND': - return this.constructExtend(expressionRoot); - default: - throw new Error('Invalid expression type: ' + type.name); - } - } -}; -module.exports = Tree; -},{"./support/string/trim":12}],15:[function(require,module,exports){ -'use strict'; -function createObject(parent) { - function F() { - } - F.prototype = parent; - return new F(); -} -module.exports = createObject; -},{}],16:[function(require,module,exports){ -'use strict'; -function defaults(target, source) { - target = target || {}; - source = source; - for (var key in source) { - if (!source.hasOwnProperty(key)) { - continue; - } - if (!(key in target)) { - target[key] = source[key]; - } - } - return target; -} -module.exports = defaults; -},{}],17:[function(require,module,exports){ -'use strict'; -var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g; -function escapeDelimiter(delimiter) { - return delimiter.replace(specialCharsExp, '\\$&'); -} -module.exports = escapeDelimiter; -},{}],18:[function(require,module,exports){ -'use strict'; -function type(value) { - return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); -} -module.exports = type; -},{}]},{},[3])(3) -}); \ No newline at end of file diff --git a/bower_components/combyne/lib/compiler.js b/bower_components/combyne/lib/compiler.js deleted file mode 100644 index e019e92..0000000 --- a/bower_components/combyne/lib/compiler.js +++ /dev/null @@ -1,373 +0,0 @@ -/** - * Compiles a template Tree into JavaScript. - * - * @module compiler - * @requires shared/register_partial - * @requires shared/register_filter - * @requires shared/map - * @requires shared/encode - * @requires utils/type - * @requires utils/create_object - */ -define(function(require, exports, module) { - "use strict"; - - // Shared. - var registerPartial = require("./shared/register_partial"); - var registerFilter = require("./shared/register_filter"); - var map = require("./shared/map"); - var encode = require("./shared/encode"); - - // Utils. - var type = require("./utils/type"); - var createObject = require("./utils/create_object"); - - // Support. - require("./support/array/map"); - require("./support/array/reduce"); - - // Borrowed from Underscore.js template function. - var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; - - // Borrowed from Underscore.js template function. - var escapes = { - "'": "'", - "\\": "\\", - "\r": "r", - "\n": "n", - "\t": "t", - "\u2028": "u2028", - "\u2029": "u2029" - }; - - /** - * Escapes passed values. - * - * @private - * @param {string} value - The value to escape. - * @returns {string} The value escaped. - */ - function escapeValue(value) { - return value.replace(escaper, function(match) { - return "\\" + escapes[match]; - }); - } - - /** - * Normalizes properties in the identifier to be looked up via hash-style - * instead of dot-notation. - * - * @private - * @param {string} identifier - The identifier to normalize. - * @returns {string} The identifier normalized. - */ - function normalizeIdentifier(identifier) { - if (identifier === ".") { - // '.' might be referencing either the root or a locally scoped variable - // called '.'. So try for the locally scoped variable first and then - // default to the root - return "(data['.'] || data)"; - } - - return "data" + identifier.split(".").map(function(property) { - return property ? "['" + property + "']" : ""; - }).join(""); - } - - /** - * Represents a Compiler. - * - * @class - * @memberOf module:compiler - * @param {Tree} tree - A template [Tree]{@link module:tree.Tree} to compile. - */ - function Compiler(tree) { - this.tree = tree; - this.string = ""; - - var compiledSource = this.process(this.tree.nodes); - - // The compiled function body. - var body = []; - - // If there is a function, concatenate it to the default empty value. - if (compiledSource) { - compiledSource = " + " + compiledSource; - } - - // Include map and its dependencies. - if (compiledSource.indexOf("map(") > -1) { - body.push(createObject, type, map); - } - - // Include encode and its dependencies. - if (compiledSource.indexOf("encode(") > -1) { - body.push(type, encode); - } - - // The compiled function body. - body = body.concat([ - // Return the evaluated contents. - "return ''" + compiledSource - ]).join(";\n"); - - // Create the JavaScript function from the source code. - this.func = new Function("data", "partials", "filters", body); - - // toString the function to get its raw source and expose. - this.source = [ - "{", - "_partials: {},", - "_filters: {},", - "registerPartial: " + registerPartial + ",", - "registerFilter: " + registerFilter + ",", - "render: function(data) {", - "return " + this.func + "(data, this._partials, this._filters)", - "}", - "}" - ].join("\n"); - } - - /** - * A recursively called method to detect how to compile each Node in the - * Tree. - * - * @memberOf module:compiler.Compiler - * @param {array} nodes - An Array of Tree nodes to process. - * @param {array} keyVal - An optional array of meta condition keys. - * @return {string} Joined compiled nodes representing the template body. - */ - Compiler.prototype.process = function(nodes, keyVal) { - var commands = []; - - // Parse the Tree and execute the respective compile to JavaScript method. - nodes.map(function(node, index) { - switch (node.type) { - case "RawProperty": - commands.push(this.compileProperty(node, false)); - break; - - case "Property": - commands.push(this.compileProperty(node, true)); - break; - - case "ConditionalExpression": - commands.push(this.compileConditional(node)); - break; - - case "LoopExpression": - commands.push(this.compileLoop(node)); - break; - - case "PartialExpression": - commands.push(this.compilePartial(node)); - break; - - case "ExtendExpression": - commands.push(this.compileExtend(node)); - break; - - default: - // Ensure a node always has a value. - if (node.value) { - commands.push("'" + escapeValue(node.value) + "'"); - } - break; - } - }, this); - - return commands.join("+"); - }; - - /** - * Compiles a property into JavaScript. - * - * @memberOf module:compiler.Compiler - * @param {object} node - The property node to compile. - * @param {boolean} encode - Whether or not to encode the property. - * @return {string} The compiled JavaScript source string value. - */ - Compiler.prototype.compileProperty = function(node, encode) { - var identifier = node.value; - - // Normalize string property values that contain single or double quotes. - if (identifier.indexOf("'") === -1 && identifier.indexOf("\"") === -1) { - identifier = normalizeIdentifier(node.value); - } - - // Build the initial identifier value check. - var value = [ - "(", - // If the identifier is a function, then invoke, otherwise return - // identifier. - "typeof", identifier, "===", "'function'", - "?", encode ? "encode(" + identifier + "(" + node.args + "))" : - identifier + "(" + node.args + ")", - ":", encode ? "encode(" + identifier + ") == null ? '' : encode(" + - identifier + ")" : identifier + " == null ? '' : " + identifier, - ")" - ].join(" "); - - // Find any filters and nest them. - value = node.filters.reduce(function(memo, filter) { - var args = filter.args.length ? ", " + filter.args.map(function(value) { - if (value.indexOf("'") === -1 && value.indexOf("\"") === -1) { - if (!Number(value)) { - return normalizeIdentifier(value); - } - } - - return value; - }).join(", ") : ""; - return "filters['" + filter.value + "']" + "(" + memo + args + ")"; - }, value); - - return value; - }; - - /** - * Compiles a conditional into JavaScript. - * - * @memberOf module:compiler.Compiler - * @param {object} node - The conditional node to compile. - * @return {string} The compiled JavaScript source string value. - */ - Compiler.prototype.compileConditional = function(node) { - if (node.conditions.length === 0) { - throw new Error("Missing conditions to if statement."); - } - - var _this = this; - - var condition = node.conditions.map(function(condition) { - switch (condition.type) { - case "Identifier": - return _this.compileProperty( - condition.value, - condition.value.type == "Property"); - - case "Not": - return "!"; - - case "Literal": - return condition.value; - - case "Equality": - return condition.value; - } - }).join(""); - - // If an else was provided, hook into it. - var els = node.els ? this.process(node.els.nodes) : null; - - // If an elsif was provided, hook into it. - var elsif = node.elsif ? this.compileConditional(node.elsif) : null; - - return [ - "(", "(", condition, ")", "?", this.process(node.nodes), ":", - - els || elsif || "''", - - ")" - ].join(""); - }; - - /** - * Compiles a loop into JavaScript. - * - * @memberOf module:compiler.Compiler - * @param {object} node - The loop node to compile. - * @return {string} The compiled JavaScript source string value. - */ - Compiler.prototype.compileLoop = function(node) { - var conditions = node.conditions; - - var keyVal = [ - // Key - (conditions[3] ? conditions[3].value : "i"), - - // Value. - (conditions[2] ? conditions[2].value : ".") - ]; - - // Normalize the value to the condition if it exists. - var value = conditions.length && conditions[0].value; - - // Construct the loop, utilizing map because it will return back the - // template as an array and ready to join into the template. - var loop = [ - "map(", - value ? this.compileProperty(value, value.type == "Property") : "data", - ",", - - // Index keyword. - "'", keyVal[0], "'", ",", - - // Value keyword. - "'", value ? keyVal[1] : "", "'", ",", - - // Outer scope data object. - "data", ",", - - // The iterator function. - "function(data) {", - "return " + this.process(node.nodes, keyVal), - "}", - ").join('')" - ].join(""); - - return loop; - }; - - /** - * Compiles a partial into JavaScript. - * - * @memberOf module:compiler.Compiler - * @param {object} node - The partial node to compile. - * @return {string} The compiled JavaScript source string value. - */ - Compiler.prototype.compilePartial = function(node) { - return [ - "(", - "(partials['" + node.value + "']._partials = partials),", - "(partials['" + node.value + "']._filters = filters),", - "partials['" + node.value + "'].render(", - node.args.length ? this.compileProperty({ - // We're crafting a fake node here, but only the value is required. - value: node.args[0], - - // Forward the remaining arguments as arguments to the property. - args: node.args.slice(1), - - // No filters are support at the moment. - filters: [] - }) : node.data, - ")", - ")" - ].join(""); - }; - - /** - * Compiles a render into JavaScript. - * - * @memberOf module:compiler.Compiler - * @param {object} node - The partial node to compile. - * @return {string} The compiled JavaScript source string value. - */ - Compiler.prototype.compileExtend = function(node) { - return [ - "(", - // Register this template as the child partial of the parent. - "partials['", node.value.template.trim(), "'].registerPartial", - "('", node.value.partial.trim(), "', { render: function(_data) {", - "data = _data || data;", - "return ", this.process(node.nodes), ";", - "}, data: data}),", - // Invoke the parent template with the passed data. - "partials['", node.value.template.trim(), "'].render(data)", - ")" - ].join(""); - }; - - module.exports = Compiler; -}); diff --git a/bower_components/combyne/lib/grammar.js b/bower_components/combyne/lib/grammar.js deleted file mode 100644 index 205f293..0000000 --- a/bower_components/combyne/lib/grammar.js +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Defines the grammer to use when parsing the template for tokens. - * - * @module grammar - * @requires utils/escape_delimiter - */ -define(function(require, exports, module) { - "use strict"; - - // Utils. - var escapeDelimiter = require("./utils/escape_delimiter"); - - // Support. - require("./support/array/map"); - require("./support/array/some"); - - /** - * Represents a Grammar. - * - * @class - * @memberOf module:grammar - * @param {object} delimiters - Delimiters to use store and use internally. - */ - function Grammar(delimiters) { - this.delimiters = delimiters; - - this.internal = [ - makeEntry("START_IF", "if "), - makeEntry("ELSE", "else"), - makeEntry("ELSIF", "elsif "), - makeEntry("END_IF", "endif"), - makeEntry("NOT", "not "), - makeEntry("EQUALITY", "=="), - makeEntry("NOT_EQUALITY", "!="), - makeEntry("GREATER_THAN_EQUAL", ">="), - makeEntry("GREATER_THAN", ">"), - makeEntry("LESS_THAN_EQUAL", "<="), - makeEntry("LESS_THAN", "<"), - makeEntry("START_EACH", "each"), - makeEntry("END_EACH", "endeach"), - makeEntry("ASSIGN", " as "), - makeEntry("PARTIAL", "partial"), - makeEntry("START_EXTEND", "extend"), - makeEntry("END_EXTEND", "endextend"), - makeEntry("MAGIC", ".") - ]; - } - - /** - * Abstract the logic for adding items to the grammar. - * - * @private - * @param {string} name - Required to identify the match. - * @param {string} value - To be escaped and used within a RegExp. - * @returns {object} The normalized metadata. - */ - function makeEntry(name, value) { - var escaped = escapeDelimiter(value); - - return { - name: name, - escaped: escaped, - test: new RegExp("^" + escaped) - }; - } - - /** - * Escape the stored delimiters. - * - * @memberOf module:grammar.Grammar - * @returns {array} Metadata describing the grammar. - */ - Grammar.prototype.escape = function() { - // Order matters here. - var grammar = [ - "START_RAW", - "START_PROP", - "START_EXPR", - "END_RAW", - "END_PROP", - "END_EXPR", - "COMMENT", - "FILTER" - ]; - - // Add all normalized delimiters into the grammar. - grammar = grammar.map(function(key) { - return makeEntry(key, this.delimiters[key]); - }, this); - - // Add all normalized internals into the grammar. - grammar.push.apply(grammar, this.internal); - - // Take the current grammar and craft the remaining valid string values. - var string = grammar.map(function(value) { - return value.escaped; - }).join("|"); - - // Add whitespace to grammar. - grammar.push({ - name: "WHITESPACE", - test: /^[\ \t\r\n]+/ - }); - - // Add whitespace to the whitelist. - string += "| |\t|\r|\n"; - - // The everything-else bucket. - grammar.push({ - name: "OTHER", - test: new RegExp("^((?!" + string + ").)*") - }); - - return grammar; - }; - - module.exports = Grammar; -}); diff --git a/bower_components/combyne/lib/index.js b/bower_components/combyne/lib/index.js deleted file mode 100644 index d7911e6..0000000 --- a/bower_components/combyne/lib/index.js +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Exposed module for creating and rendering templates. - * - * @module index - * @requires grammar - * @requires tokenizer - * @requires tree - * @requires compiler - * @requires shared/register_partial - * @requires shared/register_filter - * @requires utils/type - */ -define(function(require, exports, module) { - "use strict"; - - var Grammar = require("./grammar"); - var Tokenizer = require("./tokenizer"); - var Tree = require("./tree"); - var Compiler = require("./compiler"); - - // Shared. - var registerPartial = require("./shared/register_partial"); - var registerFilter = require("./shared/register_filter"); - - // Utils. - var type = require("./utils/type"); - var defaults = require("./utils/defaults"); - - // These are the custom delimiters that will always be falled back on for - // every template. They can be overwritten in the settings object. - var defaultDelimiters = { - START_RAW: "{{{", - END_RAW: "}}}", - START_PROP: "{{", - END_PROP: "}}", - START_EXPR: "{%", - END_EXPR: "%}", - COMMENT: "--", - FILTER: "|" - }; - - /** - * Represents a Combyne template. - * - * @class Combyne - * @param {string} template - The template to compile. - * @param {object} data - Optional data to compile. - * @memberOf module:index - */ - function Combyne(template, data) { - // Allow this method to run standalone. - if (!(this instanceof Combyne)) { - return new Combyne(template, data); - } - - // Expose the template for easier accessing and mutation. - this.template = template; - - // Default the data to an empty object. - this.data = data || {}; - - // Internal use only. Stores the partials and filters. - this._partials = {}; - this._filters = {}; - - // Ensure the template is a String. - if (type(this.template) !== "string") { - throw new Error("Template must be a String."); - } - - // Normalize the delimiters with the defaults, to ensure a full object. - var delimiters = defaults(Combyne.settings.delimiters, defaultDelimiters); - - // Create a new grammar with the delimiters. - var grammar = new Grammar(delimiters).escape(); - - // Break down the template into a series of tokens. - var stack = new Tokenizer(this.template, grammar).parse(); - - // Take the stack and create something resembling an AST. - var tree = new Tree(stack).make(); - - // Expose the internal tree and stack. - this.tree = tree; - this.stack = stack; - - // Compile the template function from the tree. - this.compiler = new Compiler(tree); - - // Update the source. - this.source = this.compiler.source; - } - - /** - * Register a partial into the template. - * - * @memberOf module:index.Combyne - * @see {@link module:shared/register_partial} - */ - Combyne.prototype.registerPartial = registerPartial; - - /** - * Register a filter into the template. - * - * @memberOf module:index.Combyne - * @see {@link module:shared/register_filter} - */ - Combyne.prototype.registerFilter = registerFilter; - - /** - * Expose the global template settings. - * - * @memberOf module:index.Combyne - * @type {object} - */ - Combyne.settings = {}; - - /** - * Render the template with data. - * - * @memberOf module:index.Combyne - * @param {object} data - The data to provide to the template. - * @return {string} Rendered template. - */ - Combyne.prototype.render = function(data) { - // Override the template data if provided. - this.data = data || this.data; - - // Execute the template function with the correct data. - return this.compiler.func(this.data, this._partials, this._filters); - }; - - /** - * Attach the version number. - * - * @memberOf module:index.Combyne - * @type {string} - */ - Combyne.VERSION = "0.6.1"; - - module.exports = Combyne; -}); diff --git a/bower_components/combyne/lib/shared/encode.js b/bower_components/combyne/lib/shared/encode.js deleted file mode 100644 index 98eb646..0000000 --- a/bower_components/combyne/lib/shared/encode.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Encodes strings to make user input safer. - * - * @module shared/encode - * @requires module:utils/type - */ -define(function(require, exports, module) { - "use strict"; - - // Utils. - var type = require("../utils/type"); - - /** - * Encodes a String with HTML entities. - * - * Solution adapted from: - * http://stackoverflow.com/questions/18749591 - * - * @memberOf module:shared/encode - * @param {*} raw - The raw value to encode, identity if not a String. - * @returns {string} An encoded string with HTML entities. - */ - function encode(raw) { - if (type(raw) !== "string") { - return raw; - } - - // Identifies all characters in the unicode range: 00A0-9999, ampersands, - // greater & less than) with their respective html entity. - return raw.replace(/["&'<>`]/g, function(match) { - return "&#" + match.charCodeAt(0) + ";"; - }); - } - - module.exports = encode; -}); diff --git a/bower_components/combyne/lib/shared/map.js b/bower_components/combyne/lib/shared/map.js deleted file mode 100644 index 36ce028..0000000 --- a/bower_components/combyne/lib/shared/map.js +++ /dev/null @@ -1,87 +0,0 @@ -/** - * Iterates various JavaScript types. - * - * @module utils/map - * @requires utils/type - * @requires utils/create_object - */ -define(function(require, exports, module) { - "use strict"; - - // Utils. - var type = require("../utils/type"); - var createObject = require("../utils/create_object"); - - // Support. - require("../support/array/is_array"); - - /** - * Allows iteration of an Array, Arguments, NodeList, or plain Object. - * - * @memberOf module:utils/map - * @param {*} obj - Object or Array to iterate. - * @param {String} index - An identifier name for index. - * @param {String} value - An identifier name for value. - * @param {object} data - Data from parent scope. - * @param {Function} iterator - Function that is called within the template. - * @returns {Array} String output to be joined. - */ - function map(obj, index, value, data, iterator) { - var isArrayLike = type(obj) === "arguments" || type(obj) === "nodelist"; - var isArray = Array.isArray(obj) || isArrayLike; - var output = []; - var dataObject; - - // Iteration branch if Array. - if (isArray) { - // Make a clone of the Array to operate on, also potentially coercing. - obj = [].slice.call(obj); - - for (var i = 0; i < obj.length; i++) { - // Create a new scoped data object. - dataObject = createObject(data); - dataObject[index] = i; - - if (value) { - dataObject[value] = obj[i]; - } - // If no value was supplied, use this object to key off of. - else { - dataObject = obj[i]; - } - - // Add return value of iterator function to output. - output.push(iterator(dataObject)); - } - - return output; - } - // Iteration branch if Object. - else { - for (var key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - - // Create a new scoped data object. - dataObject = createObject(data); - dataObject[index] = key; - - if (value) { - dataObject[value] = obj[key]; - } - // If no value was supplied, use this object to key off of. - else { - dataObject = obj[key]; - } - - // Add return value of iterator function to output. - output.push(iterator(dataObject)); - } - - return output; - } - } - - module.exports = map; -}); diff --git a/bower_components/combyne/lib/shared/register_filter.js b/bower_components/combyne/lib/shared/register_filter.js deleted file mode 100644 index 313d016..0000000 --- a/bower_components/combyne/lib/shared/register_filter.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Registers filter functions on a template. - * - * @module shared/register_filter - */ -define(function(require, exports, module) { - "use strict"; - - /** - * Registers a filter on the template object. - * - * @memberOf module:shared/register_filter - * @param {string} name - The name to register. - * @param {function} callback - The callback to trigger for the filter. - */ - function registerFilter(name, callback) { - this._filters[name] = callback; - } - - module.exports = registerFilter; -}); diff --git a/bower_components/combyne/lib/shared/register_partial.js b/bower_components/combyne/lib/shared/register_partial.js deleted file mode 100644 index ba908ea..0000000 --- a/bower_components/combyne/lib/shared/register_partial.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Registers partials on a template. - * - * @module shared/register_partial - */ -define(function(require, exports, module) { - "use strict"; - - /** - * Registers a partial on the template object. - * - * @memberOf module:shared/register_partial - * @param {string} name - The name to register. - * @param {function} template - The template to use as a partial. - */ - function registerPartial(name, template) { - this._partials[name] = template; - - // Partials share filters. - this._partials[name]._filters = this._filters; - } - - module.exports = registerPartial; -}); diff --git a/bower_components/combyne/lib/support/array/is_array.js b/bower_components/combyne/lib/support/array/is_array.js deleted file mode 100644 index f16855b..0000000 --- a/bower_components/combyne/lib/support/array/is_array.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Legacy support for browsers that don't support Array.prototype.is_array. - * - * @module: support/array/is_array - */ -define(function(require, exports, module) { - "use strict"; - - // Utils. - var type = require("../../utils/type"); - - // This polyfill isn't necessary. - if (Array.isArray) { - return isArray; - } - - /** - * A polyfill for Array.isArray. Modified from MDN. - * - * @memberOf module:support/array/is_array - * @param {*} arg - A value to test. - * @returns {boolean} Whether or not the arg is an Array. - */ - function isArray(arg) { - return type(arg) === "[object Array]"; - } - - module.exports = Array.isArray = isArray; -}); diff --git a/bower_components/combyne/lib/support/array/map.js b/bower_components/combyne/lib/support/array/map.js deleted file mode 100644 index 24b0a48..0000000 --- a/bower_components/combyne/lib/support/array/map.js +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Legacy support for browsers that don't support Array.prototype.map. - * - * @module: support/array/map - */ -define(function(require, exports, module) { - "use strict"; - - // This polyfill isn't necessary. - if (Array.prototype.map) { - return map; - } - - /** - * A polyfill for Array#map. Modified from MDN. - * - * @memberOf module:support/array/map - * @param {function} iterator - An interator function to call. - * @param {object} thisArg - An optional context to pass. - * @returns {array} The return values from the iterator function. - */ - function map(iterator, thisArg) { - // Ensure called with a valid context. - if (this == null) { - throw new TypeError(); - } - - // Ensure a function was passed as the iterator. - if (typeof iterator !== "function") { - throw new TypeError(); - } - - // Ensure there is always a `thisArg`. - thisArg = thisArg || this; - - // Coerce this value to an Array. - var array = Array.prototype.slice.call(this); - - // Cache the return values. - var retVal = []; - - for (var i = 0; i < array.length; i++) { - if (i in array) { - retVal[retVal.length] = iterator.call(thisArg, array[i], i, array); - } - } - - return retVal; - } - - module.exports = Array.prototype.map = map; -}); diff --git a/bower_components/combyne/lib/support/array/reduce.js b/bower_components/combyne/lib/support/array/reduce.js deleted file mode 100644 index 0cc773c..0000000 --- a/bower_components/combyne/lib/support/array/reduce.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Legacy support for browsers that don't support Array.prototype.reduce. - * - * @module: support/array/reduce - */ -define(function(require, exports, module) { - "use strict"; - - // This polyfill isn't necessary. - if (Array.prototype.reduce) { - return reduce; - } - - /** - * A polyfill for Array#reduce. Modified from MDN. - * - * @memberOf module:support/array/reduce - * @param {function} iterator - An interator function to call. - * @param {object} memo - A reference object to use as memo. - * @returns {object} The memoized object. - */ - function reduce(iterator, memo) { - // Ensure called with a valid context. - if (this == null) { - throw new TypeError(); - } - - // Ensure a function was passed as the iterator. - if (typeof iterator !== "function") { - throw new TypeError(); - } - - // Coerce this value to an Array. - var array = Array.prototype.slice.call(this); - - for (var i = 0; i < array.length; i++) { - if (i in array) { - memo = iterator(memo, array[i], i, array); - } - } - - return memo; - } - - module.exports = Array.prototype.reduce = reduce; -}); diff --git a/bower_components/combyne/lib/support/array/some.js b/bower_components/combyne/lib/support/array/some.js deleted file mode 100644 index 8890e9a..0000000 --- a/bower_components/combyne/lib/support/array/some.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Legacy support for browsers that don't support Array.prototype.some. - * - * @module: support/array/some - */ -define(function(require, exports, module) { - "use strict"; - - // This polyfill isn't necessary. - if (Array.prototype.some) { - return some; - } - - /** - * A polyfill for Array#some. Modified from MDN. - * - * @memberOf module:support/array/some - * @param {function} iterator - An interator function to call. - * @param {object} thisArg - An optional context to pass. - * @returns {boolean} Whether or not the iterator returned truthy. - */ - function some(iterator, thisArg) { - // Ensure called with a valid context. - if (this == null) { - throw new TypeError(); - } - - // Ensure a function was passed as the iterator. - if (typeof iterator !== "function") { - throw new TypeError(); - } - - // Ensure there is always a `thisArg`. - thisArg = thisArg || this; - - // Coerce this value to an Array. - var array = Array.prototype.slice.call(this); - - for (var i = 0; i < array.length; i++) { - if (i in array) { - if (iterator.call(thisArg, array[i], i, array)) { - return true; - } - } - } - - return false; - } - - module.exports = Array.prototype.some = some; -}); diff --git a/bower_components/combyne/lib/support/string/trim.js b/bower_components/combyne/lib/support/string/trim.js deleted file mode 100644 index 92d4eed..0000000 --- a/bower_components/combyne/lib/support/string/trim.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Legacy support for browsers that don't support String.prototype.trim. - * - * @module: support/string/trim - */ -define(function(require, exports, module) { - "use strict"; - - // This polyfill isn't necessary. - if (String.prototype.trim) { - return trim; - } - - /** - * A polyfill for String#trim. Modified from MDN. - * - * @memberOf module:support/string/trim - * @returns {string} The trimmed String. - */ - function trim() { - return this.replace(/^\s+|\s+$/g, ""); - } - - module.exports = String.prototype.trim = trim; -}); diff --git a/bower_components/combyne/lib/support/string/trim_left.js b/bower_components/combyne/lib/support/string/trim_left.js deleted file mode 100644 index b74fc51..0000000 --- a/bower_components/combyne/lib/support/string/trim_left.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Legacy support for browsers that don't support String.prototype.trimLeft. - * - * @module: support/string/trim_left - */ -define(function(require, exports, module) { - "use strict"; - - // This polyfill isn't necessary. - if (String.prototype.trimLeft) { - return trimLeft; - } - - /** - * A polyfill for String#trimLeft. Modified from MDN. - * - * @memberOf module:support/string/trim_left - * @returns {string} The trimmed String. - */ - function trimLeft() { - return this.replace(/^\s+/, ""); - } - - module.exports = String.prototype.trimLeft = trimLeft; -}); diff --git a/bower_components/combyne/lib/tokenizer.js b/bower_components/combyne/lib/tokenizer.js deleted file mode 100644 index 2377181..0000000 --- a/bower_components/combyne/lib/tokenizer.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Deconstructs a template into tokens. - * - * @module tokenizer - */ -define(function(require, exports, module) { - "use strict"; - - // Support. - require("./support/array/some"); - - /** - * Represents a Tokenizer. - * - * @class - * @memberOf module:tokenizer - * @param {string} template - The template string to tokenize. - * @param {array} grammar - The specified grammar to test against. - */ - function Tokenizer(template, grammar) { - this.template = template; - this.grammar = grammar; - this.stack = []; - } - - /** - * Loop through the grammar and return on the first source match. Remove - * matches from the source, after pushing to the stack. - * - * @private - * @param {string} template that is searched on till its length is 0. - * @param {array} grammar array of test regexes. - * @param {array} stack to push found tokens to. - * @returns {string} template that has been truncated. - */ - function parseNextToken(template, grammar, stack) { - grammar.some(function(token) { - var capture = token.test.exec(template); - - // Ignore empty captures. - if (capture && capture[0]) { - template = template.replace(token.test, ""); - stack.push({ name: token.name, capture: capture }); - return true; - } - }); - - return template; - } - - /** - * Parses the template into a series of tokens. - * - * @memberOf module:tokenizer.Tokenizer - * @returns {array} The series of tokens. - */ - Tokenizer.prototype.parse = function() { - var template = this.template; - var grammar = this.grammar; - var stack = this.stack; - var stackLen = 0; - - // While the template still needs to be parsed, loop. - while (template.length) { - template = parseNextToken(template, grammar, stack); - stackLen = stack.length; - - // Add the previous token, if it exists. - if (stackLen - 2 >= 0) { - stack[stackLen - 1].previous = stack[stackLen - 2]; - } - } - - return stack; - }; - - module.exports = Tokenizer; -}); diff --git a/bower_components/combyne/lib/tree.js b/bower_components/combyne/lib/tree.js deleted file mode 100644 index 6290183..0000000 --- a/bower_components/combyne/lib/tree.js +++ /dev/null @@ -1,652 +0,0 @@ -/** - * A tree representation of the template tokens. - * - * @module tree - */ -define(function(require, exports, module) { - "use strict"; - - var isString = /['"]+/; - - // Support. - require("./support/string/trim"); - - /** - * Represents a Tree. - * - * @class - * @memberOf module:tree - * @param {array} stack - A stack of tokens to parse. - */ - function Tree(stack) { - // Internally use a copy of the stack. - this.stack = stack.slice(); - - // The root tree node. - this.root = { - type: "Template", - nodes: [] - }; - } - - /** - * Takes in an element from the stack of generated tokens. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @param {string} END - Token name to cause an expression to end processing. - * @return {object} The root element decorated or null to stop. - */ - Tree.prototype.make = function(root, END) { - root = root || this.root; - - var node, result, prev; - var index = 0; - - // Pull out the first item in the stack. - while (this.stack.length) { - node = this.stack.shift(); - - switch (node.name) { - case "START_RAW": - root.nodes.push(this.constructProperty(false)); - break; - - case "START_PROP": - root.nodes.push(this.constructProperty(true)); - break; - - case "START_EXPR": - if (result = this.constructExpression(root, END)) { - root.nodes.push(result); - break; - } - - // Comments return false. - else if (result !== false) { - return null; - } - - break; - - case "END_EXPR": - break; - - case "WHITESPACE": - var capture = node.capture[0]; - - // Trim newlines from expression ends. - if (node.previous.name == "END_EXPR") { - capture = capture.replace("\n", ""); - } - - root.nodes.push({ - type: "Text", - value: capture - }); - - break; - - default: - var prevWhitespace = ""; - - // Detect previous whitespace to condense. - if (prev && prev.type === "Text") { - root.nodes.pop(); - prevWhitespace = prev.value; - } - - root.nodes.push({ - type: "Text", - value: prevWhitespace + node.capture[0] - }); - - break; - } - - prev = node; - ++index; - } - - return root; - }; - - /** - * Build a descriptor to describe an instance of a property. - * - * @memberOf module:tree.Tree - * @param {boolean} encoded - Whether or not to encode this property. - * @return {object} Either a property descriptor or filter pass. - */ - Tree.prototype.constructProperty = function(encoded) { - var propertyDescriptor = { - type: encoded ? "Property" : "RawProperty", - value: "", - args: [], - filters: [] - }; - var previous; - var input = "", - processParsedProperty = function() { - // Split up the input into space-delimited parts. - var parts = input.trim().split(" "); - - // The property name. - propertyDescriptor.value = parts[0]; - - // Properties can have arguments passed. - propertyDescriptor.args = parts.slice(1); - }; - - // Keep iterating through the stack until END_PROP is found. - while (this.stack.length) { - var node = this.stack.shift(); - - // If this is the first token, allow the user to use the reserved word - // 'as' - if (!previous && node.name == "ASSIGN") { - node.name = "OTHER"; - } - - switch (node.name) { - case "FILTER": - propertyDescriptor.value = input.trim(); - return this.constructFilter(propertyDescriptor); - - case "END_EXPR": - case "EQUALITY": - case "NOT_EQUALITY": - case "GREATER_THAN": - case "GREATER_THAN_EQUAL": - case "LESS_THAN": - case "LESS_THAN_EQUAL": - case "ASSIGN": - processParsedProperty(); - - // This property is embedded in some of expression, so lets stop - // processing it and put the current token back on top of the stack - // so whatever expression was working can finish it's processing - this.stack.unshift(node); - - return propertyDescriptor; - - case "END_RAW": - case "END_PROP": - case "END_EXPR": - processParsedProperty(); - - return propertyDescriptor; - - default: - input += node.capture[0]; - break; - } - - previous = node; - } - - throw new Error("Unterminated property."); - }; - - /** - * Build a descriptor to describe an instance of an extend. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @return {object} The root element decorated. - */ - Tree.prototype.constructExtend = function(root) { - root.type = "ExtendExpression"; - - // What to return to the compiler. - var value = { - template: "", - partial: "" - }; - - // Start filling the template first. - var side = "template"; - - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - - switch (node.name) { - case "END_EXPR": - break LOOP; - - case "ASSIGN": - side = "partial"; - break; - - default: - // Capture the template and partial values. - value[side] += node.capture[0]; - break; - } - } - - // Trim the template and partial values. - value.template = value.template.trim(); - value.partial = value.partial.trim(); - - // Assign this value. - root.value = value; - - // If no template, this is an error. - if (!root.value.template) { - throw new Error("Missing valid template name."); - } - - // If no partial, this is an error. - if (!root.value.partial) { - throw new Error("Missing valid partial name."); - } - - this.make(root, "END_EXTEND"); - - return root; - }; - - /** - * Build a descriptor to describe an instance of a partial. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @return {object} The root element decorated. - */ - Tree.prototype.constructPartial = function(root) { - root.type = "PartialExpression"; - - // By default isolate the partial from the parent's data. - root.data = "null"; - - // No node in a partial expression? - delete root.nodes; - - // All stringified contents found. - var input = ""; - - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - - switch (node.name) { - case "END_EXPR": - break LOOP; - - case "MAGIC": - // If requested, pass the parent's data to the partial. - root.data = "data"; - break; - - default: - // Accumulate all values into the input variable, will split later. - input += node.capture[0]; - } - } - - // Split up the input into space-delimited parts. - var parts = input.trim().split(" "); - - // The partial name. - root.value = parts[0]; - - // If no value, this is an error. - if (!root.value) { - throw new Error("Missing valid partials name."); - } - - // Partials have arguments passed. - root.args = parts.slice(1); - - return root; - }; - - /** - * Build a descriptor to describe an instance of a filter. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @return {object} The root element decorated. - */ - Tree.prototype.constructFilter = function(root) { - var current = { - type: "Filter", - args: [] - }; - - var previous; - - // All stringified contents found. - var input = ""; - - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - - // If this is the first token, allow the user to use the reserved word - // 'as' - if (!previous && node.name == "ASSIGN") { - node.name = "OTHER"; - } - - switch (node.name) { - case "END_EXPR": - case "EQUALITY": - case "NOT_EQUALITY": - case "GREATER_THAN": - case "GREATER_THAN_EQUAL": - case "LESS_THAN": - case "LESS_THAN_EQUAL": - case "ASSIGN": - root.filters.push(current); - - // This filter is embedded in some of expression, so lets stop - // processing it and put the current token back on top of the stack - // so whatever expression was working can finish it's processing - this.stack.unshift(node); - - break LOOP; - - case "END_RAW": - case "END_PROP": - root.filters.push(current); - break LOOP; - - // Allow nested filters. - case "FILTER": - root.filters.push(current); - this.constructFilter(root); - break LOOP; - - // Accumulate all values into the input variable, will split later. - default: - input += node.capture[0]; - } - - previous = node; - } - - // Split up the input into space-delimited parts. - var parts = input.trim().split(" "); - - // The partial name. - current.value = parts[0]; - - // If no value, this is an error. - if (!current.value) { - throw new Error("Missing valid filter name."); - } - - // Partials have arguments passed. - current.args = parts.slice(1); - - return root; - }; - - /** - * Build a descriptor to describe an instance of a loop. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @return {object} The root element decorated. - */ - Tree.prototype.constructEach = function(root) { - root.type = "LoopExpression"; - root.conditions = []; - - // Find the left side identifier. - var isLeftSide = true; - - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - - switch (node.name) { - case "ASSIGN": - isLeftSide = false; - - root.conditions.push({ - type: "Assignment", - value: node.capture[0].trim() - }); - - break; - - case "END_EXPR": - break LOOP; - - case "WHITESPACE": - break; - - default: - // If we're on the left hand side and there are already conditions, - // this is the only time we're aren't pushing a value descriptor. - if (!isLeftSide) { - root.conditions.push({ - type: "Identifier", - value: node.capture[0].trim() - }); - } - else { - if (node.name != "START_RAW" && node.name != "START_PROP") { - // this value needs to be processed by constructProperty so put - // it back on the top of the stack - this.stack.unshift(node); - } - - root.conditions.push({ - type: "Identifier", - value: this.constructProperty(node.name != "START_RAW") - }); - } - - break; - } - } - - this.make(root, "END_EACH"); - - return root; - }; - - /** - * Build a descriptor to describe an instance of a comment. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @return {object} The root element decorated. - */ - Tree.prototype.constructComment = function(root) { - var previous = {}; - - while (this.stack.length) { - var node = this.stack.shift(); - - switch (node.name) { - case "COMMENT": - if (previous.name === "START_EXPR") { - this.constructComment(root); - } - - break; - - case "END_EXPR": - if (previous.name === "COMMENT") { - return false; - } - - break; - } - - previous = node; - } - - return false; - }; - - /** - * Build a descriptor to describe an instance of a conditional. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @param {string} kind - A way to determine else from elsif. - * @return {object} The root element decorated. - */ - Tree.prototype.constructConditional = function(root, kind) { - root.type = root.type || "ConditionalExpression"; - root.conditions = root.conditions || []; - - var prev = {}; - - if (kind === "ELSE") { - root.els = { nodes: [] }; - return this.make(root.els, "END_IF"); - } - - if (kind === "ELSIF") { - root.elsif = { nodes: [] }; - this.constructConditional(root.elsif, "SKIP"); - return this.make(root.elsif, "END_IF"); - } - - LOOP: - while (this.stack.length) { - var node = this.stack.shift(); - var value = node.capture[0].trim(); - - switch (node.name) { - case "NOT": - root.conditions.push({ - type: "Not" - }); - - break; - - case "EQUALITY": - case "NOT_EQUALITY": - case "GREATER_THAN": - case "GREATER_THAN_EQUAL": - case "LESS_THAN": - case "LESS_THAN_EQUAL": - root.conditions.push({ - type: "Equality", - value: node.capture[0].trim() - }); - - break; - - case "END_EXPR": - break LOOP; - - default: - // If it's a whitespace we need the non-trimmed value - if (node.name == "WHITESPACE") { - value = node.capture[0]; - } - - if (value === "false" || value === "true") { - root.conditions.push({ - type: "Literal", - value: value - }); - } - // Easy way to determine if the value is NaN or not. - else if (Number(value) === Number(value)) { - root.conditions.push({ - type: "Literal", - value: value - }); - } - else if (isString.test(value)) { - root.conditions.push({ - type: "Literal", - value: value - }); - } - else if (prev.type === "Literal") { - prev.value += value; - } - else { - - if (node.name != "START_RAW" && node.name != "START_PROP") { - // this value needs to be processed by constructProperty so put - // it back on the top of the stack - this.stack.unshift(node); - } - - root.conditions.push({ - type: "Identifier", - value: this.constructProperty(node.name != "START_RAW") - }); - } - - break; - } - - // Store the previous condition object if it exists. - prev = root.conditions[root.conditions.length - 1] || {}; - } - - if (kind !== "SKIP") { - this.make(root, "END_IF"); - } - - return root; - }; - - /** - * Build a descriptor to describe an instance of an expression. - * - * @memberOf module:tree.Tree - * @param {object} root - Current token in stack or tree node to process. - * @param {string} END - Token name to cause an expression to end processing. - * @return {object} The root element decorated. - */ - Tree.prototype.constructExpression = function(root, END) { - var expressionRoot = { - nodes: [] - }; - - // Find the type. - while (this.stack.length) { - var type = this.stack.shift(); - - switch (type.name) { - // WHEN ANY OF THESE ARE HIT, BREAK OUT. - case END: - return; - - case "WHITESPACE": - break; - - case "COMMENT": - return this.constructComment(expressionRoot); - - case "START_EACH": - return this.constructEach(expressionRoot); - - case "ELSIF": - case "ELSE": - case "START_IF": - if (type.name !== "START_IF") { - expressionRoot = root; - } - - return this.constructConditional(expressionRoot, type.name); - - case "PARTIAL": - return this.constructPartial(expressionRoot); - - case "START_EXTEND": - return this.constructExtend(expressionRoot); - - default: - throw new Error("Invalid expression type: " + type.name); - } - } - }; - - module.exports = Tree; -}); diff --git a/bower_components/combyne/lib/utils/create_object.js b/bower_components/combyne/lib/utils/create_object.js deleted file mode 100644 index 14ba57b..0000000 --- a/bower_components/combyne/lib/utils/create_object.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Creates a new object with the [[Proto]] set to a passed in object. - * - * @module utils/create_object - */ -define(function(require, exports, module) { - "use strict"; - - /** - * Basic Crockford-ian style Object.create. Intentionally named to - * distinguish from the native implementation. - * - * @memberOf module:utils/create_object - * @param {Object} parent - An object to specify as the return prototype. - * @returns {object} An object with parent object as the prototype. - */ - function createObject(parent) { - function F() {} - F.prototype = parent; - return new F(); - } - - module.exports = createObject; -}); diff --git a/bower_components/combyne/lib/utils/defaults.js b/bower_components/combyne/lib/utils/defaults.js deleted file mode 100644 index 131339f..0000000 --- a/bower_components/combyne/lib/utils/defaults.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Merges default target object into source. - * - * @module utils/defaults - */ -define(function(require, exports, module) { - "use strict"; - - /** - * Merge all default properties into target. - * - * @memberOf module:utils/defaults - * @param {object} target - The object to merge into. - * @param {object} source - The defaults object that will be merged. - * @returns {object} The target object. - */ - function defaults(target, source) { - // Ensure target and source are always objects. - target = target || {}; - source = source; - - for (var key in source) { - if (!source.hasOwnProperty(key)) { - continue; - } - - // Ensure the key isn't present, before merging. - if (!(key in target)) { - target[key] = source[key]; - } - } - - return target; - } - - module.exports = defaults; -}); diff --git a/bower_components/combyne/lib/utils/escape_delimiter.js b/bower_components/combyne/lib/utils/escape_delimiter.js deleted file mode 100644 index f3fef35..0000000 --- a/bower_components/combyne/lib/utils/escape_delimiter.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Safely escapes Strings to be used as delimiters via RegExp. - * - * @module utils/escape_delimiter - */ -define(function(require, exports, module) { - "use strict"; - - var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g; - - /** - * Escape special characters that may interfere with RegExp building. - * - * @memberOf module:utils/escape_delimiter - * @param {String} delimiter - The value to escape. - * @returns {String} A safe value for RegExp building. - */ - function escapeDelimiter(delimiter) { - return delimiter.replace(specialCharsExp,"\\$&"); - } - - module.exports = escapeDelimiter; -}); diff --git a/bower_components/combyne/lib/utils/type.js b/bower_components/combyne/lib/utils/type.js deleted file mode 100644 index a4dc07e..0000000 --- a/bower_components/combyne/lib/utils/type.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Determines the type of a passed in value. - * - * @module utils/type - */ -define(function(require, exports, module) { - "use strict"; - - /** - * Determine the type of a given value. - * - * @memberOf module:utils/type - * @param {*} value - A value to test. - * @returns {string} The value's type. - */ - function type(value) { - return Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); - } - - module.exports = type; -}); diff --git a/bower_components/jquery/.bower.json b/bower_components/jquery/.bower.json deleted file mode 100644 index ba14528..0000000 --- a/bower_components/jquery/.bower.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "jquery", - "version": "2.1.1", - "main": "dist/jquery.js", - "license": "MIT", - "ignore": [ - "**/.*", - "build", - "speed", - "test", - "*.md", - "AUTHORS.txt", - "Gruntfile.js", - "package.json" - ], - "devDependencies": { - "sizzle": "1.10.19", - "requirejs": "2.1.10", - "qunit": "1.14.0", - "sinon": "1.8.1" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ], - "homepage": "https://github.com/jquery/jquery", - "_release": "2.1.1", - "_resolution": { - "type": "version", - "tag": "2.1.1", - "commit": "4dec426aa2a6cbabb1b064319ba7c272d594a688" - }, - "_source": "git://github.com/jquery/jquery.git", - "_target": "~2.1.1", - "_originalSource": "jquery" -} \ No newline at end of file diff --git a/bower_components/jquery/MIT-LICENSE.txt b/bower_components/jquery/MIT-LICENSE.txt deleted file mode 100644 index cdd31b5..0000000 --- a/bower_components/jquery/MIT-LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright 2014 jQuery Foundation and other contributors -http://jquery.com/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/bower_components/jquery/bower.json b/bower_components/jquery/bower.json deleted file mode 100644 index c66a750..0000000 --- a/bower_components/jquery/bower.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "jquery", - "version": "2.1.1", - "main": "dist/jquery.js", - "license": "MIT", - "ignore": [ - "**/.*", - "build", - "speed", - "test", - "*.md", - "AUTHORS.txt", - "Gruntfile.js", - "package.json" - ], - "devDependencies": { - "sizzle": "1.10.19", - "requirejs": "2.1.10", - "qunit": "1.14.0", - "sinon": "1.8.1" - }, - "keywords": [ - "jquery", - "javascript", - "library" - ] -} diff --git a/bower_components/jquery/dist/jquery.js b/bower_components/jquery/dist/jquery.js deleted file mode 100644 index 9f7b3d3..0000000 --- a/bower_components/jquery/dist/jquery.js +++ /dev/null @@ -1,9190 +0,0 @@ -/*! - * jQuery JavaScript Library v2.1.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-05-01T17:11Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper window is present, - // execute the factory and get jQuery - // For environments that do not inherently posses a window with a document - // (such as Node.js), expose a jQuery-making factory as module.exports - // This accentuates the need for the creation of a real window - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -// - -var arr = []; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var support = {}; - - - -var - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - version = "2.1.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android<4.1 - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; - }, - - isPlainObject: function( obj ) { - // Not plain objects: - // - Any object or value whose internal [[Class]] property is not "[object Object]" - // - DOM nodes - // - window - if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.constructor && - !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { - return false; - } - - // If the function hasn't returned already, we're confident that - // |obj| is a plain object, created by {} or constructed with new Object - return true; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - // Support: Android < 4.0, iOS < 6 (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - var script, - indirect = eval; - - code = jQuery.trim( code ); - - if ( code ) { - // If the code includes a valid, prologue position - // strict mode pragma, execute code by injecting a - // script tag into the document. - if ( code.indexOf("use strict") === 1 ) { - script = document.createElement("script"); - script.text = code; - document.head.appendChild( script ).parentNode.removeChild( script ); - } else { - // Otherwise, avoid the DOM node creation, insertion - // and removal by using an indirect global eval - indirect( code ); - } - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v1.10.19 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-04-18 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "
"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - len = this.length, - ret = [], - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; - }, - - sibling: function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter(function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return elem.contentDocument || jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.unique( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * The ready event handler and self cleanup method - */ -function completed() { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - jQuery.ready(); -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - } else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - } - } - return readyList.promise( obj ); -}; - -// Kick off the DOM ready check even if the user does not -jQuery.ready.promise(); - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - len ? fn( elems[0], key ) : emptyGet; -}; - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( owner ) { - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - /* jshint -W018 */ - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - -function Data() { - // Support: Android < 4, - // Old WebKit does not have Object.preventExtensions/freeze method, - // return new empty object instead with no [[set]] accessor - Object.defineProperty( this.cache = {}, 0, { - get: function() { - return {}; - } - }); - - this.expando = jQuery.expando + Math.random(); -} - -Data.uid = 1; -Data.accepts = jQuery.acceptData; - -Data.prototype = { - key: function( owner ) { - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return the key for a frozen object. - if ( !Data.accepts( owner ) ) { - return 0; - } - - var descriptor = {}, - // Check if the owner object already has a cache key - unlock = owner[ this.expando ]; - - // If not, create one - if ( !unlock ) { - unlock = Data.uid++; - - // Secure it in a non-enumerable, non-writable property - try { - descriptor[ this.expando ] = { value: unlock }; - Object.defineProperties( owner, descriptor ); - - // Support: Android < 4 - // Fallback to a less secure definition - } catch ( e ) { - descriptor[ this.expando ] = unlock; - jQuery.extend( owner, descriptor ); - } - } - - // Ensure the cache object - if ( !this.cache[ unlock ] ) { - this.cache[ unlock ] = {}; - } - - return unlock; - }, - set: function( owner, data, value ) { - var prop, - // There may be an unlock assigned to this node, - // if there is no entry for this "owner", create one inline - // and set the unlock as though an owner entry had always existed - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - // Handle: [ owner, key, value ] args - if ( typeof data === "string" ) { - cache[ data ] = value; - - // Handle: [ owner, { properties } ] args - } else { - // Fresh assignments by object are shallow copied - if ( jQuery.isEmptyObject( cache ) ) { - jQuery.extend( this.cache[ unlock ], data ); - // Otherwise, copy the properties one-by-one to the cache object - } else { - for ( prop in data ) { - cache[ prop ] = data[ prop ]; - } - } - } - return cache; - }, - get: function( owner, key ) { - // Either a valid cache is found, or will be created. - // New caches will be created and the unlock returned, - // allowing direct access to the newly created - // empty data object. A valid owner object must be provided. - var cache = this.cache[ this.key( owner ) ]; - - return key === undefined ? - cache : cache[ key ]; - }, - access: function( owner, key, value ) { - var stored; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ((key && typeof key === "string") && value === undefined) ) { - - stored = this.get( owner, key ); - - return stored !== undefined ? - stored : this.get( owner, jQuery.camelCase(key) ); - } - - // [*]When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, name, camel, - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - if ( key === undefined ) { - this.cache[ unlock ] = {}; - - } else { - // Support array or space separated string of keys - if ( jQuery.isArray( key ) ) { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = key.concat( key.map( jQuery.camelCase ) ); - } else { - camel = jQuery.camelCase( key ); - // Try the string as a key before any manipulation - if ( key in cache ) { - name = [ key, camel ]; - } else { - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - name = camel; - name = name in cache ? - [ name ] : ( name.match( rnotwhite ) || [] ); - } - } - - i = name.length; - while ( i-- ) { - delete cache[ name[ i ] ]; - } - } - }, - hasData: function( owner ) { - return !jQuery.isEmptyObject( - this.cache[ owner[ this.expando ] ] || {} - ); - }, - discard: function( owner ) { - if ( owner[ this.expando ] ) { - delete this.cache[ owner[ this.expando ] ]; - } - } -}; -var data_priv = new Data(); - -var data_user = new Data(); - - - -/* - Implementation Summary - - 1. Enforce API surface and semantic compatibility with 1.9.x branch - 2. Improve the module's maintainability by reducing the storage - paths to a single mechanism. - 3. Use the same single mechanism to support "private" and "user" data. - 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) - 5. Avoid exposing implementation details on user objects (eg. expando properties) - 6. Provide a clear path for implementation upgrade to WeakMap in 2014 -*/ -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - data_user.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend({ - hasData: function( elem ) { - return data_user.hasData( elem ) || data_priv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return data_user.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - data_user.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to data_priv methods, these can be deprecated. - _data: function( elem, name, data ) { - return data_priv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - data_priv.remove( elem, name ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = data_user.get( elem ); - - if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - data_priv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - data_user.set( this, key ); - }); - } - - return access( this, function( value ) { - var data, - camelKey = jQuery.camelCase( key ); - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - // Attempt to get data from the cache - // with the key as-is - data = data_user.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to get data from the cache - // with the key camelized - data = data_user.get( elem, camelKey ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, camelKey, undefined ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each(function() { - // First, attempt to store a copy or reference of any - // data that might've been store with a camelCased key. - var data = data_user.get( this, camelKey ); - - // For HTML5 data-* attribute interop, we have to - // store property names with dashes in a camelCase form. - // This might not apply to all properties...* - data_user.set( this, camelKey, value ); - - // *... In the case of properties that might _actually_ - // have dashes, we need to also store a copy of that - // unchanged property. - if ( key.indexOf("-") !== -1 && data !== undefined ) { - data_user.set( this, key, value ); - } - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - data_user.remove( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = data_priv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray( data ) ) { - queue = data_priv.access( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return data_priv.get( elem, key ) || data_priv.access( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - data_priv.remove( elem, [ type + "queue", key ] ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = data_priv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // #11217 - WebKit loses check when the name is after the checked attribute - // Support: Windows Web Apps (WWA) - // `name` and `type` need .setAttribute for WWA - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE9-IE11+ - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -})(); -var strundefined = typeof undefined; - - - -support.focusinBubbles = "onfocusin" in window; - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.hasData( elem ) && data_priv.get( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - data_priv.remove( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.disabled !== true || event.type !== "click" ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome < 28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } -}; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: Android < 4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && e.preventDefault ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && e.stopPropagation ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// Support: Chrome 15+ -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// Create "bubbling" focus and blur events -// Support: Firefox, Chrome, Safari -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - data_priv.remove( doc, fix ); - - } else { - data_priv.access( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style|link)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /^$|\/(?:java|ecma)script/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - - // Support: IE 9 - option: [ 1, "" ], - - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] - }; - -// Support: IE 9 -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: 1.x compatibility -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute("type"); - } - - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - data_priv.set( - elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) - ); - } -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( data_priv.hasData( src ) ) { - pdataOld = data_priv.access( src ); - pdataCur = data_priv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( data_user.hasData( src ) ) { - udataOld = data_user.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - data_user.set( dest, udataCur ); - } -} - -function getAll( context, tag ) { - var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : - context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; -} - -// Support: IE >= 9 -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Support: IE >= 9 - // Fix Cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Fixes #12346 - // Support: Webkit, IE - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; - }, - - cleanData: function( elems ) { - var data, elem, type, key, - special = jQuery.event.special, - i = 0; - - for ( ; (elem = elems[ i ]) !== undefined; i++ ) { - if ( jQuery.acceptData( elem ) ) { - key = elem[ data_priv.expando ]; - - if ( key && (data = data_priv.cache[ key ]) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - if ( data_priv.cache[ key ] ) { - // Discard any remaining `private` data - delete data_priv.cache[ key ]; - } - } - } - // Discard any remaining `user` data - delete data_user.cache[ elem[ data_user.expando ] ]; - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each(function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - }); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( " - - - - - - - - - -
- -
-
- Built in Boston USA - & - Coded by a Kiwi -
-
- - - - - - - - - diff --git a/jsdoc-template/tmpl/mainpage.tmpl b/jsdoc-template/tmpl/mainpage.tmpl deleted file mode 100644 index 64e9e59..0000000 --- a/jsdoc-template/tmpl/mainpage.tmpl +++ /dev/null @@ -1,14 +0,0 @@ - - - -

- - - -
-
-
- diff --git a/jsdoc-template/tmpl/members.tmpl b/jsdoc-template/tmpl/members.tmpl deleted file mode 100644 index c76f772..0000000 --- a/jsdoc-template/tmpl/members.tmpl +++ /dev/null @@ -1,22 +0,0 @@ - -
-

- - -

- -
-
- -
- -
- - - - - -
Example 1? 's':'' ?>
- - -
diff --git a/jsdoc-template/tmpl/method.tmpl b/jsdoc-template/tmpl/method.tmpl deleted file mode 100644 index 1eb9032..0000000 --- a/jsdoc-template/tmpl/method.tmpl +++ /dev/null @@ -1,76 +0,0 @@ - -
-

- - -

- -
-
- - -
- -
- - - -
Type:
-
    -
  • - -
  • -
- - - -
This:
-
- - - -
Parameters:
- - - - - - -
Fires:
-
    - -
- - - -
Throws:
- 1) { ?>
    -
  • -
- - - - -
Returns:
- 1) { ?>
    -
  • -
- - - - -
Example 1? 's':'' ?>
- - -
diff --git a/jsdoc-template/tmpl/params.tmpl b/jsdoc-template/tmpl/params.tmpl deleted file mode 100644 index ca81f8f..0000000 --- a/jsdoc-template/tmpl/params.tmpl +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
- - - - - - <optional>
- - - - <nullable>
- -
- - - - -
Properties
- -
\ No newline at end of file diff --git a/jsdoc-template/tmpl/properties.tmpl b/jsdoc-template/tmpl/properties.tmpl deleted file mode 100644 index dfa6ee0..0000000 --- a/jsdoc-template/tmpl/properties.tmpl +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
- - - - - - <optional>
- - - - <nullable>
- -
- - - - -
Properties
-
\ No newline at end of file diff --git a/jsdoc-template/tmpl/returns.tmpl b/jsdoc-template/tmpl/returns.tmpl deleted file mode 100644 index 32e059e..0000000 --- a/jsdoc-template/tmpl/returns.tmpl +++ /dev/null @@ -1,19 +0,0 @@ - -
- -
- - - -
-
- Type -
-
- -
-
- \ No newline at end of file diff --git a/jsdoc-template/tmpl/source.tmpl b/jsdoc-template/tmpl/source.tmpl deleted file mode 100644 index d0606b4..0000000 --- a/jsdoc-template/tmpl/source.tmpl +++ /dev/null @@ -1,8 +0,0 @@ - -
-
-
-
-
diff --git a/jsdoc-template/tmpl/tutorial.tmpl b/jsdoc-template/tmpl/tutorial.tmpl deleted file mode 100644 index b0c79c1..0000000 --- a/jsdoc-template/tmpl/tutorial.tmpl +++ /dev/null @@ -1,19 +0,0 @@ -
- -
- 0) { ?> -
    -
  • -
- - -

-
- -
- -
- -
diff --git a/jsdoc-template/tmpl/type.tmpl b/jsdoc-template/tmpl/type.tmpl deleted file mode 100644 index db8194d..0000000 --- a/jsdoc-template/tmpl/type.tmpl +++ /dev/null @@ -1,7 +0,0 @@ - - -| - \ No newline at end of file diff --git a/scripts/api.js b/scripts/api.js deleted file mode 100644 index 132d197..0000000 --- a/scripts/api.js +++ /dev/null @@ -1,111 +0,0 @@ -(function(window) { - "use strict"; - - // Handle search. - var search = document.querySelector("input[type=search]"); - - function getAPI(version) { - return $.getJSON("/api-viewer/versions/" + version + ".json"); - } - - getAPI("wip").then(function(resp) { - var listApi = $("#list-api"); - var content = $(".api-content"); - var scrollable = listApi.find(".scrollable"); - - var contentTemplate = combyne($(".api-content script").eq(1).html().trim()); - - contentTemplate.registerFilter("realArgs", function(args) { - return args.filter(function(arg) { - return !arg.isSelf && !arg.isReturn; - }).map(function(arg, val, all) { - arg.length = all.length; - return arg; - }); - }); - - contentTemplate.registerFilter("addComma", function(value, arg, index) { - if (index === arg.length -1) { - return value; - } - else { - return value + ", "; - } - }); - - contentTemplate.registerFilter("toCamelCase", function(value) { - return value[0].toLowerCase() + value.slice(1); - }); - - resp.filter(function(ctor) { - return ctor.jsClassName; - }).forEach(function(ctor) { - // Add nav entry. - var anchor = $("
  • " + ctor.jsClassName + "
  • ").appendTo(scrollable); - - // Add new content. - var contentOutput = contentTemplate.render(ctor); - - content.append(contentOutput); - - // Join the fields and functions (they are both functions). - if (ctor.fields && ctor.functions) { - ctor.functions.push.apply(ctor.functions, ctor.fields); - } - else { - ctor.functions = ctor.functions || ctor.fields; - } - - (ctor.functions||[]).filter(Boolean).forEach(function(func) { - var isPrototype = func.isPrototypeMethod ? "#" : "."; - anchor.find(".subnav").append("
  • " + ctor.jsClassName + isPrototype + func.jsFunctionName + "
  • "); - }); - }); - - // Size the navigation bar correctly. - scrollable.height($("html").innerHeight() - 230); - - $(window).on("resize", function() { - scrollable.height($("html").innerHeight() - 230); - }); - - var windowHeight = $(window).height(); - - // Store the url to match against. - var elms = $(".about, .inner-content, .inner-block li, h4[id]").each(function() { - $(this).data({ - url: "#" + (this.id || ""), - top: $(this).offset().top - }); - }); - - var children = listApi.find("a"); - - //$(document).on("scroll ready", _.throttle(function() { - // var doc = $(this); - - // elms.each(function() { - // var pos = doc.scrollTop(); - // var el = $(this); - - // if (el.data("top") > pos && el.data("top") < pos + (windowHeight / 2)) { - // children.removeClass("active"); - - // var active = children.filter("[href='" + el.data("url") + "']"); - - // active.addClass("active").parents(elms).addClass("active"); - // } - // }); - //}, 50)); - - // Highlight the new code blocks. - Prism.highlightAll(); - - listApi.on("click", "a", function(ev) { - ev.stopPropagation(); - listApi.find("a").removeClass("active"); - $(this).addClass("active"); - $(this).parents("a").addClass("active"); - }); - }); -})(this); diff --git a/scripts/demo.js b/scripts/demo.js deleted file mode 100644 index 5ba88a8..0000000 --- a/scripts/demo.js +++ /dev/null @@ -1,74 +0,0 @@ -// Create the scope with defaults. -(function(window) { - "use strict"; - - // DOM elements. - var demo = document.querySelector(".demo"); - - // Create a livelist of command elements. - var commands = demo.getElementsByClassName("command"); - - var handleClick = function(evt) { - var command = lastCommand(); - command.focus(); - - var range = document.createRange(); - range.selectNodeContents(command); - range.collapse(false); - - var sel = window.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); - }; - - var handleKeyPress = function(evt) { - if (evt.keyCode !== 13) { - return false; - } - - // Remove the current command's editable ability. - lastCommand().removeAttribute("contenteditable"); - - // Parse and handle the command. - parseCommand(); - }; - - var parseCommand = function() { - var command = lastCommand().innerText; - - if (command.indexOf("git") === -1) { - addCommand("command error", command + " is not a valid command.", false); - } - - addCommand("command", "", true); - }; - - var addCommand = function(type, message, editable) { - // Create the new command line. - var command = document.createElement("div"); - command.className = type; - - // Add the new command. - demo.appendChild(command); - - // Set message. - command.innerText = message; - - if (editable) { - command.setAttribute("contenteditable", true); - - // Set focus. - setTimeout(function() { - command.innerText = command.innerText; - command.focus(); - }, 100); - } - }; - - var lastCommand = function() { - return commands[commands.length - 1]; - }; - - demo.addEventListener("click", handleClick, true); - demo.addEventListener("keypress", handleKeyPress, true); -})(this); diff --git a/scripts/prism.js b/scripts/prism.js deleted file mode 100644 index e19d990..0000000 --- a/scripts/prism.js +++ /dev/null @@ -1,5 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=clike+javascript+bash */ -self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){c.lastIndex=0;var m=c.exec(d);if(m){u&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),N=[p,1];b&&N.push(b);var O=new a(l,g?t.tokenize(m,g):m,h);N.push(O),w&&N.push(w),Array.prototype.splice.apply(r,N)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("[object Array]"==Object.prototype.toString.call(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var o="";for(var s in i.attributes)o+=s+'="'+(i.attributes[s]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+o+">"+i.content+""},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),self.close()},!1),self.Prism):self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism);; -Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//g,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*?(\r?\n|$)/g,lookbehind:!0}],string:/("|')(\\?.)*?\1/g,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/gi,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/g,"boolean":/\b(true|false)\b/g,"function":{pattern:/[a-z0-9_]+\(/gi,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|\~|\^|\%/g,ignore:/&(lt|gt|amp);/gi,punctuation:/[{}[\];(),.:]/g};; -Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?|NaN|-?Infinity)\b/g}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/g,lookbehind:!0}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/gi,inside:{tag:{pattern:/|<\/script>/gi,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript}}});; -Prism.languages.bash=Prism.languages.extend("clike",{comment:{pattern:/(^|[^"{\\])(#.*?(\r?\n|$))/g,lookbehind:!0},string:{pattern:/("|')(\\?[\s\S])*?\1/g,inside:{property:/\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^\}]+\})/g}},keyword:/\b(if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)\b/g}),Prism.languages.insertBefore("bash","keyword",{property:/\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^}]+\})/g}),Prism.languages.insertBefore("bash","comment",{important:/(^#!\s*\/bin\/bash)|(^#!\s*\/bin\/sh)/g});; diff --git a/styles/api.css b/styles/api.css deleted file mode 100644 index 2481e00..0000000 --- a/styles/api.css +++ /dev/null @@ -1,203 +0,0 @@ -#list-api { - color: #FFF; - list-style: none; - padding-left: 0px; - width: 240px; - margin: 0; - position: fixed; - left: 0; - top: 0; - font-size: 13px; - background: #3D3D3D; - /* Cover #content */ - z-index: 100; -} - -#list-api a { - display: block; - font-weight: bold; - padding: 10px; - background: #383838; - color: #BBB; - transition: all linear .3s; - padding-left: 20px; -} - -#list-api a .subnav { - display: none; -} - -#list-api a.active .subnav { - display: block; - margin: 0; - padding: 0; - list-style: none; - color: #8D8D8D; -} - -#list-api a.active .subnav a { - background: transparent; - color: #FFB4B4; - padding: 0; -} - -#list-api a.active .subnav a.active { - color: #FFF; -} - -#list-api a.active .subnav a:first-child { - margin-top: 10px; -} - -#list-api a.active .subnav li { - padding: 10px; - margin-right: 10px; -} - -#list-api a:hover, #list-api a.active { - background: #F1595F; - color: #FFF; -} - -.api-content { - color: #333; - float: left; - width: calc(100% - 225px); - min-height: 100%; - position: relative; - overflow-x: hidden; - left: 225px; -} - -.api-content .inner-content { - width: 75%; - height: 100%; - margin: 17px; - margin-right: 0px; - margin-top: 0px; - padding: 20px; - padding-top: 10px; - background: #F5F2F0; -} - -.api-content hr { - border-color: #C0C0C0; - margin-bottom: 15px; -} - -ul.api-contents { - margin: 0; - padding: 0; - list-style: none; -} - -ul.api-contents table { - width: 100%; -} - -ul.api-contents table th { - color: #858585; -} - -ul.api-contents table h3 { - margin: 0; -} - -.api-content .header strong { - color: #505050; -} - -.api-content .is.added {} - -.api-content .is.added:before { - content: "\2713 Supported "; - color: #52800D; -} - -.api-content .not.added:before { - content: "\2717 Unsupported "; - color: #80360D; -} - -.api-content .header strong:not(:last-child) { - border-right: 1px solid #888; - padding-right: 7px; -} - -.api-content .ref { - background: #E7E7E7; - padding: 4px; - font-weight: normal; - color: #424242; - border: 1px solid #DFDADA; -} - -.api-content td:first-child ~ td { - color: #5C5C5C; -} - -.api-content .inner-block { - background: #FFF; - border: 1px solid #C6C6C6; - margin: 0px; - margin-top: 20px; - padding: 10px; - padding-left: 30px; - list-style: none; - border-radius: 4px; - padding-right: 30px; -} - -.api-content .inner-block strong.cName, -.api-content .inner-block strong.name { - font-size: 22px; - display: inline-block; - padding-bottom: 15px; - color: #3D3D3D; - padding-top: 10px; -} - -.api-content .inner-block strong.cName { - color: #C9C9C9; - font-weight: normal; -} - -.api-content .inner-block h3 { - margin-top: 0px; -} - -.arguments { - border: 1px solid #C6C6C6; - padding: 10px; - margin: 15px 0px; - background: #F5F5F5; -} - -.functions h4 { - color: #7A7A7A; -} - -.scrollable { - overflow-y: auto; -} - -.scrollable::-webkit-scrollbar { width: 0 !important } - -pre { - background-color: #F9F8F7 !important; -} - -.api-contents pre.const { - border: 1px solid #DFDADA; - margin-right: -20px; - margin-top: 20px; - margin-bottom: 20px; -} - -.api-contents pre.const code { - margin-left: 10px; -} - -pre.function { - margin-left: 0px !important; -} diff --git a/styles/common.css b/styles/common.css deleted file mode 100644 index 03ef5c2..0000000 --- a/styles/common.css +++ /dev/null @@ -1,193 +0,0 @@ -@import "demo.css"; - -* { - box-sizing: border-box; -} - -body { - font-family: 'Open Sans', sans-serif; - margin: 0; - margin-top: -20px -} - -h1 { - color: rgba(164, 202, 214, 0.24); -} - -html { - background-color: #383838; - height: 100%; -} - -html:after { - content: ""; - /*background: url(http://subtlepatterns.com/patterns/tactile_noise.png);*/ - opacity: .2; - top: 0; - left: 0; - bottom: 0; - right: 0; - position: absolute; - z-index: -1; -} - -header, footer { - text-align: center; - color: white; -} - -a { - text-decoration: none; -} - -select { - outline: none !important; - font-size: 1.2em; - width: 122px; - color: #FFF; - border-width: 4px; - border-color: #383838; - background-color: #383838; - text-align: right; - margin: 0; - padding: 5px; - margin-left: 20px; -} - -.search { - background: #F1595F; -} - -input[type=search] { - width: 100%; - outline: none; - border: none; - padding: 10px; - padding-left: 20px; - font-size: 13px; - margin: 0; -} - -.brand { - color: rgba(0, 0, 0, 0); - margin: 0; - height: 100px; -} - -.brand:before { - content: ""; - width: 228px; - height: 51px; - display: block; - background: url(../img/nodegit.svg); - margin: auto; - position: relative; - top: 30px; - left: 12px; - margin-top: -20px; - background-size: 164px 64px; - background-repeat: no-repeat; -} - -header { - position: relative; - margin: auto; - max-width: 960px; -} - -nav { - height: 90px; - padding-top: 10px; -} - -nav ul { - margin: 0; - padding: 0; - line-height: 76px; - float: right; -} - -nav ul li { - display: inline-block; - line-height: 3.5em; -} - -nav a { - color: white; - display: block; - font-size: .8em; - font-weight: 100; - letter-spacing: 1px; - padding-left: 15px; -} - -nav a:hover, nav a.active { - color: #727272; -} - -footer { - line-height: 4.5em; - font-size: .8em; - letter-spacing: 1px; -} - -footer a { - color: #F45C60; -} - -#wrapper .block { - margin: auto; - max-width: 960px; - margin-bottom: 20px; -} - -#wrapper .full.block { - max-width: 100%; -} - -.row { - margin: auto; -} - -.row.full { - max-width: 100%; -} - -.center { - text-align: center; -} - -.about { - background: #303030; - padding: 20px; - color: #FFF; - margin-left: 15px; - color: #FFF; - padding-bottom: 0; - padding-top: 55px; -} - -.about p { - color: #BBB; -} - -.about a { - color: #8A8A8A; -} - -.about h4 { - color: #CCC; -} - -.about h3:last-child { - padding-bottom: 20px; - margin-bottom: 0; -} - -.wrap-content { - width: calc(75% + 24px); -} - -pre[class*="language-"] { - margin-left: -20px !important; -} diff --git a/styles/demo.css b/styles/demo.css deleted file mode 100644 index 8cb2fd9..0000000 --- a/styles/demo.css +++ /dev/null @@ -1,39 +0,0 @@ -.demo { - background: #1D1D1D; - color: #FFFFFF; - padding: 20px 50px; - font-family: Courier; - height: 340px; - overflow-y: auto; -} - -.demo .command { - margin-left: 20px; - outline: none; - color: #696969; - line-height: 24px; -} - -.demo .command.error { - color: rgb(213, 106, 106); - font-style: italic; -} - -.demo .command:last-child { - color: #FFF; -} - -.demo .command:before { - content: "~"; - position: relative; - left: -20px; - margin-right: -10px; -} - -.demo .command:last-child:before { - color: rgb(44, 221, 255); -} - -.demo .identifier { - padding-left: 5px; -} diff --git a/styles/prism.css b/styles/prism.css deleted file mode 100644 index f0340b8..0000000 --- a/styles/prism.css +++ /dev/null @@ -1,133 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=clike+javascript+bash */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ - -code[class*="language-"], -pre[class*="language-"] { - color: black; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', monospace; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*="language-"]::selection, pre[class*="language-"] ::selection, -code[class*="language-"]::selection, code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1em; - margin: .5em 0; - overflow: auto; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #f5f2f0; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #999; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: hsla(0, 0%, 100%, .5); -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} - -.token.function { - color: #DD4A68; -} - -.token.regex, -.token.important, -.token.variable { - color: #e90; -} - -.token.important { - font-weight: bold; -} - -.token.entity { - cursor: help; -} - From 290a43101b4b3e384c4766c043710787a84d6d58 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Thu, 12 Feb 2015 12:06:37 -0500 Subject: [PATCH 02/24] Basic jekyll site --- .gitignore | 2 + Gemfile | 2 + Gemfile.lock | 126 ++++++++++ README.md | 4 +- _config.yml | 9 + _includes/footer.html | 25 ++ _includes/head.html | 12 + _includes/header.html | 27 +++ _layouts/default.html | 20 ++ _layouts/page.html | 14 ++ _layouts/post.html | 15 ++ _posts/2015-02-12-welcome-to-jekyll.markdown | 25 ++ _sass/_base.scss | 204 ++++++++++++++++ _sass/_layout.scss | 236 +++++++++++++++++++ _sass/_syntax-highlighting.scss | 67 ++++++ about.md | 11 + css/main.scss | 52 ++++ feed.xml | 30 +++ index.html | 23 ++ script/bootstrap | 3 + script/server | 2 + 21 files changed, 907 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _includes/footer.html create mode 100644 _includes/head.html create mode 100644 _includes/header.html create mode 100644 _layouts/default.html create mode 100644 _layouts/page.html create mode 100644 _layouts/post.html create mode 100644 _posts/2015-02-12-welcome-to-jekyll.markdown create mode 100644 _sass/_base.scss create mode 100644 _sass/_layout.scss create mode 100644 _sass/_syntax-highlighting.scss create mode 100644 about.md create mode 100755 css/main.scss create mode 100644 feed.xml create mode 100644 index.html create mode 100755 script/bootstrap create mode 100755 script/server diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..badbc02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +_site +.sass-cache diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..053c27d --- /dev/null +++ b/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'github-pages' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..de86246 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,126 @@ +GEM + remote: https://rubygems.org/ + specs: + RedCloth (4.2.9) + activesupport (4.2.0) + i18n (~> 0.7) + json (~> 1.7, >= 1.7.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + blankslate (2.1.2.4) + celluloid (0.16.0) + timers (~> 4.0.0) + classifier-reborn (2.0.3) + fast-stemmer (~> 1.0) + coffee-script (2.3.0) + coffee-script-source + execjs + coffee-script-source (1.9.0) + colorator (0.1) + execjs (2.3.0) + fast-stemmer (1.0.2) + ffi (1.9.6) + gemoji (2.1.0) + github-pages (33) + RedCloth (= 4.2.9) + github-pages-health-check (~> 0.2) + jekyll (= 2.4.0) + jekyll-coffeescript (= 1.0.1) + jekyll-mentions (= 0.2.1) + jekyll-redirect-from (= 0.6.2) + jekyll-sass-converter (= 1.2.0) + jekyll-sitemap (= 0.6.3) + jemoji (= 0.4.0) + kramdown (= 1.5.0) + liquid (= 2.6.1) + maruku (= 0.7.0) + mercenary (~> 0.3) + pygments.rb (= 0.6.1) + rdiscount (= 2.1.7) + redcarpet (= 3.1.2) + terminal-table (~> 1.4) + github-pages-health-check (0.2.1) + net-dns (~> 0.6) + public_suffix (~> 1.4) + hitimes (1.2.2) + html-pipeline (1.9.0) + activesupport (>= 2) + nokogiri (~> 1.4) + i18n (0.7.0) + jekyll (2.4.0) + classifier-reborn (~> 2.0) + colorator (~> 0.1) + jekyll-coffeescript (~> 1.0) + jekyll-gist (~> 1.0) + jekyll-paginate (~> 1.0) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 1.1) + kramdown (~> 1.3) + liquid (~> 2.6.1) + mercenary (~> 0.3.3) + pygments.rb (~> 0.6.0) + redcarpet (~> 3.1) + safe_yaml (~> 1.0) + toml (~> 0.1.0) + jekyll-coffeescript (1.0.1) + coffee-script (~> 2.2) + jekyll-gist (1.1.0) + jekyll-mentions (0.2.1) + html-pipeline (~> 1.9.0) + jekyll (~> 2.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.6.2) + jekyll (~> 2.0) + jekyll-sass-converter (1.2.0) + sass (~> 3.2) + jekyll-sitemap (0.6.3) + jekyll-watch (1.2.1) + listen (~> 2.7) + jemoji (0.4.0) + gemoji (~> 2.0) + html-pipeline (~> 1.9) + jekyll (~> 2.0) + json (1.8.2) + kramdown (1.5.0) + liquid (2.6.1) + listen (2.8.5) + celluloid (>= 0.15.2) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9) + maruku (0.7.0) + mercenary (0.3.5) + mini_portile (0.6.2) + minitest (5.5.1) + net-dns (0.8.0) + nokogiri (1.6.6.2) + mini_portile (~> 0.6.0) + parslet (1.5.0) + blankslate (~> 2.0) + posix-spawn (0.3.9) + public_suffix (1.4.6) + pygments.rb (0.6.1) + posix-spawn (~> 0.3.6) + yajl-ruby (~> 1.2.0) + rb-fsevent (0.9.4) + rb-inotify (0.9.5) + ffi (>= 0.5.0) + rdiscount (2.1.7) + redcarpet (3.1.2) + safe_yaml (1.0.4) + sass (3.4.11) + terminal-table (1.4.5) + thread_safe (0.3.4) + timers (4.0.1) + hitimes + toml (0.1.2) + parslet (~> 1.5.0) + tzinfo (1.2.2) + thread_safe (~> 0.1) + yajl-ruby (1.2.1) + +PLATFORMS + ruby + +DEPENDENCIES + github-pages diff --git a/README.md b/README.md index 4b4c1d9..5c4cb0a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -`bower install` -`http-server` +`script/bootstrap` +`script/server` diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..f6afa36 --- /dev/null +++ b/_config.yml @@ -0,0 +1,9 @@ +# Site settings +title: NodeGit +description: Asynchronous native Node bindings to libgit2 +url: "http://nodegit.org" # the base hostname & protocol for your site +date_format: "ordinal" + +# Build settings +markdown: kramdown +highlighter: pygments diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..2fec048 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,25 @@ +
    + +
    + + + + + +
    + +
    diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..557e4cc --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,12 @@ + + + + + + {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} + + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..cfe381f --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,27 @@ + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..e4ab96f --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,20 @@ + + + + {% include head.html %} + + + + {% include header.html %} + +
    +
    + {{ content }} +
    +
    + + {% include footer.html %} + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..74c1a11 --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,14 @@ +--- +layout: default +--- +
    + +
    +

    {{ page.title }}

    +
    + +
    + {{ content }} +
    + +
    diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..a2b4e52 --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,15 @@ +--- +layout: default +--- +
    + +
    +

    {{ page.title }}

    + +
    + +
    + {{ content }} +
    + +
    diff --git a/_posts/2015-02-12-welcome-to-jekyll.markdown b/_posts/2015-02-12-welcome-to-jekyll.markdown new file mode 100644 index 0000000..4f48cfd --- /dev/null +++ b/_posts/2015-02-12-welcome-to-jekyll.markdown @@ -0,0 +1,25 @@ +--- +layout: post +title: "Welcome to Jekyll!" +date: 2015-02-12 11:17:26 +categories: jekyll update +--- +You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. + +To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works. + +Jekyll also offers powerful support for code snippets: + +{% highlight ruby %} +def print_hi(name) + puts "Hi, #{name}" +end +print_hi('Tom') +#=> prints 'Hi, Tom' to STDOUT. +{% endhighlight %} + +Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll’s dedicated Help repository][jekyll-help]. + +[jekyll]: http://jekyllrb.com +[jekyll-gh]: https://github.com/jekyll/jekyll +[jekyll-help]: https://github.com/jekyll/jekyll-help diff --git a/_sass/_base.scss b/_sass/_base.scss new file mode 100644 index 0000000..e5fd0fd --- /dev/null +++ b/_sass/_base.scss @@ -0,0 +1,204 @@ +/** + * Reset some basic elements + */ +body, h1, h2, h3, h4, h5, h6, +p, blockquote, pre, hr, +dl, dd, ol, ul, figure { + margin: 0; + padding: 0; +} + + + +/** + * Basic styling + */ +body { + font-family: $base-font-family; + font-size: $base-font-size; + line-height: $base-line-height; + font-weight: 300; + color: $text-color; + background-color: $background-color; + -webkit-text-size-adjust: 100%; +} + + + +/** + * Set `margin-bottom` to maintain vertical rhythm + */ +h1, h2, h3, h4, h5, h6, +p, blockquote, pre, +ul, ol, dl, figure, +%vertical-rhythm { + margin-bottom: $spacing-unit / 2; +} + + + +/** + * Images + */ +img { + max-width: 100%; + vertical-align: middle; +} + + + +/** + * Figures + */ +figure > img { + display: block; +} + +figcaption { + font-size: $small-font-size; +} + + + +/** + * Lists + */ +ul, ol { + margin-left: $spacing-unit; +} + +li { + > ul, + > ol { + margin-bottom: 0; + } +} + + + +/** + * Headings + */ +h1, h2, h3, h4, h5, h6 { + font-weight: 300; +} + + + +/** + * Links + */ +a { + color: $brand-color; + text-decoration: none; + + &:visited { + color: darken($brand-color, 15%); + } + + &:hover { + color: $text-color; + text-decoration: underline; + } +} + + + +/** + * Blockquotes + */ +blockquote { + color: $grey-color; + border-left: 4px solid $grey-color-light; + padding-left: $spacing-unit / 2; + font-size: 18px; + letter-spacing: -1px; + font-style: italic; + + > :last-child { + margin-bottom: 0; + } +} + + + +/** + * Code formatting + */ +pre, +code { + font-size: 15px; + border: 1px solid $grey-color-light; + border-radius: 3px; + background-color: #eef; +} + +code { + padding: 1px 5px; +} + +pre { + padding: 8px 12px; + overflow-x: scroll; + + > code { + border: 0; + padding-right: 0; + padding-left: 0; + } +} + + + +/** + * Wrapper + */ +.wrapper { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2)); + max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); + margin-right: auto; + margin-left: auto; + padding-right: $spacing-unit; + padding-left: $spacing-unit; + @extend %clearfix; + + @include media-query($on-laptop) { + max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit})); + max-width: calc(#{$content-width} - (#{$spacing-unit})); + padding-right: $spacing-unit / 2; + padding-left: $spacing-unit / 2; + } +} + + + +/** + * Clearfix + */ +%clearfix { + + &:after { + content: ""; + display: table; + clear: both; + } +} + + + +/** + * Icons + */ +.icon { + + > svg { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + + path { + fill: $grey-color; + } + } +} diff --git a/_sass/_layout.scss b/_sass/_layout.scss new file mode 100644 index 0000000..def56f8 --- /dev/null +++ b/_sass/_layout.scss @@ -0,0 +1,236 @@ +/** + * Site header + */ +.site-header { + border-top: 5px solid $grey-color-dark; + border-bottom: 1px solid $grey-color-light; + min-height: 56px; + + // Positioning context for the mobile navigation icon + position: relative; +} + +.site-title { + font-size: 26px; + line-height: 56px; + letter-spacing: -1px; + margin-bottom: 0; + float: left; + + &, + &:visited { + color: $grey-color-dark; + } +} + +.site-nav { + float: right; + line-height: 56px; + + .menu-icon { + display: none; + } + + .page-link { + color: $text-color; + line-height: $base-line-height; + + // Gaps between nav items, but not on the first one + &:not(:first-child) { + margin-left: 20px; + } + } + + @include media-query($on-palm) { + position: absolute; + top: 9px; + right: 30px; + background-color: $background-color; + border: 1px solid $grey-color-light; + border-radius: 5px; + text-align: right; + + .menu-icon { + display: block; + float: right; + width: 36px; + height: 26px; + line-height: 0; + padding-top: 10px; + text-align: center; + + > svg { + width: 18px; + height: 15px; + + path { + fill: $grey-color-dark; + } + } + } + + .trigger { + clear: both; + display: none; + } + + &:hover .trigger { + display: block; + padding-bottom: 5px; + } + + .page-link { + display: block; + padding: 5px 10px; + } + } +} + + + +/** + * Site footer + */ +.site-footer { + border-top: 1px solid $grey-color-light; + padding: $spacing-unit 0; +} + +.footer-heading { + font-size: 18px; + margin-bottom: $spacing-unit / 2; +} + +.contact-list, +.social-media-list { + list-style: none; + margin-left: 0; +} + +.footer-col-wrapper { + font-size: 15px; + color: $grey-color; + margin-left: -$spacing-unit / 2; + @extend %clearfix; +} + +.footer-col { + float: left; + margin-bottom: $spacing-unit / 2; + padding-left: $spacing-unit / 2; +} + +.footer-col-1 { + width: -webkit-calc(35% - (#{$spacing-unit} / 2)); + width: calc(35% - (#{$spacing-unit} / 2)); +} + +.footer-col-2 { + width: -webkit-calc(20% - (#{$spacing-unit} / 2)); + width: calc(20% - (#{$spacing-unit} / 2)); +} + +.footer-col-3 { + width: -webkit-calc(45% - (#{$spacing-unit} / 2)); + width: calc(45% - (#{$spacing-unit} / 2)); +} + +@include media-query($on-laptop) { + .footer-col-1, + .footer-col-2 { + width: -webkit-calc(50% - (#{$spacing-unit} / 2)); + width: calc(50% - (#{$spacing-unit} / 2)); + } + + .footer-col-3 { + width: -webkit-calc(100% - (#{$spacing-unit} / 2)); + width: calc(100% - (#{$spacing-unit} / 2)); + } +} + +@include media-query($on-palm) { + .footer-col { + float: none; + width: -webkit-calc(100% - (#{$spacing-unit} / 2)); + width: calc(100% - (#{$spacing-unit} / 2)); + } +} + + + +/** + * Page content + */ +.page-content { + padding: $spacing-unit 0; +} + +.page-heading { + font-size: 20px; +} + +.post-list { + margin-left: 0; + list-style: none; + + > li { + margin-bottom: $spacing-unit; + } +} + +.post-meta { + font-size: $small-font-size; + color: $grey-color; +} + +.post-link { + display: block; + font-size: 24px; +} + + + +/** + * Posts + */ +.post-header { + margin-bottom: $spacing-unit; +} + +.post-title { + font-size: 42px; + letter-spacing: -1px; + line-height: 1; + + @include media-query($on-laptop) { + font-size: 36px; + } +} + +.post-content { + margin-bottom: $spacing-unit; + + h2 { + font-size: 32px; + + @include media-query($on-laptop) { + font-size: 28px; + } + } + + h3 { + font-size: 26px; + + @include media-query($on-laptop) { + font-size: 22px; + } + } + + h4 { + font-size: 20px; + + @include media-query($on-laptop) { + font-size: 18px; + } + } +} diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss new file mode 100644 index 0000000..e36627d --- /dev/null +++ b/_sass/_syntax-highlighting.scss @@ -0,0 +1,67 @@ +/** + * Syntax highlighting styles + */ +.highlight { + background: #fff; + @extend %vertical-rhythm; + + .c { color: #998; font-style: italic } // Comment + .err { color: #a61717; background-color: #e3d2d2 } // Error + .k { font-weight: bold } // Keyword + .o { font-weight: bold } // Operator + .cm { color: #998; font-style: italic } // Comment.Multiline + .cp { color: #999; font-weight: bold } // Comment.Preproc + .c1 { color: #998; font-style: italic } // Comment.Single + .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special + .gd { color: #000; background-color: #fdd } // Generic.Deleted + .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific + .ge { font-style: italic } // Generic.Emph + .gr { color: #a00 } // Generic.Error + .gh { color: #999 } // Generic.Heading + .gi { color: #000; background-color: #dfd } // Generic.Inserted + .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific + .go { color: #888 } // Generic.Output + .gp { color: #555 } // Generic.Prompt + .gs { font-weight: bold } // Generic.Strong + .gu { color: #aaa } // Generic.Subheading + .gt { color: #a00 } // Generic.Traceback + .kc { font-weight: bold } // Keyword.Constant + .kd { font-weight: bold } // Keyword.Declaration + .kp { font-weight: bold } // Keyword.Pseudo + .kr { font-weight: bold } // Keyword.Reserved + .kt { color: #458; font-weight: bold } // Keyword.Type + .m { color: #099 } // Literal.Number + .s { color: #d14 } // Literal.String + .na { color: #008080 } // Name.Attribute + .nb { color: #0086B3 } // Name.Builtin + .nc { color: #458; font-weight: bold } // Name.Class + .no { color: #008080 } // Name.Constant + .ni { color: #800080 } // Name.Entity + .ne { color: #900; font-weight: bold } // Name.Exception + .nf { color: #900; font-weight: bold } // Name.Function + .nn { color: #555 } // Name.Namespace + .nt { color: #000080 } // Name.Tag + .nv { color: #008080 } // Name.Variable + .ow { font-weight: bold } // Operator.Word + .w { color: #bbb } // Text.Whitespace + .mf { color: #099 } // Literal.Number.Float + .mh { color: #099 } // Literal.Number.Hex + .mi { color: #099 } // Literal.Number.Integer + .mo { color: #099 } // Literal.Number.Oct + .sb { color: #d14 } // Literal.String.Backtick + .sc { color: #d14 } // Literal.String.Char + .sd { color: #d14 } // Literal.String.Doc + .s2 { color: #d14 } // Literal.String.Double + .se { color: #d14 } // Literal.String.Escape + .sh { color: #d14 } // Literal.String.Heredoc + .si { color: #d14 } // Literal.String.Interpol + .sx { color: #d14 } // Literal.String.Other + .sr { color: #009926 } // Literal.String.Regex + .s1 { color: #d14 } // Literal.String.Single + .ss { color: #990073 } // Literal.String.Symbol + .bp { color: #999 } // Name.Builtin.Pseudo + .vc { color: #008080 } // Name.Variable.Class + .vg { color: #008080 } // Name.Variable.Global + .vi { color: #008080 } // Name.Variable.Instance + .il { color: #099 } // Literal.Number.Integer.Long +} diff --git a/about.md b/about.md new file mode 100644 index 0000000..3ed64bb --- /dev/null +++ b/about.md @@ -0,0 +1,11 @@ +--- +layout: page +title: About +permalink: /about/ +--- + +This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/) + +You can find the source code for the Jekyll new theme at: [github.com/jglovier/jekyll-new](https://github.com/jglovier/jekyll-new) + +You can find the source code for Jekyll at [github.com/jekyll/jekyll](https://github.com/jekyll/jekyll) diff --git a/css/main.scss b/css/main.scss new file mode 100755 index 0000000..beee4e3 --- /dev/null +++ b/css/main.scss @@ -0,0 +1,52 @@ +--- +# Only the main Sass file needs front matter (the dashes are enough) +--- +@charset "utf-8"; + + + +// Our variables +$base-font-family: Helvetica, Arial, sans-serif; +$base-font-size: 16px; +$small-font-size: $base-font-size * 0.875; +$base-line-height: 1.5; + +$spacing-unit: 30px; + +$text-color: #111; +$background-color: #fdfdfd; +$brand-color: #2a7ae2; + +$grey-color: #828282; +$grey-color-light: lighten($grey-color, 40%); +$grey-color-dark: darken($grey-color, 25%); + +// Width of the content area +$content-width: 800px; + +$on-palm: 600px; +$on-laptop: 800px; + + + +// Using media queries with like this: +// @include media-query($on-palm) { +// .wrapper { +// padding-right: $spacing-unit / 2; +// padding-left: $spacing-unit / 2; +// } +// } +@mixin media-query($device) { + @media screen and (max-width: $device) { + @content; + } +} + + + +// Import partials from `sass_dir` (defaults to `_sass`) +@import + "base", + "layout", + "syntax-highlighting" +; diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..a6628bd --- /dev/null +++ b/feed.xml @@ -0,0 +1,30 @@ +--- +layout: null +--- + + + + {{ site.title | xml_escape }} + {{ site.description | xml_escape }} + {{ site.url }}{{ site.baseurl }}/ + + {{ site.time | date_to_rfc822 }} + {{ site.time | date_to_rfc822 }} + Jekyll v{{ jekyll.version }} + {% for post in site.posts limit:10 %} + + {{ post.title | xml_escape }} + {{ post.content | xml_escape }} + {{ post.date | date_to_rfc822 }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {{ post.url | prepend: site.baseurl | prepend: site.url }} + {% for tag in post.tags %} + {{ tag | xml_escape }} + {% endfor %} + {% for cat in post.categories %} + {{ cat | xml_escape }} + {% endfor %} + + {% endfor %} + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..83d9398 --- /dev/null +++ b/index.html @@ -0,0 +1,23 @@ +--- +layout: default +--- + +
    + +

    Posts

    + +
      + {% for post in site.posts %} +
    • + + +

      + {{ post.title }} +

      +
    • + {% endfor %} +
    + +

    subscribe via RSS

    + +
    diff --git a/script/bootstrap b/script/bootstrap new file mode 100755 index 0000000..77cd258 --- /dev/null +++ b/script/bootstrap @@ -0,0 +1,3 @@ +#/bin/bash +gem install bundler +bundle diff --git a/script/server b/script/server new file mode 100755 index 0000000..f8f965a --- /dev/null +++ b/script/server @@ -0,0 +1,2 @@ +#/bin/bash +bundle exec jekyll serve From 08969492181bf8c36b9a083cfbf2602fbd55ed67 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Thu, 12 Feb 2015 21:21:49 -0500 Subject: [PATCH 03/24] Basic responsive nodegit design in place --- _config.yml | 10 +- _includes/footer.html | 16 - _includes/head.html | 46 ++- _includes/header.html | 61 ++-- _layouts/default.html | 11 +- _sass/_base.scss | 204 ------------- _sass/_layout.scss | 520 +++++++++++++++++++++----------- _sass/_reset.scss | 48 +++ _sass/_syntax-highlighting.scss | 150 +++++---- _sass/_type.scss | 59 ++++ about.md | 11 - changelog.md | 21 ++ css/main.scss | 50 +-- img/hamburger.svg | 14 + img/nodegit-mark.svg | 16 + img/nodegit.svg | 92 ++---- index.html | 23 -- index.md | 63 ++++ js/sticky.js | 9 + 19 files changed, 799 insertions(+), 625 deletions(-) delete mode 100644 _sass/_base.scss create mode 100644 _sass/_reset.scss create mode 100644 _sass/_type.scss delete mode 100644 about.md create mode 100644 changelog.md create mode 100644 img/hamburger.svg create mode 100644 img/nodegit-mark.svg delete mode 100644 index.html create mode 100644 index.md create mode 100644 js/sticky.js diff --git a/_config.yml b/_config.yml index f6afa36..4fa3322 100644 --- a/_config.yml +++ b/_config.yml @@ -1,9 +1,15 @@ # Site settings title: NodeGit description: Asynchronous native Node bindings to libgit2 -url: "http://nodegit.org" # the base hostname & protocol for your site +url: "http://nodegit.org" date_format: "ordinal" +current_nodegit_version: 0.3.0 +other_nodegit_versions: + - HEAD + - 0.2.7 # Build settings -markdown: kramdown +markdown: redcarpet highlighter: pygments +permalink: pretty +exclude: ["node_modules","generate","package.json","README.md"] diff --git a/_includes/footer.html b/_includes/footer.html index 2fec048..2f6d26a 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -2,23 +2,7 @@
    - -
    diff --git a/_includes/head.html b/_includes/head.html index 557e4cc..32787e5 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,7 +1,7 @@ - + {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} @@ -9,4 +9,48 @@ + + + + diff --git a/_includes/header.html b/_includes/header.html index cfe381f..5d1f389 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -2,26 +2,51 @@
    - {{ site.title }} - - diff --git a/_layouts/default.html b/_layouts/default.html index c8074a4..aa63145 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -10,6 +10,11 @@
    + {% if page.return_to %} + {% for section_hash in page.return_to %} +
    {{section_hash[0]}}
    + {% endfor %} + {% endif %}
      {% for section_hash in page.sections %}
    • {{section_hash[0]}}
    • diff --git a/_sass/_layout.scss b/_sass/_layout.scss index d015807..3941e34 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -3,13 +3,17 @@ /** * Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, h4, h5, h6, +h1, h2, h3, p, blockquote, pre, ul, ol, dl, figure, .highlight %vertical-rhythm { margin-bottom: $spacing-unit / 2; } +html, body { + background:#fff; +} + body { padding:0 $spacing-unit $spacing-unit; } @@ -25,6 +29,7 @@ body { header { display:block; + background:#fff; overflow:hidden; .site-info { @@ -212,15 +217,103 @@ header { .outline { float:right; - width:180px; + width:220px; padding:0 0 0 $spacing-unit; font-size:$font-size * 0.9; display:block; + + ul { + border:none; + } } .main { overflow:hidden; width:auto; + + table { + a { + color:$text-color; + font-weight:500; + + span { + font-weight:normal; + } + + &:hover { + color:$headline-color; + } + } + + .tags { + position:relative; + top:-2px; + right:-12px; + + span { + padding-top:2px; + padding-bottom:2px; + } + } + } + } +} + +span.tags { + margin:0 0 0 6px; + position:relative; + top:-0.23em; + + span { + font-size:12px; + display:inline-block; + padding:6px 8px; + border-radius:3px; + text-transform:uppercase; + color:#fff; + margin:0 8px 0 0; + font-family:$font-family; + font-weight:500; + + &.enum { + background:#92D4D3; + } + + &.sync { + background:#FD8487; + } + + &.async { + background:#77D971; + } + + &.experimental { + background:#FFBB85; + } + } +} + +table { + border-collapse:collapse; + width:100%; + margin:0 0 $spacing-unit/2; + + th { + font-weight:500; + color:#aaa; + } + + td { + border-top:1px solid #ededed; + } + + th, td { + padding:8px $spacing-unit/2; + text-align:left; + + span { + color:#aaa; + } } } diff --git a/_sass/_type.scss b/_sass/_type.scss index d0ace82..7c25119 100644 --- a/_sass/_type.scss +++ b/_sass/_type.scss @@ -7,7 +7,7 @@ body { color:$text-color; } -h1, h2, h3, h4, h5, nav, .version, .version-menu, .buttons { +h1, h2, h3, nav, .version, .version-menu, .buttons { font-family: Bitter, $font-family; line-height:1; } @@ -20,6 +20,10 @@ h2 { font-size:$font-size * 2; margin-top:$spacing-unit; + span { + color:#aaa; + } + &:first-child { margin-top:0; } @@ -29,16 +33,40 @@ h3 { font-size:$font-size * 1.2; } +h4 { + font-weight:500; + color:#999; +} + +h5 { + border-bottom:1px solid #ededed; + padding:0 0 $spacing-unit/4; + margin:0 0 $spacing-unit/3; +} + .version, .version-menu { font-size:$font-size*0.8; } +strong { + font-weight:bold; + color:#222; +} + a { text-decoration:none; color:$key-color; + span { + color:#aaa; + } + &:hover { color:darken($key-color, 20%); + + span { + color:#727272; + } } } diff --git a/css/main.scss b/css/main.scss index dd59bb0..2901040 100755 --- a/css/main.scss +++ b/css/main.scss @@ -7,8 +7,8 @@ $font-family: "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; $font-size: 16px; $line-height: 1.5; $spacing-unit: 30px; -$headline-color: #444; -$text-color: #727272; +$headline-color: #222; +$text-color: #555; $key-color: #F1595F; // Import partials from `sass_dir` (defaults to `_sass`) From 9ffb0dc0877d3a947cb1cdcf4e62e96bb86d278e Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Sun, 22 Feb 2015 13:18:40 -0500 Subject: [PATCH 07/24] Update README.md with new generator info --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 5c4cb0a..614d656 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ `script/bootstrap` `script/server` +`open http://localhost:4000` + +## Generating the site + +While in development, the generator will not clone the nodegit repo. You'll need to soft-link the nodegit repository into `generate/`. + +```bash +ln -s /path/to/nodegit generate/nodegit +``` + +Once linked, generate the site. + +```bash +node generate +``` + +If you're running `script/server` in another terminal tab, it will read the changes and regenerate the site. From 92710d6ea640b78af51e591920db7e416150955f Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Sun, 22 Feb 2015 13:19:35 -0500 Subject: [PATCH 08/24] --- .gitignore | 2 - README.md | 17 -- _config.yml | 2 - _includes/header.html | 6 +- _layouts/default.html | 5 - _sass/_layout.scss | 97 +-------- _sass/_type.scss | 30 +-- css/main.scss | 4 +- generate/index.js | 13 -- generate/lib/add_convenience_methods.js | 62 ------ generate/lib/generated_data.js | 102 --------- generate/lib/set_doc_defaults.js | 14 -- generate/lib/write_api_docs.js | 274 ------------------------ package.json | 25 --- 14 files changed, 8 insertions(+), 645 deletions(-) delete mode 100644 generate/index.js delete mode 100644 generate/lib/add_convenience_methods.js delete mode 100644 generate/lib/generated_data.js delete mode 100644 generate/lib/set_doc_defaults.js delete mode 100644 generate/lib/write_api_docs.js delete mode 100644 package.json diff --git a/.gitignore b/.gitignore index dcd4928..badbc02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ _site .sass-cache -generate/nodegit -node_modules/ diff --git a/README.md b/README.md index 614d656..5c4cb0a 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,2 @@ `script/bootstrap` `script/server` -`open http://localhost:4000` - -## Generating the site - -While in development, the generator will not clone the nodegit repo. You'll need to soft-link the nodegit repository into `generate/`. - -```bash -ln -s /path/to/nodegit generate/nodegit -``` - -Once linked, generate the site. - -```bash -node generate -``` - -If you're running `script/server` in another terminal tab, it will read the changes and regenerate the site. diff --git a/_config.yml b/_config.yml index 12ffa8e..4fa3322 100644 --- a/_config.yml +++ b/_config.yml @@ -10,8 +10,6 @@ other_nodegit_versions: # Build settings markdown: redcarpet -redcarpet: - extensions: [tables, no_intra_emphasis, autolink] highlighter: pygments permalink: pretty exclude: ["node_modules","generate","package.json","README.md"] diff --git a/_includes/header.html b/_includes/header.html index 25b0eb6..5d1f389 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -23,10 +23,10 @@

      diff --git a/_layouts/default.html b/_layouts/default.html index aa63145..c8074a4 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -10,11 +10,6 @@
      - {% if page.return_to %} - {% for section_hash in page.return_to %} -
      {{section_hash[0]}}
      - {% endfor %} - {% endif %}
        {% for section_hash in page.sections %}
      • {{section_hash[0]}}
      • diff --git a/_sass/_layout.scss b/_sass/_layout.scss index 3941e34..d015807 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -3,17 +3,13 @@ /** * Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight %vertical-rhythm { margin-bottom: $spacing-unit / 2; } -html, body { - background:#fff; -} - body { padding:0 $spacing-unit $spacing-unit; } @@ -29,7 +25,6 @@ body { header { display:block; - background:#fff; overflow:hidden; .site-info { @@ -217,103 +212,15 @@ header { .outline { float:right; - width:220px; + width:180px; padding:0 0 0 $spacing-unit; font-size:$font-size * 0.9; display:block; - - ul { - border:none; - } } .main { overflow:hidden; width:auto; - - table { - a { - color:$text-color; - font-weight:500; - - span { - font-weight:normal; - } - - &:hover { - color:$headline-color; - } - } - - .tags { - position:relative; - top:-2px; - right:-12px; - - span { - padding-top:2px; - padding-bottom:2px; - } - } - } - } -} - -span.tags { - margin:0 0 0 6px; - position:relative; - top:-0.23em; - - span { - font-size:12px; - display:inline-block; - padding:6px 8px; - border-radius:3px; - text-transform:uppercase; - color:#fff; - margin:0 8px 0 0; - font-family:$font-family; - font-weight:500; - - &.enum { - background:#92D4D3; - } - - &.sync { - background:#FD8487; - } - - &.async { - background:#77D971; - } - - &.experimental { - background:#FFBB85; - } - } -} - -table { - border-collapse:collapse; - width:100%; - margin:0 0 $spacing-unit/2; - - th { - font-weight:500; - color:#aaa; - } - - td { - border-top:1px solid #ededed; - } - - th, td { - padding:8px $spacing-unit/2; - text-align:left; - - span { - color:#aaa; - } } } diff --git a/_sass/_type.scss b/_sass/_type.scss index 7c25119..d0ace82 100644 --- a/_sass/_type.scss +++ b/_sass/_type.scss @@ -7,7 +7,7 @@ body { color:$text-color; } -h1, h2, h3, nav, .version, .version-menu, .buttons { +h1, h2, h3, h4, h5, nav, .version, .version-menu, .buttons { font-family: Bitter, $font-family; line-height:1; } @@ -20,10 +20,6 @@ h2 { font-size:$font-size * 2; margin-top:$spacing-unit; - span { - color:#aaa; - } - &:first-child { margin-top:0; } @@ -33,40 +29,16 @@ h3 { font-size:$font-size * 1.2; } -h4 { - font-weight:500; - color:#999; -} - -h5 { - border-bottom:1px solid #ededed; - padding:0 0 $spacing-unit/4; - margin:0 0 $spacing-unit/3; -} - .version, .version-menu { font-size:$font-size*0.8; } -strong { - font-weight:bold; - color:#222; -} - a { text-decoration:none; color:$key-color; - span { - color:#aaa; - } - &:hover { color:darken($key-color, 20%); - - span { - color:#727272; - } } } diff --git a/css/main.scss b/css/main.scss index 2901040..dd59bb0 100755 --- a/css/main.scss +++ b/css/main.scss @@ -7,8 +7,8 @@ $font-family: "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; $font-size: 16px; $line-height: 1.5; $spacing-unit: 30px; -$headline-color: #222; -$text-color: #555; +$headline-color: #444; +$text-color: #727272; $key-color: #F1595F; // Import partials from `sass_dir` (defaults to `_sass`) diff --git a/generate/index.js b/generate/index.js deleted file mode 100644 index c4570de..0000000 --- a/generate/index.js +++ /dev/null @@ -1,13 +0,0 @@ -var generatedData = require('./lib/generated_data'); -var writeApiDocs = require('./lib/write_api_docs'); -var addConvenienceMethods = require('./lib/add_convenience_methods.js'); - -var idefsPath = 'generate/nodegit/generate/output/idefs.json'; -var missingtestsPath = 'generate/nodegit/generate/output/missing-tests.json' - -var baseData = generatedData(idefsPath, missingtestsPath); -var fullData; - -addConvenienceMethods(baseData).then(function(fullData) { - writeApiDocs(fullData); -}); diff --git a/generate/lib/add_convenience_methods.js b/generate/lib/add_convenience_methods.js deleted file mode 100644 index 0c31b01..0000000 --- a/generate/lib/add_convenience_methods.js +++ /dev/null @@ -1,62 +0,0 @@ -var dox = require('dox'); -var Promise = require('bluebird'); -var fs = require('fs-extra'); -var dive = Promise.promisify(require('dive')); -var changeCase = require('change-case'); -var Path = require('path'); -var setDocDefaults = require('./set_doc_defaults'); - -var addConvenienceMethods = function(apiData) { - return dive('generate/nodegit/lib', {recursive:false}, function(err, path) { - var code = fs.readFileSync(path).toString(); - var className = changeCase.pascalCase(Path.basename(path, '.js')); - dox.parseComments(code, {raw: true}).forEach(function(doc) { - - if (!doc.ctx) return; - - var data = { - params: [], - return: null, - isAsync: false, - description: doc.description.full - } - - doc.tags.forEach(function(tag) { - switch(tag.type) { - case 'param': - data.params.push({ - "name": tag.name, - "types": tag.types, - "description": tag.description, - "optional": tag.optional - }); - break; - case 'return': - data.return = { - name: tag.name, - type: tag.types[0], - description: tag.description || null - }; - break; - case 'isAsync': - if (tag.value == 'true') { - data.isAsync = true; - } - break; - } - }); - - if (doc.ctx.constructor == className) { - var obj = setDocDefaults(apiData, className); - apiData[className].prototypes[doc.ctx.name] = data; - } else if (doc.ctx.receiver == className) { - var obj = setDocDefaults(apiData, className); - apiData[className].constructors[doc.ctx.name] = data; - } - }); - }).then(function() { - return apiData; - }); -} - -module.exports = addConvenienceMethods; diff --git a/generate/lib/generated_data.js b/generate/lib/generated_data.js deleted file mode 100644 index 6243b32..0000000 --- a/generate/lib/generated_data.js +++ /dev/null @@ -1,102 +0,0 @@ -var fs = require('fs-extra'); -var setDocDefaults = require('./set_doc_defaults'); -var changeCase = require('change-case'); - -var removePointerReferences = function(text) { - if (!text) return ''; - text = text.replace(/a pointer to /ig, ''); - text = text.replace(/pointer where to store /ig, ''); - return text -} - -var sanitizeArgName = function(className, comment) { - var argName = changeCase.camelCase(className); - if (argName == 'number') { - argName = 'result'; - } - - return argName; -} - -var generatedData = function(path, missingTestsPath) { - var apiData = {}; - var generatedJSON = fs.readJsonSync(path); - - if (missingTestsPath) { - var missingTests = fs.readJsonSync(missingTestsPath); - } - - generatedJSON.forEach(function(item) { - switch (item.type) { - case 'class': - case 'struct': - var obj = setDocDefaults(apiData, item.jsClassName); - obj.type = item.type - obj.hasConstructor = item.hasConstructor || false - - item.functions.forEach(function(func) { - data = { - params: [], - return: { - type: func.return.jsClassName, - name: sanitizeArgName(func.return.jsClassName, func.return.comment), - description: removePointerReferences(func.return.comment) - }, - isAsync: func.isAsync, - description: "", - experimental: false - } - - if (missingTests) { - if (missingTests[item.filename].testFileMissing === false) { - data.experimental = true; - } else { - if (missingTests[item.filename].functions.indexOf(item.jsClassName) != -1) { - data.experimental = true; - } - } - } - - func.args.forEach(function(arg) { - if (arg.isReturn) { - data.return = { - name: sanitizeArgName(arg.jsClassName, arg.comment), - type: arg.jsClassName, - description: removePointerReferences(arg.comment) - }; - } else if (!arg.ignore && !arg.isSelf) { - data.params.push({ - "name": arg.name, - "types": [arg.jsClassName], - "description": arg.comment, - "optional": arg.isOptional || false - }); - } - }); - - if (func.isPrototypeMethod) { - obj.prototypes[func.jsFunctionName] = data - } else if (func.isConstructorMethod) { - obj.constructors[func.jsFunctionName] = data - } - }); - - item.fields.forEach(function(field) { - obj.fields[field.name] = field.jsClassName; - }); - break; - case 'enum': - obj = setDocDefaults(apiData, item.owner); - - var list = obj.enums[item.JsName] = {} - item.values.forEach(function(value) { - list[value.JsName] = value.value; - }); - break; - } - }); - - return apiData; -} - -module.exports = generatedData; diff --git a/generate/lib/set_doc_defaults.js b/generate/lib/set_doc_defaults.js deleted file mode 100644 index 15c6f30..0000000 --- a/generate/lib/set_doc_defaults.js +++ /dev/null @@ -1,14 +0,0 @@ -var setDocDefaults = function(apiData, className) { - if (!apiData[className]) { - apiData[className] = { - constructors:{}, - prototypes:{}, - fields:{}, - enums:{} - }; - } - - return apiData[className]; -} - -module.exports = setDocDefaults; diff --git a/generate/lib/write_api_docs.js b/generate/lib/write_api_docs.js deleted file mode 100644 index bb9eeb9..0000000 --- a/generate/lib/write_api_docs.js +++ /dev/null @@ -1,274 +0,0 @@ -var fs = require('fs-extra'); -var Path = require('path'); -var changeCase = require('change-case'); - -var writeApiDocs = function(apiData, path) { - var path = path || ''; - path = ("/" + path + "/").replace(/\/+/g, '/'); - - fs.removeSync(Path.join(process.cwd(), path, 'api')); - - var homeBody = ""; - var homeSections = ""; - - var linkToEntry = function(name, file, hash) { - if (hash) { - hash = "#" + hash; - } else { - hash = '' - } - - return "[" + name + "](" + path + "api/" + changeCase.snakeCase(file) + "/" + hash + ")"; - } - - var crossLink = function(text) { - if (apiData[text]) { - return "[" + text + "](" + path + "api/" + changeCase.snakeCase(text) + "/)"; - } else { - return text; - } - } - - Object.keys(apiData).sort().forEach(function(item) { - var data = apiData[item]; - var pageBody = ""; - var pageSections = ""; - - if (Object.keys(data.constructors).length || Object.keys(data.prototypes).length || - Object.keys(data.fields).length || Object.keys(data.enums).length) { - homeBody += "## " + linkToEntry(item, item) + "\n\n"; - homeSections += ' "' + item + '": "#' + item + '"\n'; - - if (data.hasConstructor) { - pageBody += "```js\n"; - pageBody += "var " + changeCase.camelCase(item) + " = new " + item + "();\n"; - pageBody += "```\n\n"; - } - } - - if (Object.keys(data.constructors).length) { - homeBody += "| Class Methods | |\n"; - homeBody += "| --- | ---: |\n"; - Object.keys(data.constructors).sort().forEach(function(obj) { - var fdata = data.constructors[obj]; - var method = "" + item + "." + obj + " (" + data.constructors[obj].params.map(function(param) {return param.name;}).join(', ') + ")" - - pageBody += "## " + "" + item + "." + obj; - - var tags = " "; - if (fdata.isAsync) { - tags += "Async"; - } else { - tags += "Sync"; - } - if (fdata.experimental) { - tags += "Experimental"; - } - tags += "" - - homeBody += "| " + linkToEntry(method, item, obj) + " | " + tags + " |\n"; - - pageBody += tags + "\n\n"; - pageBody += "```js\n"; - - var returnName = null; - if (fdata.return && fdata.return.type && - fdata.return.name != 'undefined' && fdata.return.name != 'void') { - returnName = fdata.return.name; - } - - if (fdata.isAsync) { - returnName = returnName || 'data'; - pageBody += item + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) - .join(", ") + ").then(function(" + returnName + ") {\n"; - pageBody += " // Use " + returnName + "\n"; - pageBody += "});\n"; - } else { - if (returnName) { - pageBody += "var " + returnName + " = "; - } - pageBody += item + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) - .join(", ") + ");\n"; - } - pageBody += "```\n\n"; - - if (fdata.description) { - pageBody += fdata.description + "\n\n"; - } - - if (fdata.params.length) { - pageBody += "| Parameters | Type | |\n"; - pageBody += "| --- | --- | --- |\n"; - fdata.params.forEach(function(param) { - var types = param.types.map(function(type) { - return crossLink(type); - }); - - pageBody += "| " + param.name + " | " + types.join(', ') + " | " + - (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; - }); - } - - if (returnName) { - pageBody += "\n| Returns | |\n"; - pageBody += "| --- | --- |\n"; - pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; - } - - pageSections += ' "' + obj + '": "#' + obj + '"\n'; - }); - homeBody += "\n"; - } - - if (Object.keys(data.prototypes).length) { - homeBody += "| Instance Methods | |\n"; - homeBody += "| --- | ---: |\n"; - Object.keys(data.prototypes).sort().forEach(function(obj) { - var fdata = data.prototypes[obj]; - var method = "" + item + "#" + obj + " (" + data.prototypes[obj].params.map(function(param) {return param.name;}).join(', ') + ")" - - pageBody += "## " + "" + item + "#" + obj; - - var tags = " "; - if (fdata.isAsync) { - tags += "Async"; - } else { - tags += "Sync"; - } - if (fdata.experimental) { - tags += "Experimental"; - } - tags += "" - - pageBody += tags + "\n\n"; - pageBody += "```js\n"; - - homeBody += "| " + linkToEntry(method, item, obj) + " | " + tags + " |\n"; - - var returnName = null; - if (fdata.return && fdata.return.type && - fdata.return.name != 'undefined' && fdata.return.name != 'void') { - returnName = fdata.return.name; - } - - if (fdata.isAsync) { - returnName = returnName || 'data'; - pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) - .join(", ") + ").then(function(" + returnName + ") {\n"; - pageBody += " // Use " + returnName + "\n"; - pageBody += "});\n"; - } else { - if (returnName) { - pageBody += "var " + returnName + " = "; - } - pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) - .join(", ") + ");\n"; - } - pageBody += "```\n\n"; - - if (fdata.description) { - pageBody += fdata.description + "\n\n"; - } - - if (fdata.params.length) { - pageBody += "| Parameters | Type |\n"; - pageBody += "| --- | --- | --- |\n"; - fdata.params.forEach(function(param) { - var types = param.types.map(function(type) { - return crossLink(type); - }); - pageBody += "| " + param.name + " | " + types.join(', ') + " | " + - (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; - }); - } - - if (returnName) { - pageBody += "\n| Returns | |\n"; - pageBody += "| --- | --- |\n"; - pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; - } - - pageSections += ' "#' + obj + '": "#' + obj + '"\n'; - }); - homeBody += "\n"; - } - - if (Object.keys(data.enums).length) { - homeBody += "| ENUMS | |\n"; - homeBody += "| --- | ---: |\n"; - Object.keys(data.enums).sort().forEach(function(obj) { - homeBody += "| " + linkToEntry("" + item + "." + obj, item, obj) + "| |\n"; - - pageBody += "## " + "" + item + "." + obj; - pageBody += " "; - pageBody += "ENUM"; - pageBody += "\n\n"; - pageBody += "| Flag | Value |\n"; - pageBody += "| --- | --- | --- |\n"; - - Object.keys(data.enums[obj]).forEach(function(key) { - pageBody += "| " + item + "." + obj + "." + key + " | " + data.enums[obj][key] + " |\n" - }); - pageBody += "\n"; - pageSections += ' "' + obj + '": "#' + obj + '"\n'; - }); - homeBody += "\n"; - } - - if (Object.keys(data.fields).length) { - pageBody += "## Instance Variables\n\n"; - pageBody += "| Variable | Type |\n"; - pageBody += "| --- | --- |\n"; - - homeBody += "| Instance Variables | |\n"; - homeBody += "| --- | ---: |\n"; - - Object.keys(data.fields).sort().forEach(function(obj) { - homeBody += "| " + linkToEntry("" + item + "#" + obj, item, obj) + " | |\n"; - pageBody += "| " + obj + " | " + data.fields[obj] + " |\n"; - }); - - pageBody += "\n"; - homeBody += "\n"; - pageSections += ' "Instance Variables": "#ivars"\n'; - } - - homeBody += "\n" - - if (pageBody) { - var pageContent = "---\n"; - pageContent += "layout: default\n"; - pageContent += "menu_item: api\n"; - pageContent += "title: " + item + "\n"; - pageContent += "description: Version 0.3.0\n"; - pageContent += "menu_item: api\n"; - pageContent += "return_to:\n"; - pageContent += " \"API Documentation Index\": " + path + "api/\n"; - pageContent += "sections:\n"; - pageContent += pageSections; - pageContent += "---\n\n"; - pageContent += pageBody; - - console.log("- Writing " + item); - fs.outputFileSync('api/' + changeCase.snakeCase(item) + '/index.md', pageContent); - } - }); - - var homeContent = "---\n"; - homeContent += "layout: default\n"; - homeContent += "menu_item: api\n"; - homeContent += "title: API Docs\n"; - homeContent += "description: Version 0.3.0\n"; - homeContent += "menu_item: api\n"; - homeContent += "sections:\n"; - homeContent += homeSections; - homeContent += "---\n\n"; - homeContent += homeBody; - - console.log("- Writing API Index") - fs.outputFileSync('.' + path + 'api/index.md', homeContent); - - -} - -module.exports = writeApiDocs; diff --git a/package.json b/package.json deleted file mode 100644 index d910543..0000000 --- a/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "nodegit.github.com", - "version": "1.0.0", - "description": "The nodegit.org website generator", - "main": "index.js", - "dependencies": { - "bluebird": "^2.9.12", - "change-case": "^2.2.0", - "dive": "^0.4.0", - "dox": "^0.6.1", - "fs-extra": "^0.16.3", - "lodash": "^3.3.0" - }, - "devDependencies": {}, - "repository": { - "type": "git", - "url": "https://github.com/nodegit/nodegit.github.com" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/nodegit/nodegit.github.com/issues" - }, - "homepage": "https://github.com/nodegit/nodegit.github.com" -} From 58d2300200fcc17fd7599bdf264cd45bd3cd1f32 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Sun, 22 Feb 2015 13:19:35 -0500 Subject: [PATCH 09/24] Add initial generated markdown for API --- .gitignore | 2 + README.md | 17 + _config.yml | 2 + _includes/header.html | 6 +- _layouts/default.html | 5 + _sass/_layout.scss | 97 +- _sass/_type.scss | 30 +- api/attr/index.md | 21 + api/blame/index.md | 102 ++ api/blame_hunk/index.md | 25 + api/blame_options/index.md | 28 + api/blob/index.md | 135 +++ api/branch/index.md | 20 + api/buf/index.md | 79 ++ api/cert/index.md | 34 + api/cert_hostkey/index.md | 21 + api/cert_x509/index.md | 20 + api/checkout/index.md | 79 ++ api/checkout_options/index.md | 38 + api/cherrypick_options/index.md | 25 + api/clone/index.md | 36 + api/clone_options/index.md | 30 + api/commit/index.md | 366 ++++++ api/config/index.md | 86 ++ api/config_entry/index.md | 20 + api/convenient_hunk/index.md | 39 + api/convenient_patch/index.md | 137 +++ api/cred/index.md | 113 ++ api/cred_username/index.md | 19 + api/cred_userpass_payload/index.md | 19 + api/cvar_map/index.md | 20 + api/describe_format_options/index.md | 21 + api/describe_options/index.md | 23 + api/diff/index.md | 285 +++++ api/diff_delta/index.md | 23 + api/diff_file/index.md | 22 + api/diff_hunk/index.md | 23 + api/diff_line/index.md | 24 + api/diff_options/index.md | 33 + api/diff_perfdata/index.md | 20 + api/enums/index.md | 66 + api/error/index.md | 82 ++ api/filter/index.md | 70 ++ api/hashsig/index.md | 71 ++ api/index.md | 1480 +++++++++++++++++++++++ api/index/index.md | 371 ++++++ api/index_entry/index.md | 29 + api/index_time/index.md | 19 + api/indexer/index.md | 38 + api/libgit_2/index.md | 30 + api/merge/index.md | 74 ++ api/merge_file_input/index.md | 26 + api/merge_file_options/index.md | 27 + api/merge_file_result/index.md | 22 + api/merge_options/index.md | 26 + api/note/index.md | 78 ++ api/object/index.md | 166 +++ api/odb/index.md | 89 ++ api/odb_object/index.md | 73 ++ api/oid/index.md | 126 ++ api/oidarray/index.md | 19 + api/packbuilder/index.md | 116 ++ api/patch/index.md | 157 +++ api/pathspec/index.md | 112 ++ api/push_options/index.md | 23 + api/rebase/index.md | 143 +++ api/rebase_operation/index.md | 32 + api/rebase_options/index.md | 24 + api/refdb/index.md | 41 + api/reference/index.md | 443 +++++++ api/reflog/index.md | 102 ++ api/refspec/index.md | 89 ++ api/remote/index.md | 540 +++++++++ api/remote_callbacks/index.md | 25 + api/repository/index.md | 618 ++++++++++ api/repository_init_options/index.md | 29 + api/reset/index.md | 20 + api/revert_options/index.md | 25 + api/revparse/index.md | 20 + api/revwalk/index.md | 261 ++++ api/signature/index.md | 93 ++ api/stash/index.md | 21 + api/status/index.md | 61 + api/status_list/index.md | 53 + api/status_options/index.md | 25 + api/strarray/index.md | 33 + api/submodule/index.md | 440 +++++++ api/submodule_update_options/index.md | 22 + api/tag/index.md | 155 +++ api/time/index.md | 19 + api/trace/index.md | 24 + api/transfer_progress/index.md | 24 + api/transport/index.md | 51 + api/tree/index.md | 229 ++++ api/tree_entry/index.md | 114 ++ api/treebuilder/index.md | 112 ++ css/main.scss | 4 +- generate/index.js | 13 + generate/lib/add_convenience_methods.js | 62 + generate/lib/generated_data.js | 102 ++ generate/lib/set_doc_defaults.js | 14 + generate/lib/write_api_docs.js | 274 +++++ package.json | 25 + 103 files changed, 9909 insertions(+), 8 deletions(-) create mode 100644 api/attr/index.md create mode 100644 api/blame/index.md create mode 100644 api/blame_hunk/index.md create mode 100644 api/blame_options/index.md create mode 100644 api/blob/index.md create mode 100644 api/branch/index.md create mode 100644 api/buf/index.md create mode 100644 api/cert/index.md create mode 100644 api/cert_hostkey/index.md create mode 100644 api/cert_x509/index.md create mode 100644 api/checkout/index.md create mode 100644 api/checkout_options/index.md create mode 100644 api/cherrypick_options/index.md create mode 100644 api/clone/index.md create mode 100644 api/clone_options/index.md create mode 100644 api/commit/index.md create mode 100644 api/config/index.md create mode 100644 api/config_entry/index.md create mode 100644 api/convenient_hunk/index.md create mode 100644 api/convenient_patch/index.md create mode 100644 api/cred/index.md create mode 100644 api/cred_username/index.md create mode 100644 api/cred_userpass_payload/index.md create mode 100644 api/cvar_map/index.md create mode 100644 api/describe_format_options/index.md create mode 100644 api/describe_options/index.md create mode 100644 api/diff/index.md create mode 100644 api/diff_delta/index.md create mode 100644 api/diff_file/index.md create mode 100644 api/diff_hunk/index.md create mode 100644 api/diff_line/index.md create mode 100644 api/diff_options/index.md create mode 100644 api/diff_perfdata/index.md create mode 100644 api/enums/index.md create mode 100644 api/error/index.md create mode 100644 api/filter/index.md create mode 100644 api/hashsig/index.md create mode 100644 api/index.md create mode 100644 api/index/index.md create mode 100644 api/index_entry/index.md create mode 100644 api/index_time/index.md create mode 100644 api/indexer/index.md create mode 100644 api/libgit_2/index.md create mode 100644 api/merge/index.md create mode 100644 api/merge_file_input/index.md create mode 100644 api/merge_file_options/index.md create mode 100644 api/merge_file_result/index.md create mode 100644 api/merge_options/index.md create mode 100644 api/note/index.md create mode 100644 api/object/index.md create mode 100644 api/odb/index.md create mode 100644 api/odb_object/index.md create mode 100644 api/oid/index.md create mode 100644 api/oidarray/index.md create mode 100644 api/packbuilder/index.md create mode 100644 api/patch/index.md create mode 100644 api/pathspec/index.md create mode 100644 api/push_options/index.md create mode 100644 api/rebase/index.md create mode 100644 api/rebase_operation/index.md create mode 100644 api/rebase_options/index.md create mode 100644 api/refdb/index.md create mode 100644 api/reference/index.md create mode 100644 api/reflog/index.md create mode 100644 api/refspec/index.md create mode 100644 api/remote/index.md create mode 100644 api/remote_callbacks/index.md create mode 100644 api/repository/index.md create mode 100644 api/repository_init_options/index.md create mode 100644 api/reset/index.md create mode 100644 api/revert_options/index.md create mode 100644 api/revparse/index.md create mode 100644 api/revwalk/index.md create mode 100644 api/signature/index.md create mode 100644 api/stash/index.md create mode 100644 api/status/index.md create mode 100644 api/status_list/index.md create mode 100644 api/status_options/index.md create mode 100644 api/strarray/index.md create mode 100644 api/submodule/index.md create mode 100644 api/submodule_update_options/index.md create mode 100644 api/tag/index.md create mode 100644 api/time/index.md create mode 100644 api/trace/index.md create mode 100644 api/transfer_progress/index.md create mode 100644 api/transport/index.md create mode 100644 api/tree/index.md create mode 100644 api/tree_entry/index.md create mode 100644 api/treebuilder/index.md create mode 100644 generate/index.js create mode 100644 generate/lib/add_convenience_methods.js create mode 100644 generate/lib/generated_data.js create mode 100644 generate/lib/set_doc_defaults.js create mode 100644 generate/lib/write_api_docs.js create mode 100644 package.json diff --git a/.gitignore b/.gitignore index badbc02..dcd4928 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ _site .sass-cache +generate/nodegit +node_modules/ diff --git a/README.md b/README.md index 5c4cb0a..614d656 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ `script/bootstrap` `script/server` +`open http://localhost:4000` + +## Generating the site + +While in development, the generator will not clone the nodegit repo. You'll need to soft-link the nodegit repository into `generate/`. + +```bash +ln -s /path/to/nodegit generate/nodegit +``` + +Once linked, generate the site. + +```bash +node generate +``` + +If you're running `script/server` in another terminal tab, it will read the changes and regenerate the site. diff --git a/_config.yml b/_config.yml index 4fa3322..12ffa8e 100644 --- a/_config.yml +++ b/_config.yml @@ -10,6 +10,8 @@ other_nodegit_versions: # Build settings markdown: redcarpet +redcarpet: + extensions: [tables, no_intra_emphasis, autolink] highlighter: pygments permalink: pretty exclude: ["node_modules","generate","package.json","README.md"] diff --git a/_includes/header.html b/_includes/header.html index 5d1f389..25b0eb6 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -23,10 +23,10 @@

        diff --git a/_layouts/default.html b/_layouts/default.html index c8074a4..aa63145 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -10,6 +10,11 @@
        + {% if page.return_to %} + {% for section_hash in page.return_to %} +
        {{section_hash[0]}}
        + {% endfor %} + {% endif %}
          {% for section_hash in page.sections %}
        • {{section_hash[0]}}
        • diff --git a/_sass/_layout.scss b/_sass/_layout.scss index d015807..3941e34 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -3,13 +3,17 @@ /** * Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, h4, h5, h6, +h1, h2, h3, p, blockquote, pre, ul, ol, dl, figure, .highlight %vertical-rhythm { margin-bottom: $spacing-unit / 2; } +html, body { + background:#fff; +} + body { padding:0 $spacing-unit $spacing-unit; } @@ -25,6 +29,7 @@ body { header { display:block; + background:#fff; overflow:hidden; .site-info { @@ -212,15 +217,103 @@ header { .outline { float:right; - width:180px; + width:220px; padding:0 0 0 $spacing-unit; font-size:$font-size * 0.9; display:block; + + ul { + border:none; + } } .main { overflow:hidden; width:auto; + + table { + a { + color:$text-color; + font-weight:500; + + span { + font-weight:normal; + } + + &:hover { + color:$headline-color; + } + } + + .tags { + position:relative; + top:-2px; + right:-12px; + + span { + padding-top:2px; + padding-bottom:2px; + } + } + } + } +} + +span.tags { + margin:0 0 0 6px; + position:relative; + top:-0.23em; + + span { + font-size:12px; + display:inline-block; + padding:6px 8px; + border-radius:3px; + text-transform:uppercase; + color:#fff; + margin:0 8px 0 0; + font-family:$font-family; + font-weight:500; + + &.enum { + background:#92D4D3; + } + + &.sync { + background:#FD8487; + } + + &.async { + background:#77D971; + } + + &.experimental { + background:#FFBB85; + } + } +} + +table { + border-collapse:collapse; + width:100%; + margin:0 0 $spacing-unit/2; + + th { + font-weight:500; + color:#aaa; + } + + td { + border-top:1px solid #ededed; + } + + th, td { + padding:8px $spacing-unit/2; + text-align:left; + + span { + color:#aaa; + } } } diff --git a/_sass/_type.scss b/_sass/_type.scss index d0ace82..7c25119 100644 --- a/_sass/_type.scss +++ b/_sass/_type.scss @@ -7,7 +7,7 @@ body { color:$text-color; } -h1, h2, h3, h4, h5, nav, .version, .version-menu, .buttons { +h1, h2, h3, nav, .version, .version-menu, .buttons { font-family: Bitter, $font-family; line-height:1; } @@ -20,6 +20,10 @@ h2 { font-size:$font-size * 2; margin-top:$spacing-unit; + span { + color:#aaa; + } + &:first-child { margin-top:0; } @@ -29,16 +33,40 @@ h3 { font-size:$font-size * 1.2; } +h4 { + font-weight:500; + color:#999; +} + +h5 { + border-bottom:1px solid #ededed; + padding:0 0 $spacing-unit/4; + margin:0 0 $spacing-unit/3; +} + .version, .version-menu { font-size:$font-size*0.8; } +strong { + font-weight:bold; + color:#222; +} + a { text-decoration:none; color:$key-color; + span { + color:#aaa; + } + &:hover { color:darken($key-color, 20%); + + span { + color:#727272; + } } } diff --git a/api/attr/index.md b/api/attr/index.md new file mode 100644 index 0000000..509064b --- /dev/null +++ b/api/attr/index.md @@ -0,0 +1,21 @@ +--- +layout: default +menu_item: api +title: Attr +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "STATES": "#STATES" +--- + +## Attr.STATES ENUM + +| Flag | Value | +| --- | --- | --- | +| Attr.STATES.UNSPECIFIED_T | 0 | +| Attr.STATES.TRUE_T | 1 | +| Attr.STATES.FALSE_T | 2 | +| Attr.STATES.VALUE_T | 3 | + diff --git a/api/blame/index.md b/api/blame/index.md new file mode 100644 index 0000000..2893a43 --- /dev/null +++ b/api/blame/index.md @@ -0,0 +1,102 @@ +--- +layout: default +menu_item: api +title: Blame +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "file": "#file" + "#buffer": "#buffer" + "#getHunkByIndex": "#getHunkByIndex" + "#getHunkByLine": "#getHunkByLine" + "#getHunkCount": "#getHunkCount" + "FLAG": "#FLAG" +--- + +## Blame.file AsyncExperimental + +```js +Blame.file(repo, path, options).then(function(blame) { + // Use blame +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository whose history is to be walked | +| path | String | path to file to consider | +| options | [BlameOptions](/api/blame_options/) | options for the blame operation. If NULL, this is treated as though GIT_BLAME_OPTIONS_INIT were passed. | + +| Returns | | +| --- | --- | +| [Blame](/api/blame/) | pointer that will receive the blame object | + +## Blame#buffer AsyncExperimental + +```js +blame.buffer(buffer, buffer_len).then(function(blame) { + // Use blame +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| buffer | String | the (possibly) modified contents of the file | +| buffer_len | Number | number of valid bytes in the buffer | + +| Returns | | +| --- | --- | +| [Blame](/api/blame/) | pointer that will receive the resulting blame data | + +## Blame#getHunkByIndex SyncExperimental + +```js +var blameHunk = blame.getHunkByIndex(index); +``` + +| Parameters | Type | +| --- | --- | --- | +| index | Number | index of the hunk to retrieve | + +| Returns | | +| --- | --- | +| [BlameHunk](/api/blame_hunk/) | the hunk at the given index, or NULL on error | + +## Blame#getHunkByLine SyncExperimental + +```js +var blameHunk = blame.getHunkByLine(lineno); +``` + +| Parameters | Type | +| --- | --- | --- | +| lineno | Number | the (1-based) line number to find a hunk for | + +| Returns | | +| --- | --- | +| [BlameHunk](/api/blame_hunk/) | the hunk that contains the given line, or NULL on error | + +## Blame#getHunkCount SyncExperimental + +```js +var result = blame.getHunkCount(); +``` + + +| Returns | | +| --- | --- | +| Number | | + +## Blame.FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Blame.FLAG.NORMAL | 0 | +| Blame.FLAG.TRACK_COPIES_SAME_FILE | 1 | +| Blame.FLAG.TRACK_COPIES_SAME_COMMIT_MOVES | 2 | +| Blame.FLAG.TRACK_COPIES_SAME_COMMIT_COPIES | 4 | +| Blame.FLAG.TRACK_COPIES_ANY_COMMIT_COPIES | 8 | +| Blame.FLAG.FIRST_PARENT | 16 | + diff --git a/api/blame_hunk/index.md b/api/blame_hunk/index.md new file mode 100644 index 0000000..21b9c1f --- /dev/null +++ b/api/blame_hunk/index.md @@ -0,0 +1,25 @@ +--- +layout: default +menu_item: api +title: BlameHunk +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| final_commit_id | Oid | +| final_signature | Signature | +| final_start_line_number | Number | +| lines_in_hunk | Number | +| orig_commit_id | Oid | +| orig_path | String | +| orig_signature | Signature | +| orig_start_line_number | Number | + diff --git a/api/blame_options/index.md b/api/blame_options/index.md new file mode 100644 index 0000000..c6019c6 --- /dev/null +++ b/api/blame_options/index.md @@ -0,0 +1,28 @@ +--- +layout: default +menu_item: api +title: BlameOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var blameOptions = new BlameOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| flags | Number | +| max_line | Number | +| min_line | Number | +| min_match_characters | Number | +| newest_commit | Oid | +| oldest_commit | Oid | +| version | Number | + diff --git a/api/blob/index.md b/api/blob/index.md new file mode 100644 index 0000000..8aa9545 --- /dev/null +++ b/api/blob/index.md @@ -0,0 +1,135 @@ +--- +layout: default +menu_item: api +title: Blob +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "lookup": "#lookup" + "lookupPrefix": "#lookupPrefix" + "#content": "#content" + "#filemode": "#filemode" + "#id": "#id" + "#isBinary": "#isBinary" + "#owner": "#owner" + "#rawcontent": "#rawcontent" + "#rawsize": "#rawsize" + "#toString": "#toString" +--- + +## Blob.lookup Sync + +```js +Blob.lookup(repo, id, callback); +``` + +Retrieves the blob pointed to by the oid + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the blob lives in | +| id | String, [Oid](/api/oid/), [Blob](/api/blob/) | The blob to lookup | +| callback | Function | | +## Blob.lookupPrefix Async + +```js +Blob.lookupPrefix(repo, id, len).then(function(blob) { + // Use blob +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repo to use when locating the blob. | +| id | [Oid](/api/oid/) | identity of the blob to locate. | +| len | Number | the length of the short identifier | + +| Returns | | +| --- | --- | +| [Blob](/api/blob/) | pointer to the looked up blob | + +## Blob#content Sync + +```js +blob.content(); +``` + +Retrieve the content of the Blob. + + +## Blob#filemode Sync + +```js +blob.filemode(); +``` + +Retrieve the Blob's type. + + +## Blob#id Sync + +```js +var oid = blob.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | SHA1 hash for this blob. | + +## Blob#isBinary Sync + +```js +var result = blob.isBinary(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if the content of the blob is detected + as binary; 0 otherwise. | + +## Blob#owner Sync + +```js +var repository = blob.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Repository that contains this blob. | + +## Blob#rawcontent Sync + +```js +var buffer = blob.rawcontent(); +``` + + +| Returns | | +| --- | --- | +| Buffer | the pointer | + +## Blob#rawsize Sync + +```js +var result = blob.rawsize(); +``` + + +| Returns | | +| --- | --- | +| Number | size on bytes | + +## Blob#toString Sync + +```js +blob.toString(); +``` + +Retrieve the Blob's content as String. + + diff --git a/api/branch/index.md b/api/branch/index.md new file mode 100644 index 0000000..29f9b6e --- /dev/null +++ b/api/branch/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: Branch +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "BRANCH": "#BRANCH" +--- + +## Branch.BRANCH ENUM + +| Flag | Value | +| --- | --- | --- | +| Branch.BRANCH.LOCAL | 1 | +| Branch.BRANCH.REMOTE | 2 | +| Branch.BRANCH.ALL | 3 | + diff --git a/api/buf/index.md b/api/buf/index.md new file mode 100644 index 0000000..f543090 --- /dev/null +++ b/api/buf/index.md @@ -0,0 +1,79 @@ +--- +layout: default +menu_item: api +title: Buf +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#containsNul": "#containsNul" + "#grow": "#grow" + "#isBinary": "#isBinary" + "#set": "#set" + "Instance Variables": "#ivars" +--- + +## Buf#containsNul SyncExperimental + +```js +var result = buf.containsNul(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if buffer contains a NUL byte | + +## Buf#grow AsyncExperimental + +```js +buf.grow(target_size).then(function(buf) { + // Use buf +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| target_size | Number | The desired available size | + +| Returns | | +| --- | --- | +| [Buf](/api/buf/) | The buffer to be resized; may or may not be allocated yet | + +## Buf#isBinary SyncExperimental + +```js +var result = buf.isBinary(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if buffer looks like non-text data | + +## Buf#set AsyncExperimental + +```js +buf.set(data, datalen).then(function(buf) { + // Use buf +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| data | Buffer | The data to copy into the buffer | +| datalen | Number | The length of the data to copy into the buffer | + +| Returns | | +| --- | --- | +| [Buf](/api/buf/) | The buffer to set | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| asize | Number | +| ptr | String | +| size | Number | + diff --git a/api/cert/index.md b/api/cert/index.md new file mode 100644 index 0000000..2a974dd --- /dev/null +++ b/api/cert/index.md @@ -0,0 +1,34 @@ +--- +layout: default +menu_item: api +title: Cert +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "SSH": "#SSH" + "TYPE": "#TYPE" + "Instance Variables": "#ivars" +--- + +## Cert.SSH ENUM + +| Flag | Value | +| --- | --- | --- | +| Cert.SSH.MD5 | 1 | +| Cert.SSH.SHA1 | 2 | + +## Cert.TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Cert.TYPE.X509 | 0 | +| Cert.TYPE.HOSTKEY_LIBSSH2 | 1 | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| cert_type | Number | + diff --git a/api/cert_hostkey/index.md b/api/cert_hostkey/index.md new file mode 100644 index 0000000..4f37bf7 --- /dev/null +++ b/api/cert_hostkey/index.md @@ -0,0 +1,21 @@ +--- +layout: default +menu_item: api +title: CertHostkey +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| cert_type | Number | +| hash_md5 | Char [16] | +| hash_sha1 | Char [20] | +| type | Number | + diff --git a/api/cert_x509/index.md b/api/cert_x509/index.md new file mode 100644 index 0000000..ab28564 --- /dev/null +++ b/api/cert_x509/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: CertX509 +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| cert_type | Number | +| data | Buffer | +| len | Number | + diff --git a/api/checkout/index.md b/api/checkout/index.md new file mode 100644 index 0000000..92ba1e8 --- /dev/null +++ b/api/checkout/index.md @@ -0,0 +1,79 @@ +--- +layout: default +menu_item: api +title: Checkout +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "head": "#head" + "tree": "#tree" + "NOTIFY": "#NOTIFY" + "STRATEGY": "#STRATEGY" +--- + +## Checkout.head Sync + +```js +Checkout.head(, ); +``` + +Patch head checkout to automatically coerce objects. + + +| Parameters | Type | | +| --- | --- | --- | +| | r | | +| | ption | | +## Checkout.tree Sync + +```js +Checkout.tree(, , ); +``` + +Patch tree checkout to automatically coerce objects. + + +| Parameters | Type | | +| --- | --- | --- | +| | ep | | +| | reeis | | +| | ption | | +## Checkout.NOTIFY ENUM + +| Flag | Value | +| --- | --- | --- | +| Checkout.NOTIFY.NONE | 0 | +| Checkout.NOTIFY.CONFLICT | 1 | +| Checkout.NOTIFY.DIRTY | 2 | +| Checkout.NOTIFY.UPDATED | 4 | +| Checkout.NOTIFY.UNTRACKED | 8 | +| Checkout.NOTIFY.IGNORED | 16 | +| Checkout.NOTIFY.ALL | 65535 | + +## Checkout.STRATEGY ENUM + +| Flag | Value | +| --- | --- | --- | +| Checkout.STRATEGY.NONE | 0 | +| Checkout.STRATEGY.SAFE | 1 | +| Checkout.STRATEGY.SAFE_CREATE | 2 | +| Checkout.STRATEGY.FORCE | 4 | +| Checkout.STRATEGY.ALLOW_CONFLICTS | 16 | +| Checkout.STRATEGY.REMOVE_UNTRACKED | 32 | +| Checkout.STRATEGY.REMOVE_IGNORED | 64 | +| Checkout.STRATEGY.UPDATE_ONLY | 128 | +| Checkout.STRATEGY.DONT_UPDATE_INDEX | 256 | +| Checkout.STRATEGY.NO_REFRESH | 512 | +| Checkout.STRATEGY.SKIP_UNMERGED | 1024 | +| Checkout.STRATEGY.USE_OURS | 2048 | +| Checkout.STRATEGY.USE_THEIRS | 4096 | +| Checkout.STRATEGY.DISABLE_PATHSPEC_MATCH | 8192 | +| Checkout.STRATEGY.SKIP_LOCKED_DIRECTORIES | 262144 | +| Checkout.STRATEGY.DONT_OVERWRITE_IGNORED | 524288 | +| Checkout.STRATEGY.CONFLICT_STYLE_MERGE | 1048576 | +| Checkout.STRATEGY.CONFLICT_STYLE_DIFF3 | 2097152 | +| Checkout.STRATEGY.UPDATE_SUBMODULES | 65536 | +| Checkout.STRATEGY.UPDATE_SUBMODULES_IF_CHANGED | 131072 | + diff --git a/api/checkout_options/index.md b/api/checkout_options/index.md new file mode 100644 index 0000000..7bd6894 --- /dev/null +++ b/api/checkout_options/index.md @@ -0,0 +1,38 @@ +--- +layout: default +menu_item: api +title: CheckoutOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var checkoutOptions = new CheckoutOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| ancestor_label | String | +| baseline | Tree | +| checkout_strategy | Number | +| dir_mode | Number | +| disable_filters | Number | +| file_mode | Number | +| file_open_flags | Number | +| notify_cb | CheckoutNotifyCb | +| notify_flags | Number | +| notify_payload | Void | +| our_label | String | +| paths | Strarray | +| progress_cb | CheckoutProgressCb | +| progress_payload | Void | +| target_directory | String | +| their_label | String | +| version | Number | + diff --git a/api/cherrypick_options/index.md b/api/cherrypick_options/index.md new file mode 100644 index 0000000..0ac11ec --- /dev/null +++ b/api/cherrypick_options/index.md @@ -0,0 +1,25 @@ +--- +layout: default +menu_item: api +title: CherrypickOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var cherrypickOptions = new CherrypickOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| checkout_opts | CheckoutOptions | +| mainline | Number | +| merge_opts | MergeOptions | +| version | Number | + diff --git a/api/clone/index.md b/api/clone/index.md new file mode 100644 index 0000000..9d1e855 --- /dev/null +++ b/api/clone/index.md @@ -0,0 +1,36 @@ +--- +layout: default +menu_item: api +title: Clone +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "clone": "#clone" + "LOCAL": "#LOCAL" +--- + +## Clone.clone Sync + +```js +Clone.clone(, , ); +``` + +Patch repository cloning to automatically coerce objects. + + +| Parameters | Type | | +| --- | --- | --- | +| | r | | +| | ocal_pat | | +| | ption | | +## Clone.LOCAL ENUM + +| Flag | Value | +| --- | --- | --- | +| Clone.LOCAL.AUTO | 0 | +| Clone.LOCAL.LOCAL | 1 | +| Clone.LOCAL.NO_LOCAL | 2 | +| Clone.LOCAL.NO_LINKS | 3 | + diff --git a/api/clone_options/index.md b/api/clone_options/index.md new file mode 100644 index 0000000..9520341 --- /dev/null +++ b/api/clone_options/index.md @@ -0,0 +1,30 @@ +--- +layout: default +menu_item: api +title: CloneOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var cloneOptions = new CloneOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| bare | Number | +| checkout_branch | String | +| checkout_opts | CheckoutOptions | +| local | Number | +| remote_callbacks | RemoteCallbacks | +| remote_cb_payload | Void | +| repository_cb_payload | Void | +| signature | Signature | +| version | Number | + diff --git a/api/commit/index.md b/api/commit/index.md new file mode 100644 index 0000000..e614ae4 --- /dev/null +++ b/api/commit/index.md @@ -0,0 +1,366 @@ +--- +layout: default +menu_item: api +title: Commit +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "lookup": "#lookup" + "lookupPrefix": "#lookupPrefix" + "#amend": "#amend" + "#author": "#author" + "#committer": "#committer" + "#date": "#date" + "#getEntry": "#getEntry" + "#getTree": "#getTree" + "#history": "#history" + "#id": "#id" + "#message": "#message" + "#messageEncoding": "#messageEncoding" + "#messageRaw": "#messageRaw" + "#nthGenAncestor": "#nthGenAncestor" + "#owner": "#owner" + "#parent": "#parent" + "#parentId": "#parentId" + "#parentcount": "#parentcount" + "#parents": "#parents" + "#rawHeader": "#rawHeader" + "#sha": "#sha" + "#summary": "#summary" + "#time": "#time" + "#timeMs": "#timeMs" + "#timeOffset": "#timeOffset" + "#tree": "#tree" + "#treeId": "#treeId" +--- + +## Commit.lookup Sync + +```js +Commit.lookup(repo, id, callback); +``` + +Retrieves the commit pointed to by the oid + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the commit lives in | +| id | String, [Oid](/api/oid/), [Commit](/api/commit/) | The commit to lookup | +| callback | Function | | +## Commit.lookupPrefix Async + +```js +Commit.lookupPrefix(repo, id, len).then(function(commit) { + // Use commit +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repo to use when locating the commit. | +| id | [Oid](/api/oid/) | identity of the commit to locate. If the object is an annotated tag it will be peeled back to the commit. | +| len | Number | the length of the short identifier | + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | pointer to the looked up commit | + +## Commit#amend Sync + +```js +var result = commit.amend(id, update_ref, author, committer, message_encoding, message, tree); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | | +| update_ref | String | | +| author | [Signature](/api/signature/) | | +| committer | [Signature](/api/signature/) | | +| message_encoding | String | | +| message | String | | +| tree | [Tree](/api/tree/) | | + +| Returns | | +| --- | --- | +| Number | | + +## Commit#author Sync + +```js +var signature = commit.author(); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the author of a commit | + +## Commit#committer Sync + +```js +var signature = commit.committer(); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the committer of a commit | + +## Commit#date Sync + +```js +commit.date(); +``` + +Retrieve the commit time as a Date object. + +## Commit#getEntry Sync + +```js +commit.getEntry(path, callback); +``` + +Retrieve the entry represented by path for this commit. +Path must be relative to repository root. + + +| Parameters | Type | +| --- | --- | --- | +| path | String | | +| callback | Function | | +## Commit#getTree Sync + +```js +commit.getTree(callback); +``` + +Get the tree associated with this commit. + + +| Parameters | Type | +| --- | --- | --- | +| callback | Function | | +## Commit#history Sync + +```js +commit.history(); +``` + +Walk the history from this commit backwards. +An EventEmitter is returned that will emit a "commit" event for each +commit in the history, and one "end" event when the walk is completed. +Don"t forget to call `start()` on the returned event. + + +## Commit#id Sync + +```js +var oid = commit.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | object identity for the commit. | + +## Commit#message Sync + +```js +var string = commit.message(); +``` + + +| Returns | | +| --- | --- | +| String | the message of a commit | + +## Commit#messageEncoding Sync + +```js +var string = commit.messageEncoding(); +``` + + +| Returns | | +| --- | --- | +| String | NULL, or the encoding | + +## Commit#messageRaw Sync + +```js +var string = commit.messageRaw(); +``` + + +| Returns | | +| --- | --- | +| String | the raw message of a commit | + +## Commit#nthGenAncestor Async + +```js +commit.nthGenAncestor(n).then(function(commit) { + // Use commit +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | the requested generation | + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | the ancestor commit | + +## Commit#owner Sync + +```js +var repository = commit.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Repository that contains this commit. | + +## Commit#parent Async + +```js +commit.parent(n).then(function(commit) { + // Use commit +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | the position of the parent (from 0 to `parentcount`) | + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | the parent commit | + +## Commit#parentId Sync + +```js +var oid = commit.parentId(n); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | the position of the parent (from 0 to `parentcount`) | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the id of the parent, NULL on error. | + +## Commit#parentcount Sync + +```js +var result = commit.parentcount(); +``` + + +| Returns | | +| --- | --- | +| Number | integer of count of parents | + +## Commit#parents Sync + +```js +commit.parents(callback); +``` + +Retrieve the commit"s parent shas. + + +| Parameters | Type | +| --- | --- | --- | +| callback | Function | | +## Commit#rawHeader Sync + +```js +var string = commit.rawHeader(); +``` + + +| Returns | | +| --- | --- | +| String | the header text of the commit | + +## Commit#sha Sync + +```js +commit.sha(); +``` + +Retrieve the SHA. + +## Commit#summary Sync + +```js +var string = commit.summary(); +``` + + +| Returns | | +| --- | --- | +| String | the summary of a commit or NULL on error | + +## Commit#time Sync + +```js +var result = commit.time(); +``` + + +| Returns | | +| --- | --- | +| Number | the time of a commit | + +## Commit#timeMs Sync + +```js +commit.timeMs(); +``` + +Retrieve the commit time as a unix timestamp. + +## Commit#timeOffset Sync + +```js +var result = commit.timeOffset(); +``` + + +| Returns | | +| --- | --- | +| Number | positive or negative timezone offset, in minutes from UTC | + +## Commit#tree Sync + +```js +var result = commit.tree(tree_out); +``` + +| Parameters | Type | +| --- | --- | --- | +| tree_out | [Tree](/api/tree/) | pointer where to store the tree object | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Commit#treeId Sync + +```js +var oid = commit.treeId(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the id of tree pointed to by commit. | + diff --git a/api/config/index.md b/api/config/index.md new file mode 100644 index 0000000..7239c5c --- /dev/null +++ b/api/config/index.md @@ -0,0 +1,86 @@ +--- +layout: default +menu_item: api +title: Config +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#setInt64": "#setInt64" + "#setMultivar": "#setMultivar" + "#setString": "#setString" + "#snapshot": "#snapshot" + "LEVEL": "#LEVEL" +--- + +## Config#setInt64 SyncExperimental + +```js +var result = config.setInt64(name, value); +``` + +| Parameters | Type | +| --- | --- | --- | +| name | String | the variable's name | +| value | Number | Long integer value for the variable | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Config#setMultivar SyncExperimental + +```js +var result = config.setMultivar(name, regexp, value); +``` + +| Parameters | Type | +| --- | --- | --- | +| name | String | the variable's name | +| regexp | String | a regular expression to indicate which values to replace | +| value | String | the new value. | + +| Returns | | +| --- | --- | +| Number | | + +## Config#setString SyncExperimental + +```js +var result = config.setString(name, value); +``` + +| Parameters | Type | +| --- | --- | --- | +| name | String | the variable's name | +| value | String | the string to store. | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Config#snapshot AsyncExperimental + +```js +config.snapshot().then(function(config) { + // Use config +}); +``` + + +| Returns | | +| --- | --- | +| [Config](/api/config/) | pointer in which to store the snapshot config object | + +## Config.LEVEL ENUM + +| Flag | Value | +| --- | --- | --- | +| Config.LEVEL.SYSTEM | 1 | +| Config.LEVEL.XDG | 2 | +| Config.LEVEL.GLOBAL | 3 | +| Config.LEVEL.LOCAL | 4 | +| Config.LEVEL.APP | 5 | +| Config.LEVEL.HIGHEST_LEVEL | -1 | + diff --git a/api/config_entry/index.md b/api/config_entry/index.md new file mode 100644 index 0000000..71e4c4b --- /dev/null +++ b/api/config_entry/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: ConfigEntry +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| level | Number | +| name | String | +| value | String | + diff --git a/api/convenient_hunk/index.md b/api/convenient_hunk/index.md new file mode 100644 index 0000000..1b9242a --- /dev/null +++ b/api/convenient_hunk/index.md @@ -0,0 +1,39 @@ +--- +layout: default +menu_item: api +title: ConvenientHunk +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#header": "#header" + "#lines": "#lines" + "#size": "#size" +--- + +## ConvenientHunk#header Sync + +```js +convenientHunk.header(); +``` + +Diff header string that represents the context of this hunk +of the diff. Something like `@@ -169,14 +167,12 @@ ...` + +## ConvenientHunk#lines Sync + +```js +convenientHunk.lines(); +``` + +The lines in this hunk + +## ConvenientHunk#size Sync + +```js +convenientHunk.size(); +``` + +Number of lines in this hunk + diff --git a/api/convenient_patch/index.md b/api/convenient_patch/index.md new file mode 100644 index 0000000..02ae80e --- /dev/null +++ b/api/convenient_patch/index.md @@ -0,0 +1,137 @@ +--- +layout: default +menu_item: api +title: ConvenientPatch +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#hunks": "#hunks" + "#isAdded": "#isAdded" + "#isCopied": "#isCopied" + "#isDeleted": "#isDeleted" + "#isIgnored": "#isIgnored" + "#isModified": "#isModified" + "#isRenamed": "#isRenamed" + "#isTypeChange": "#isTypeChange" + "#isUnmodified": "#isUnmodified" + "#isUntracked": "#isUntracked" + "#newFile": "#newFile" + "#oldFile": "#oldFile" + "#size": "#size" + "#status": "#status" +--- + +## ConvenientPatch#hunks Sync + +```js +convenientPatch.hunks(); +``` + +The hunks in this patch + +## ConvenientPatch#isAdded Sync + +```js +convenientPatch.isAdded(); +``` + +Is this an added patch? + +## ConvenientPatch#isCopied Sync + +```js +convenientPatch.isCopied(); +``` + +Is this a copied patch? + +## ConvenientPatch#isDeleted Sync + +```js +convenientPatch.isDeleted(); +``` + +Is this a deleted patch? + +## ConvenientPatch#isIgnored Sync + +```js +convenientPatch.isIgnored(); +``` + +Is this an ignored patch? + +## ConvenientPatch#isModified Sync + +```js +convenientPatch.isModified(); +``` + +Is this an modified patch? + +## ConvenientPatch#isRenamed Sync + +```js +convenientPatch.isRenamed(); +``` + +Is this a renamed patch? + +## ConvenientPatch#isTypeChange Sync + +```js +convenientPatch.isTypeChange(); +``` + +Is this a type change? + +## ConvenientPatch#isUnmodified Sync + +```js +convenientPatch.isUnmodified(); +``` + +Is this an unmodified patch? + +## ConvenientPatch#isUntracked Sync + +```js +convenientPatch.isUntracked(); +``` + +Is this an untracked patch? + +## ConvenientPatch#newFile Sync + +```js +convenientPatch.newFile(); +``` + +New name of the file + +## ConvenientPatch#oldFile Sync + +```js +convenientPatch.oldFile(); +``` + +Old name of the file + +## ConvenientPatch#size Sync + +```js +convenientPatch.size(); +``` + +The number of hunks in this patch + +## ConvenientPatch#status Sync + +```js +convenientPatch.status(); +``` + +The status of this patch (unmodified, added, deleted) + diff --git a/api/cred/index.md b/api/cred/index.md new file mode 100644 index 0000000..66b18f8 --- /dev/null +++ b/api/cred/index.md @@ -0,0 +1,113 @@ +--- +layout: default +menu_item: api +title: Cred +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "defaultNew": "#defaultNew" + "sshKeyFromAgent": "#sshKeyFromAgent" + "sshKeyNew": "#sshKeyNew" + "usernameNew": "#usernameNew" + "userpassPlaintextNew": "#userpassPlaintextNew" + "#hasUsername": "#hasUsername" + "TYPE": "#TYPE" +--- + +## Cred.defaultNew Sync + +```js +var cred = Cred.defaultNew(); +``` + + +| Returns | | +| --- | --- | +| [Cred](/api/cred/) | | + +## Cred.sshKeyFromAgent Sync + +```js +var cred = Cred.sshKeyFromAgent(username); +``` + +| Parameters | Type | | +| --- | --- | --- | +| username | String | username to use to authenticate | + +| Returns | | +| --- | --- | +| [Cred](/api/cred/) | The newly created credential object. | + +## Cred.sshKeyNew Sync + +```js +var cred = Cred.sshKeyNew(username, publickey, privatekey, passphrase); +``` + +| Parameters | Type | | +| --- | --- | --- | +| username | String | username to use to authenticate | +| publickey | String | The path to the public key of the credential. | +| privatekey | String | The path to the private key of the credential. | +| passphrase | String | The passphrase of the credential. | + +| Returns | | +| --- | --- | +| [Cred](/api/cred/) | The newly created credential object. | + +## Cred.usernameNew Async + +```js +Cred.usernameNew(username).then(function(cred) { + // Use cred +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| username | String | | + +| Returns | | +| --- | --- | +| [Cred](/api/cred/) | | + +## Cred.userpassPlaintextNew Sync + +```js +var cred = Cred.userpassPlaintextNew(username, password); +``` + +| Parameters | Type | | +| --- | --- | --- | +| username | String | The username of the credential. | +| password | String | The password of the credential. | + +| Returns | | +| --- | --- | +| [Cred](/api/cred/) | The newly created credential object. | + +## Cred#hasUsername Sync + +```js +var result = cred.hasUsername(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if the credential object has non-NULL username, 0 otherwise | + +## Cred.TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Cred.TYPE.USERPASS_PLAINTEXT | 1 | +| Cred.TYPE.SSH_KEY | 2 | +| Cred.TYPE.SSH_CUSTOM | 4 | +| Cred.TYPE.DEFAULT | 8 | +| Cred.TYPE.SSH_INTERACTIVE | 16 | +| Cred.TYPE.USERNAME | 32 | + diff --git a/api/cred_username/index.md b/api/cred_username/index.md new file mode 100644 index 0000000..4332194 --- /dev/null +++ b/api/cred_username/index.md @@ -0,0 +1,19 @@ +--- +layout: default +menu_item: api +title: CredUsername +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| parent | Cred | +| username | Char [1] | + diff --git a/api/cred_userpass_payload/index.md b/api/cred_userpass_payload/index.md new file mode 100644 index 0000000..3d94c7b --- /dev/null +++ b/api/cred_userpass_payload/index.md @@ -0,0 +1,19 @@ +--- +layout: default +menu_item: api +title: CredUserpassPayload +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| password | String | +| username | String | + diff --git a/api/cvar_map/index.md b/api/cvar_map/index.md new file mode 100644 index 0000000..f95deac --- /dev/null +++ b/api/cvar_map/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: CvarMap +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| cvar_type | Number | +| map_value | Number | +| str_match | String | + diff --git a/api/describe_format_options/index.md b/api/describe_format_options/index.md new file mode 100644 index 0000000..1c15835 --- /dev/null +++ b/api/describe_format_options/index.md @@ -0,0 +1,21 @@ +--- +layout: default +menu_item: api +title: DescribeFormatOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| abbreviated_size | Number | +| always_use_long_format | Number | +| dirty_suffix | String | +| version | Number | + diff --git a/api/describe_options/index.md b/api/describe_options/index.md new file mode 100644 index 0000000..660dd7e --- /dev/null +++ b/api/describe_options/index.md @@ -0,0 +1,23 @@ +--- +layout: default +menu_item: api +title: DescribeOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| describe_strategy | Number | +| max_candidates_tags | Number | +| only_follow_first_parent | Number | +| pattern | String | +| show_commit_oid_as_fallback | Number | +| version | Number | + diff --git a/api/diff/index.md b/api/diff/index.md new file mode 100644 index 0000000..183c4bb --- /dev/null +++ b/api/diff/index.md @@ -0,0 +1,285 @@ +--- +layout: default +menu_item: api +title: Diff +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "indexToWorkdir": "#indexToWorkdir" + "treeToIndex": "#treeToIndex" + "treeToTree": "#treeToTree" + "treeToWorkdir": "#treeToWorkdir" + "treeToWorkdirWithIndex": "#treeToWorkdirWithIndex" + "#getDelta": "#getDelta" + "#getPerfdata": "#getPerfdata" + "#numDeltas": "#numDeltas" + "#patches": "#patches" + "DELTA": "#DELTA" + "FIND": "#FIND" + "FLAG": "#FLAG" + "FORMAT": "#FORMAT" + "FORMAT_EMAIL_FLAGS": "#FORMAT_EMAIL_FLAGS" + "LINE": "#LINE" + "OPTION": "#OPTION" + "STATS_FORMAT": "#STATS_FORMAT" +--- + +## Diff.indexToWorkdir Async + +```js +Diff.indexToWorkdir(repo, index, opts).then(function(diff) { + // Use diff +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository. | +| index | [Index](/api/index/) | The index to diff from; repo index used if NULL. | +| opts | [DiffOptions](/api/diff_options/) | Structure with options to influence diff or NULL for defaults. | + +| Returns | | +| --- | --- | +| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | + +## Diff.treeToIndex Async + +```js +Diff.treeToIndex(repo, old_tree, index, opts).then(function(diff) { + // Use diff +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the tree and index. | +| old_tree | [Tree](/api/tree/) | A git_tree object to diff from, or NULL for empty tree. | +| index | [Index](/api/index/) | The index to diff with; repo index used if NULL. | +| opts | [DiffOptions](/api/diff_options/) | Structure with options to influence diff or NULL for defaults. | + +| Returns | | +| --- | --- | +| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | + +## Diff.treeToTree Async + +```js +Diff.treeToTree(repo, old_tree, new_tree, opts).then(function(diff) { + // Use diff +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the trees. | +| old_tree | [Tree](/api/tree/) | A git_tree object to diff from, or NULL for empty tree. | +| new_tree | [Tree](/api/tree/) | A git_tree object to diff to, or NULL for empty tree. | +| opts | [DiffOptions](/api/diff_options/) | Structure with options to influence diff or NULL for defaults. | + +| Returns | | +| --- | --- | +| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | + +## Diff.treeToWorkdir Async + +```js +Diff.treeToWorkdir(repo, old_tree, opts).then(function(diff) { + // Use diff +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the tree. | +| old_tree | [Tree](/api/tree/) | A git_tree object to diff from, or NULL for empty tree. | +| opts | [DiffOptions](/api/diff_options/) | Structure with options to influence diff or NULL for defaults. | + +| Returns | | +| --- | --- | +| [Diff](/api/diff/) | a git_diff pointer that will be allocated. | + +## Diff.treeToWorkdirWithIndex Async + +```js +Diff.treeToWorkdirWithIndex(repo, old_tree, opts).then(function(diff) { + // Use diff +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the tree. | +| old_tree | [Tree](/api/tree/) | A git_tree object to diff from, or NULL for empty tree. | +| opts | [DiffOptions](/api/diff_options/) | Structure with options to influence diff or NULL for defaults. | + +| Returns | | +| --- | --- | +| [Diff](/api/diff/) | a git_diff pointer that will be allocated. | + +## Diff#getDelta Sync + +```js +var diffDelta = diff.getDelta(idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| idx | Number | Index into diff list | + +| Returns | | +| --- | --- | +| [DiffDelta](/api/diff_delta/) | Pointer to git_diff_delta (or NULL if `idx` out of range) | + +## Diff#getPerfdata Async + +```js +diff.getPerfdata().then(function(diffPerfdata) { + // Use diffPerfdata +}); +``` + + +| Returns | | +| --- | --- | +| [DiffPerfdata](/api/diff_perfdata/) | Structure to be filled with diff performance data | + +## Diff#numDeltas Sync + +```js +var result = diff.numDeltas(); +``` + + +| Returns | | +| --- | --- | +| Number | Count of number of deltas in the list | + +## Diff#patches Sync + +```js +diff.patches(); +``` + +Retrieve patches in this difflist + + +## Diff.DELTA ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.DELTA.UNMODIFIED | 0 | +| Diff.DELTA.ADDED | 1 | +| Diff.DELTA.DELETED | 2 | +| Diff.DELTA.MODIFIED | 3 | +| Diff.DELTA.RENAMED | 4 | +| Diff.DELTA.COPIED | 5 | +| Diff.DELTA.IGNORED | 6 | +| Diff.DELTA.UNTRACKED | 7 | +| Diff.DELTA.TYPECHANGE | 8 | +| Diff.DELTA.UNREADABLE | 9 | + +## Diff.FIND ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.FIND.BY_CONFIG | 0 | +| Diff.FIND.RENAMES | 1 | +| Diff.FIND.RENAMES_FROM_REWRITES | 2 | +| Diff.FIND.COPIES | 4 | +| Diff.FIND.COPIES_FROM_UNMODIFIED | 8 | +| Diff.FIND.REWRITES | 16 | +| Diff.FIND.BREAK_REWRITES | 32 | +| Diff.FIND.AND_BREAK_REWRITES | 48 | +| Diff.FIND.FOR_UNTRACKED | 64 | +| Diff.FIND.ALL | 255 | +| Diff.FIND.IGNORE_LEADING_WHITESPACE | 0 | +| Diff.FIND.IGNORE_WHITESPACE | 4096 | +| Diff.FIND.DONT_IGNORE_WHITESPACE | 8192 | +| Diff.FIND.EXACT_MATCH_ONLY | 16384 | +| Diff.FIND.BREAK_REWRITES_FOR_RENAMES_ONLY | 32768 | +| Diff.FIND.REMOVE_UNMODIFIED | 65536 | + +## Diff.FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.FLAG.BINARY | 1 | +| Diff.FLAG.NOT_BINARY | 2 | +| Diff.FLAG.VALID_ID | 4 | + +## Diff.FORMAT ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.FORMAT.PATCH | 1 | +| Diff.FORMAT.PATCH_HEADER | 2 | +| Diff.FORMAT.RAW | 3 | +| Diff.FORMAT.NAME_ONLY | 4 | +| Diff.FORMAT.NAME_STATUS | 5 | + +## Diff.FORMAT_EMAIL_FLAGS ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.FORMAT_EMAIL_FLAGS.FORMAT_EMAIL_NONE | 0 | +| Diff.FORMAT_EMAIL_FLAGS.FORMAT_EMAIL_EXCLUDE_SUBJECT_PATCH_MARKER | 1 | + +## Diff.LINE ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.LINE.CONTEXT | 32 | +| Diff.LINE.ADDITION | 43 | +| Diff.LINE.DELETION | 45 | +| Diff.LINE.CONTEXT_EOFNL | 61 | +| Diff.LINE.ADD_EOFNL | 62 | +| Diff.LINE.DEL_EOFNL | 60 | +| Diff.LINE.FILE_HDR | 70 | +| Diff.LINE.HUNK_HDR | 72 | +| Diff.LINE.BINARY | 66 | + +## Diff.OPTION ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.OPTION.NORMAL | 0 | +| Diff.OPTION.REVERSE | 1 | +| Diff.OPTION.INCLUDE_IGNORED | 2 | +| Diff.OPTION.RECURSE_IGNORED_DIRS | 4 | +| Diff.OPTION.INCLUDE_UNTRACKED | 8 | +| Diff.OPTION.RECURSE_UNTRACKED_DIRS | 16 | +| Diff.OPTION.INCLUDE_UNMODIFIED | 32 | +| Diff.OPTION.INCLUDE_TYPECHANGE | 64 | +| Diff.OPTION.INCLUDE_TYPECHANGE_TREES | 128 | +| Diff.OPTION.IGNORE_FILEMODE | 256 | +| Diff.OPTION.IGNORE_SUBMODULES | 512 | +| Diff.OPTION.IGNORE_CASE | 1024 | +| Diff.OPTION.DISABLE_PATHSPEC_MATCH | 4096 | +| Diff.OPTION.SKIP_BINARY_CHECK | 8192 | +| Diff.OPTION.ENABLE_FAST_UNTRACKED_DIRS | 16384 | +| Diff.OPTION.UPDATE_INDEX | 32768 | +| Diff.OPTION.INCLUDE_UNREADABLE | 65536 | +| Diff.OPTION.INCLUDE_UNREADABLE_AS_UNTRACKED | 131072 | +| Diff.OPTION.FORCE_TEXT | 1048576 | +| Diff.OPTION.FORCE_BINARY | 2097152 | +| Diff.OPTION.IGNORE_WHITESPACE | 4194304 | +| Diff.OPTION.IGNORE_WHITESPACE_CHANGE | 8388608 | +| Diff.OPTION.IGNORE_WHITESPACE_EOL | 16777216 | +| Diff.OPTION.SHOW_UNTRACKED_CONTENT | 33554432 | +| Diff.OPTION.SHOW_UNMODIFIED | 67108864 | +| Diff.OPTION.PATIENCE | 268435456 | +| Diff.OPTION.MINIMAL | 536870912 | +| Diff.OPTION.SHOW_BINARY | 1073741824 | + +## Diff.STATS_FORMAT ENUM + +| Flag | Value | +| --- | --- | --- | +| Diff.STATS_FORMAT.STATS_NONE | 0 | +| Diff.STATS_FORMAT.STATS_FULL | 1 | +| Diff.STATS_FORMAT.STATS_SHORT | 2 | +| Diff.STATS_FORMAT.STATS_NUMBER | 4 | +| Diff.STATS_FORMAT.STATS_INCLUDE_SUMMARY | 8 | + diff --git a/api/diff_delta/index.md b/api/diff_delta/index.md new file mode 100644 index 0000000..1b51985 --- /dev/null +++ b/api/diff_delta/index.md @@ -0,0 +1,23 @@ +--- +layout: default +menu_item: api +title: DiffDelta +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| flags | Number | +| new_file | DiffFile | +| nfiles | Number | +| old_file | DiffFile | +| similarity | Number | +| status | Number | + diff --git a/api/diff_file/index.md b/api/diff_file/index.md new file mode 100644 index 0000000..df956e3 --- /dev/null +++ b/api/diff_file/index.md @@ -0,0 +1,22 @@ +--- +layout: default +menu_item: api +title: DiffFile +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| flags | Number | +| id | Oid | +| mode | Number | +| path | String | +| size | Number | + diff --git a/api/diff_hunk/index.md b/api/diff_hunk/index.md new file mode 100644 index 0000000..bd9efa6 --- /dev/null +++ b/api/diff_hunk/index.md @@ -0,0 +1,23 @@ +--- +layout: default +menu_item: api +title: DiffHunk +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| header | String | +| header_len | Number | +| new_lines | Number | +| new_start | Number | +| old_lines | Number | +| old_start | Number | + diff --git a/api/diff_line/index.md b/api/diff_line/index.md new file mode 100644 index 0000000..8590157 --- /dev/null +++ b/api/diff_line/index.md @@ -0,0 +1,24 @@ +--- +layout: default +menu_item: api +title: DiffLine +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| content | String | +| content_len | Number | +| content_offset | Number | +| new_lineno | Number | +| num_lines | Number | +| old_lineno | Number | +| origin | Number | + diff --git a/api/diff_options/index.md b/api/diff_options/index.md new file mode 100644 index 0000000..5247a22 --- /dev/null +++ b/api/diff_options/index.md @@ -0,0 +1,33 @@ +--- +layout: default +menu_item: api +title: DiffOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var diffOptions = new DiffOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| context_lines | Number | +| flags | Number | +| id_abbrev | Number | +| ignore_submodules | Number | +| interhunk_lines | Number | +| max_size | Number | +| new_prefix | String | +| notify_cb | DiffNotifyCb | +| notify_payload | Void | +| old_prefix | String | +| pathspec | Strarray | +| version | Number | + diff --git a/api/diff_perfdata/index.md b/api/diff_perfdata/index.md new file mode 100644 index 0000000..b37e878 --- /dev/null +++ b/api/diff_perfdata/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: DiffPerfdata +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| oid_calculations | Number | +| stat_calls | Number | +| version | Number | + diff --git a/api/enums/index.md b/api/enums/index.md new file mode 100644 index 0000000..a776907 --- /dev/null +++ b/api/enums/index.md @@ -0,0 +1,66 @@ +--- +layout: default +menu_item: api +title: Enums +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "CVAR": "#CVAR" + "DIRECTION": "#DIRECTION" + "FEATURE": "#FEATURE" + "IDXENTRY_EXTENDED_FLAG": "#IDXENTRY_EXTENDED_FLAG" + "INDXENTRY_FLAG": "#INDXENTRY_FLAG" +--- + +## Enums.CVAR ENUM + +| Flag | Value | +| --- | --- | --- | +| Enums.CVAR.FALSE | 0 | +| Enums.CVAR.TRUE | 1 | +| Enums.CVAR.INT32 | 2 | +| Enums.CVAR.STRING | 3 | + +## Enums.DIRECTION ENUM + +| Flag | Value | +| --- | --- | --- | +| Enums.DIRECTION.FETCH | 0 | +| Enums.DIRECTION.PUSH | 1 | + +## Enums.FEATURE ENUM + +| Flag | Value | +| --- | --- | --- | +| Enums.FEATURE.THREADS | 1 | +| Enums.FEATURE.HTTPS | 2 | +| Enums.FEATURE.SSH | 4 | + +## Enums.IDXENTRY_EXTENDED_FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_INTENT_TO_ADD | 8192 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_SKIP_WORKTREE | 16384 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_EXTENDED2 | 32768 | +| Enums.IDXENTRY_EXTENDED_FLAG.S | 24576 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_UPDATE | 1 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_REMOVE | 2 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_UPTODATE | 4 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_ADDED | 8 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_HASHED | 16 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_UNHASHED | 32 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_WT_REMOVE | 64 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_CONFLICTED | 128 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_UNPACKED | 256 | +| Enums.IDXENTRY_EXTENDED_FLAG.IDXENTRY_NEW_SKIP_WORKTREE | 512 | + +## Enums.INDXENTRY_FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Enums.INDXENTRY_FLAG.IDXENTRY_EXTENDED | 16384 | +| Enums.INDXENTRY_FLAG.IDXENTRY_VALID | 32768 | + diff --git a/api/error/index.md b/api/error/index.md new file mode 100644 index 0000000..9659d14 --- /dev/null +++ b/api/error/index.md @@ -0,0 +1,82 @@ +--- +layout: default +menu_item: api +title: Error +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "CODE": "#CODE" + "ERROR": "#ERROR" + "Instance Variables": "#ivars" +--- + +## Error.CODE ENUM + +| Flag | Value | +| --- | --- | --- | +| Error.CODE.OK | 0 | +| Error.CODE.ERROR | -1 | +| Error.CODE.ENOTFOUND | -3 | +| Error.CODE.EEXISTS | -4 | +| Error.CODE.EAMBIGUOUS | -5 | +| Error.CODE.EBUFS | -6 | +| Error.CODE.EUSER | -7 | +| Error.CODE.EBAREREPO | -8 | +| Error.CODE.EUNBORNBRANCH | -9 | +| Error.CODE.EUNMERGED | -10 | +| Error.CODE.ENONFASTFORWARD | -11 | +| Error.CODE.EINVALIDSPEC | -12 | +| Error.CODE.EMERGECONFLICT | -13 | +| Error.CODE.ELOCKED | -14 | +| Error.CODE.EMODIFIED | -15 | +| Error.CODE.EAUTH | -16 | +| Error.CODE.ECERTIFICATE | -17 | +| Error.CODE.EAPPLIED | -18 | +| Error.CODE.EPEEL | -19 | +| Error.CODE.PASSTHROUGH | -30 | +| Error.CODE.ITEROVER | -31 | + +## Error.ERROR ENUM + +| Flag | Value | +| --- | --- | --- | +| Error.ERROR.GITERR_NONE | 0 | +| Error.ERROR.GITERR_NOMEMORY | 1 | +| Error.ERROR.GITERR_OS | 2 | +| Error.ERROR.GITERR_INVALID | 3 | +| Error.ERROR.GITERR_REFERENCE | 4 | +| Error.ERROR.GITERR_ZLIB | 5 | +| Error.ERROR.GITERR_REPOSITORY | 6 | +| Error.ERROR.GITERR_CONFIG | 7 | +| Error.ERROR.GITERR_REGEX | 8 | +| Error.ERROR.GITERR_ODB | 9 | +| Error.ERROR.GITERR_INDEX | 10 | +| Error.ERROR.GITERR_OBJECT | 11 | +| Error.ERROR.GITERR_NET | 12 | +| Error.ERROR.GITERR_TAG | 13 | +| Error.ERROR.GITERR_TREE | 14 | +| Error.ERROR.GITERR_INDEXER | 15 | +| Error.ERROR.GITERR_SSL | 16 | +| Error.ERROR.GITERR_SUBMODULE | 17 | +| Error.ERROR.GITERR_THREAD | 18 | +| Error.ERROR.GITERR_STASH | 19 | +| Error.ERROR.GITERR_CHECKOUT | 20 | +| Error.ERROR.GITERR_FETCHHEAD | 21 | +| Error.ERROR.GITERR_MERGE | 22 | +| Error.ERROR.GITERR_SSH | 23 | +| Error.ERROR.GITERR_FILTER | 24 | +| Error.ERROR.GITERR_REVERT | 25 | +| Error.ERROR.GITERR_CALLBACK | 26 | +| Error.ERROR.GITERR_CHERRYPICK | 27 | +| Error.ERROR.GITERR_DESCRIBE | 28 | +| Error.ERROR.GITERR_REBASE | 29 | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| klass | Number | +| message | String | + diff --git a/api/filter/index.md b/api/filter/index.md new file mode 100644 index 0000000..b82d573 --- /dev/null +++ b/api/filter/index.md @@ -0,0 +1,70 @@ +--- +layout: default +menu_item: api +title: Filter +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#lookup": "#lookup" + "#register": "#register" + "MODE": "#MODE" + "OPT": "#OPT" + "Instance Variables": "#ivars" +--- + +## Filter#lookup SyncExperimental + +```js +var filter = filter.lookup(name); +``` + +| Parameters | Type | +| --- | --- | --- | +| name | String | The name of the filter | + +| Returns | | +| --- | --- | +| [Filter](/api/filter/) | Pointer to the filter object or NULL if not found | + +## Filter#register SyncExperimental + +```js +var result = filter.register(name, priority); +``` + +| Parameters | Type | +| --- | --- | --- | +| name | String | A name by which the filter can be referenced. Attempting to register with an in-use name will return GIT_EEXISTS. | +| priority | Number | The priority for filter application | + +| Returns | | +| --- | --- | +| Number | 0 on successful registry, error code +< +0 on failure | + +## Filter.MODE ENUM + +| Flag | Value | +| --- | --- | --- | +| Filter.MODE.TO_WORKTREE | 0 | +| Filter.MODE.SMUDGE | 0 | +| Filter.MODE.TO_ODB | 1 | +| Filter.MODE.CLEAN | 1 | + +## Filter.OPT ENUM + +| Flag | Value | +| --- | --- | --- | +| Filter.OPT.DEFAULT | 0 | +| Filter.OPT.ALLOW_UNSAFE | 1 | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| attributes | String | +| version | Number | + diff --git a/api/hashsig/index.md b/api/hashsig/index.md new file mode 100644 index 0000000..826ab77 --- /dev/null +++ b/api/hashsig/index.md @@ -0,0 +1,71 @@ +--- +layout: default +menu_item: api +title: Hashsig +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "createFromFile": "#createFromFile" + "#compare": "#compare" + "OPTION": "#OPTION" +--- + +## Hashsig.create AsyncExperimental + +```js +Hashsig.create(buf, buflen, opts).then(function(hashsig) { + // Use hashsig +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| buf | String | The contents of the file to hash | +| buflen | Number | The length of the data at `buf` | +| opts | Number | | + +| Returns | | +| --- | --- | +| [Hashsig](/api/hashsig/) | The array of hashed runs representing the file content | + +## Hashsig.createFromFile AsyncExperimental + +```js +Hashsig.createFromFile(path, opts).then(function(hashsig) { + // Use hashsig +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| path | String | | +| opts | Number | | + +| Returns | | +| --- | --- | +| [Hashsig](/api/hashsig/) | | + +## Hashsig#compare SyncExperimental + +```js +var result = hashsig.compare(); +``` + + +| Returns | | +| --- | --- | +| Number | +< +0 for error, [0 to 100] as similarity score | + +## Hashsig.OPTION ENUM + +| Flag | Value | +| --- | --- | --- | +| Hashsig.OPTION.NORMAL | 0 | +| Hashsig.OPTION.IGNORE_WHITESPACE | 1 | +| Hashsig.OPTION.SMART_WHITESPACE | 2 | + diff --git a/api/index.md b/api/index.md new file mode 100644 index 0000000..7a211c2 --- /dev/null +++ b/api/index.md @@ -0,0 +1,1480 @@ +--- +layout: default +menu_item: api +title: API Docs +description: Version 0.3.0 +menu_item: api +sections: + "Attr": "#Attr" + "Blame": "#Blame" + "BlameHunk": "#BlameHunk" + "BlameOptions": "#BlameOptions" + "Blob": "#Blob" + "Branch": "#Branch" + "Buf": "#Buf" + "Cert": "#Cert" + "CertHostkey": "#CertHostkey" + "CertX509": "#CertX509" + "Checkout": "#Checkout" + "CheckoutOptions": "#CheckoutOptions" + "CherrypickOptions": "#CherrypickOptions" + "Clone": "#Clone" + "CloneOptions": "#CloneOptions" + "Commit": "#Commit" + "Config": "#Config" + "ConfigEntry": "#ConfigEntry" + "ConvenientHunk": "#ConvenientHunk" + "ConvenientPatch": "#ConvenientPatch" + "Cred": "#Cred" + "CredUsername": "#CredUsername" + "CredUserpassPayload": "#CredUserpassPayload" + "CvarMap": "#CvarMap" + "DescribeFormatOptions": "#DescribeFormatOptions" + "DescribeOptions": "#DescribeOptions" + "Diff": "#Diff" + "DiffDelta": "#DiffDelta" + "DiffFile": "#DiffFile" + "DiffHunk": "#DiffHunk" + "DiffLine": "#DiffLine" + "DiffOptions": "#DiffOptions" + "DiffPerfdata": "#DiffPerfdata" + "Enums": "#Enums" + "Error": "#Error" + "Filter": "#Filter" + "Hashsig": "#Hashsig" + "Index": "#Index" + "IndexEntry": "#IndexEntry" + "IndexTime": "#IndexTime" + "Indexer": "#Indexer" + "Libgit2": "#Libgit2" + "Merge": "#Merge" + "MergeFileInput": "#MergeFileInput" + "MergeFileOptions": "#MergeFileOptions" + "MergeFileResult": "#MergeFileResult" + "MergeOptions": "#MergeOptions" + "Note": "#Note" + "Object": "#Object" + "Odb": "#Odb" + "OdbObject": "#OdbObject" + "Oid": "#Oid" + "Oidarray": "#Oidarray" + "Packbuilder": "#Packbuilder" + "Patch": "#Patch" + "Pathspec": "#Pathspec" + "PushOptions": "#PushOptions" + "Rebase": "#Rebase" + "RebaseOperation": "#RebaseOperation" + "RebaseOptions": "#RebaseOptions" + "Refdb": "#Refdb" + "Reference": "#Reference" + "Reflog": "#Reflog" + "Refspec": "#Refspec" + "Remote": "#Remote" + "RemoteCallbacks": "#RemoteCallbacks" + "Repository": "#Repository" + "RepositoryInitOptions": "#RepositoryInitOptions" + "Reset": "#Reset" + "RevertOptions": "#RevertOptions" + "Revparse": "#Revparse" + "Revwalk": "#Revwalk" + "Signature": "#Signature" + "Stash": "#Stash" + "Status": "#Status" + "StatusList": "#StatusList" + "StatusOptions": "#StatusOptions" + "Strarray": "#Strarray" + "Submodule": "#Submodule" + "SubmoduleUpdateOptions": "#SubmoduleUpdateOptions" + "Tag": "#Tag" + "Time": "#Time" + "Trace": "#Trace" + "TransferProgress": "#TransferProgress" + "Transport": "#Transport" + "Tree": "#Tree" + "TreeEntry": "#TreeEntry" + "Treebuilder": "#Treebuilder" +--- + + +## [Attr](/api/attr/) + +| ENUMS | | +| --- | ---: | +| [Attr.STATES](/api/attr/#STATES)| | + + +## [Blame](/api/blame/) + +| Class Methods | | +| --- | ---: | +| [Blame.file (repo, path, options)](/api/blame/#file) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Blame#buffer (buffer, buffer_len)](/api/blame/#buffer) | AsyncExperimental | +| [Blame#getHunkByIndex (index)](/api/blame/#getHunkByIndex) | SyncExperimental | +| [Blame#getHunkByLine (lineno)](/api/blame/#getHunkByLine) | SyncExperimental | +| [Blame#getHunkCount ()](/api/blame/#getHunkCount) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Blame.FLAG](/api/blame/#FLAG)| | + + +## [BlameHunk](/api/blame_hunk/) + +| Instance Variables | | +| --- | ---: | +| [BlameHunk#final_commit_id](/api/blame_hunk/#final_commit_id) | | +| [BlameHunk#final_signature](/api/blame_hunk/#final_signature) | | +| [BlameHunk#final_start_line_number](/api/blame_hunk/#final_start_line_number) | | +| [BlameHunk#lines_in_hunk](/api/blame_hunk/#lines_in_hunk) | | +| [BlameHunk#orig_commit_id](/api/blame_hunk/#orig_commit_id) | | +| [BlameHunk#orig_path](/api/blame_hunk/#orig_path) | | +| [BlameHunk#orig_signature](/api/blame_hunk/#orig_signature) | | +| [BlameHunk#orig_start_line_number](/api/blame_hunk/#orig_start_line_number) | | + + +## [BlameOptions](/api/blame_options/) + +| Instance Variables | | +| --- | ---: | +| [BlameOptions#flags](/api/blame_options/#flags) | | +| [BlameOptions#max_line](/api/blame_options/#max_line) | | +| [BlameOptions#min_line](/api/blame_options/#min_line) | | +| [BlameOptions#min_match_characters](/api/blame_options/#min_match_characters) | | +| [BlameOptions#newest_commit](/api/blame_options/#newest_commit) | | +| [BlameOptions#oldest_commit](/api/blame_options/#oldest_commit) | | +| [BlameOptions#version](/api/blame_options/#version) | | + + +## [Blob](/api/blob/) + +| Class Methods | | +| --- | ---: | +| [Blob.lookup (repo, id, callback)](/api/blob/#lookup) | Sync | +| [Blob.lookupPrefix (repo, id, len)](/api/blob/#lookupPrefix) | Async | + +| Instance Methods | | +| --- | ---: | +| [Blob#content ()](/api/blob/#content) | Sync | +| [Blob#filemode ()](/api/blob/#filemode) | Sync | +| [Blob#id ()](/api/blob/#id) | Sync | +| [Blob#isBinary ()](/api/blob/#isBinary) | Sync | +| [Blob#owner ()](/api/blob/#owner) | Sync | +| [Blob#rawcontent ()](/api/blob/#rawcontent) | Sync | +| [Blob#rawsize ()](/api/blob/#rawsize) | Sync | +| [Blob#toString ()](/api/blob/#toString) | Sync | + + +## [Branch](/api/branch/) + +| ENUMS | | +| --- | ---: | +| [Branch.BRANCH](/api/branch/#BRANCH)| | + + + +## [Buf](/api/buf/) + +| Instance Methods | | +| --- | ---: | +| [Buf#containsNul ()](/api/buf/#containsNul) | SyncExperimental | +| [Buf#grow (target_size)](/api/buf/#grow) | AsyncExperimental | +| [Buf#isBinary ()](/api/buf/#isBinary) | SyncExperimental | +| [Buf#set (data, datalen)](/api/buf/#set) | AsyncExperimental | + +| Instance Variables | | +| --- | ---: | +| [Buf#asize](/api/buf/#asize) | | +| [Buf#ptr](/api/buf/#ptr) | | +| [Buf#size](/api/buf/#size) | | + + +## [Cert](/api/cert/) + +| ENUMS | | +| --- | ---: | +| [Cert.SSH](/api/cert/#SSH)| | +| [Cert.TYPE](/api/cert/#TYPE)| | + +| Instance Variables | | +| --- | ---: | +| [Cert#cert_type](/api/cert/#cert_type) | | + + +## [CertHostkey](/api/cert_hostkey/) + +| Instance Variables | | +| --- | ---: | +| [CertHostkey#cert_type](/api/cert_hostkey/#cert_type) | | +| [CertHostkey#hash_md5](/api/cert_hostkey/#hash_md5) | | +| [CertHostkey#hash_sha1](/api/cert_hostkey/#hash_sha1) | | +| [CertHostkey#type](/api/cert_hostkey/#type) | | + + +## [CertX509](/api/cert_x509/) + +| Instance Variables | | +| --- | ---: | +| [CertX509#cert_type](/api/cert_x509/#cert_type) | | +| [CertX509#data](/api/cert_x509/#data) | | +| [CertX509#len](/api/cert_x509/#len) | | + + +## [Checkout](/api/checkout/) + +| Class Methods | | +| --- | ---: | +| [Checkout.head (, )](/api/checkout/#head) | Sync | +| [Checkout.tree (, , )](/api/checkout/#tree) | Sync | + +| ENUMS | | +| --- | ---: | +| [Checkout.NOTIFY](/api/checkout/#NOTIFY)| | +| [Checkout.STRATEGY](/api/checkout/#STRATEGY)| | + + +## [CheckoutOptions](/api/checkout_options/) + +| Instance Variables | | +| --- | ---: | +| [CheckoutOptions#ancestor_label](/api/checkout_options/#ancestor_label) | | +| [CheckoutOptions#baseline](/api/checkout_options/#baseline) | | +| [CheckoutOptions#checkout_strategy](/api/checkout_options/#checkout_strategy) | | +| [CheckoutOptions#dir_mode](/api/checkout_options/#dir_mode) | | +| [CheckoutOptions#disable_filters](/api/checkout_options/#disable_filters) | | +| [CheckoutOptions#file_mode](/api/checkout_options/#file_mode) | | +| [CheckoutOptions#file_open_flags](/api/checkout_options/#file_open_flags) | | +| [CheckoutOptions#notify_cb](/api/checkout_options/#notify_cb) | | +| [CheckoutOptions#notify_flags](/api/checkout_options/#notify_flags) | | +| [CheckoutOptions#notify_payload](/api/checkout_options/#notify_payload) | | +| [CheckoutOptions#our_label](/api/checkout_options/#our_label) | | +| [CheckoutOptions#paths](/api/checkout_options/#paths) | | +| [CheckoutOptions#progress_cb](/api/checkout_options/#progress_cb) | | +| [CheckoutOptions#progress_payload](/api/checkout_options/#progress_payload) | | +| [CheckoutOptions#target_directory](/api/checkout_options/#target_directory) | | +| [CheckoutOptions#their_label](/api/checkout_options/#their_label) | | +| [CheckoutOptions#version](/api/checkout_options/#version) | | + + + +## [CherrypickOptions](/api/cherrypick_options/) + +| Instance Variables | | +| --- | ---: | +| [CherrypickOptions#checkout_opts](/api/cherrypick_options/#checkout_opts) | | +| [CherrypickOptions#mainline](/api/cherrypick_options/#mainline) | | +| [CherrypickOptions#merge_opts](/api/cherrypick_options/#merge_opts) | | +| [CherrypickOptions#version](/api/cherrypick_options/#version) | | + + +## [Clone](/api/clone/) + +| Class Methods | | +| --- | ---: | +| [Clone.clone (, , )](/api/clone/#clone) | Sync | + +| ENUMS | | +| --- | ---: | +| [Clone.LOCAL](/api/clone/#LOCAL)| | + + +## [CloneOptions](/api/clone_options/) + +| Instance Variables | | +| --- | ---: | +| [CloneOptions#bare](/api/clone_options/#bare) | | +| [CloneOptions#checkout_branch](/api/clone_options/#checkout_branch) | | +| [CloneOptions#checkout_opts](/api/clone_options/#checkout_opts) | | +| [CloneOptions#local](/api/clone_options/#local) | | +| [CloneOptions#remote_callbacks](/api/clone_options/#remote_callbacks) | | +| [CloneOptions#remote_cb_payload](/api/clone_options/#remote_cb_payload) | | +| [CloneOptions#repository_cb_payload](/api/clone_options/#repository_cb_payload) | | +| [CloneOptions#signature](/api/clone_options/#signature) | | +| [CloneOptions#version](/api/clone_options/#version) | | + + +## [Commit](/api/commit/) + +| Class Methods | | +| --- | ---: | +| [Commit.lookup (repo, id, callback)](/api/commit/#lookup) | Sync | +| [Commit.lookupPrefix (repo, id, len)](/api/commit/#lookupPrefix) | Async | + +| Instance Methods | | +| --- | ---: | +| [Commit#amend (id, update_ref, author, committer, message_encoding, message, tree)](/api/commit/#amend) | Sync | +| [Commit#author ()](/api/commit/#author) | Sync | +| [Commit#committer ()](/api/commit/#committer) | Sync | +| [Commit#date ()](/api/commit/#date) | Sync | +| [Commit#getEntry (path, callback)](/api/commit/#getEntry) | Sync | +| [Commit#getTree (callback)](/api/commit/#getTree) | Sync | +| [Commit#history ()](/api/commit/#history) | Sync | +| [Commit#id ()](/api/commit/#id) | Sync | +| [Commit#message ()](/api/commit/#message) | Sync | +| [Commit#messageEncoding ()](/api/commit/#messageEncoding) | Sync | +| [Commit#messageRaw ()](/api/commit/#messageRaw) | Sync | +| [Commit#nthGenAncestor (n)](/api/commit/#nthGenAncestor) | Async | +| [Commit#owner ()](/api/commit/#owner) | Sync | +| [Commit#parent (n)](/api/commit/#parent) | Async | +| [Commit#parentId (n)](/api/commit/#parentId) | Sync | +| [Commit#parentcount ()](/api/commit/#parentcount) | Sync | +| [Commit#parents (callback)](/api/commit/#parents) | Sync | +| [Commit#rawHeader ()](/api/commit/#rawHeader) | Sync | +| [Commit#sha ()](/api/commit/#sha) | Sync | +| [Commit#summary ()](/api/commit/#summary) | Sync | +| [Commit#time ()](/api/commit/#time) | Sync | +| [Commit#timeMs ()](/api/commit/#timeMs) | Sync | +| [Commit#timeOffset ()](/api/commit/#timeOffset) | Sync | +| [Commit#tree (tree_out)](/api/commit/#tree) | Sync | +| [Commit#treeId ()](/api/commit/#treeId) | Sync | + + +## [Config](/api/config/) + +| Instance Methods | | +| --- | ---: | +| [Config#setInt64 (name, value)](/api/config/#setInt64) | SyncExperimental | +| [Config#setMultivar (name, regexp, value)](/api/config/#setMultivar) | SyncExperimental | +| [Config#setString (name, value)](/api/config/#setString) | SyncExperimental | +| [Config#snapshot ()](/api/config/#snapshot) | AsyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Config.LEVEL](/api/config/#LEVEL)| | + + +## [ConfigEntry](/api/config_entry/) + +| Instance Variables | | +| --- | ---: | +| [ConfigEntry#level](/api/config_entry/#level) | | +| [ConfigEntry#name](/api/config_entry/#name) | | +| [ConfigEntry#value](/api/config_entry/#value) | | + + +## [ConvenientHunk](/api/convenient_hunk/) + +| Instance Methods | | +| --- | ---: | +| [ConvenientHunk#header ()](/api/convenient_hunk/#header) | Sync | +| [ConvenientHunk#lines ()](/api/convenient_hunk/#lines) | Sync | +| [ConvenientHunk#size ()](/api/convenient_hunk/#size) | Sync | + + +## [ConvenientPatch](/api/convenient_patch/) + +| Instance Methods | | +| --- | ---: | +| [ConvenientPatch#hunks ()](/api/convenient_patch/#hunks) | Sync | +| [ConvenientPatch#isAdded ()](/api/convenient_patch/#isAdded) | Sync | +| [ConvenientPatch#isCopied ()](/api/convenient_patch/#isCopied) | Sync | +| [ConvenientPatch#isDeleted ()](/api/convenient_patch/#isDeleted) | Sync | +| [ConvenientPatch#isIgnored ()](/api/convenient_patch/#isIgnored) | Sync | +| [ConvenientPatch#isModified ()](/api/convenient_patch/#isModified) | Sync | +| [ConvenientPatch#isRenamed ()](/api/convenient_patch/#isRenamed) | Sync | +| [ConvenientPatch#isTypeChange ()](/api/convenient_patch/#isTypeChange) | Sync | +| [ConvenientPatch#isUnmodified ()](/api/convenient_patch/#isUnmodified) | Sync | +| [ConvenientPatch#isUntracked ()](/api/convenient_patch/#isUntracked) | Sync | +| [ConvenientPatch#newFile ()](/api/convenient_patch/#newFile) | Sync | +| [ConvenientPatch#oldFile ()](/api/convenient_patch/#oldFile) | Sync | +| [ConvenientPatch#size ()](/api/convenient_patch/#size) | Sync | +| [ConvenientPatch#status ()](/api/convenient_patch/#status) | Sync | + + +## [Cred](/api/cred/) + +| Class Methods | | +| --- | ---: | +| [Cred.defaultNew ()](/api/cred/#defaultNew) | Sync | +| [Cred.sshKeyFromAgent (username)](/api/cred/#sshKeyFromAgent) | Sync | +| [Cred.sshKeyNew (username, publickey, privatekey, passphrase)](/api/cred/#sshKeyNew) | Sync | +| [Cred.usernameNew (username)](/api/cred/#usernameNew) | Async | +| [Cred.userpassPlaintextNew (username, password)](/api/cred/#userpassPlaintextNew) | Sync | + +| Instance Methods | | +| --- | ---: | +| [Cred#hasUsername ()](/api/cred/#hasUsername) | Sync | + +| ENUMS | | +| --- | ---: | +| [Cred.TYPE](/api/cred/#TYPE)| | + + + +## [CredUsername](/api/cred_username/) + +| Instance Variables | | +| --- | ---: | +| [CredUsername#parent](/api/cred_username/#parent) | | +| [CredUsername#username](/api/cred_username/#username) | | + + +## [CredUserpassPayload](/api/cred_userpass_payload/) + +| Instance Variables | | +| --- | ---: | +| [CredUserpassPayload#password](/api/cred_userpass_payload/#password) | | +| [CredUserpassPayload#username](/api/cred_userpass_payload/#username) | | + + +## [CvarMap](/api/cvar_map/) + +| Instance Variables | | +| --- | ---: | +| [CvarMap#cvar_type](/api/cvar_map/#cvar_type) | | +| [CvarMap#map_value](/api/cvar_map/#map_value) | | +| [CvarMap#str_match](/api/cvar_map/#str_match) | | + + +## [DescribeFormatOptions](/api/describe_format_options/) + +| Instance Variables | | +| --- | ---: | +| [DescribeFormatOptions#abbreviated_size](/api/describe_format_options/#abbreviated_size) | | +| [DescribeFormatOptions#always_use_long_format](/api/describe_format_options/#always_use_long_format) | | +| [DescribeFormatOptions#dirty_suffix](/api/describe_format_options/#dirty_suffix) | | +| [DescribeFormatOptions#version](/api/describe_format_options/#version) | | + + +## [DescribeOptions](/api/describe_options/) + +| Instance Variables | | +| --- | ---: | +| [DescribeOptions#describe_strategy](/api/describe_options/#describe_strategy) | | +| [DescribeOptions#max_candidates_tags](/api/describe_options/#max_candidates_tags) | | +| [DescribeOptions#only_follow_first_parent](/api/describe_options/#only_follow_first_parent) | | +| [DescribeOptions#pattern](/api/describe_options/#pattern) | | +| [DescribeOptions#show_commit_oid_as_fallback](/api/describe_options/#show_commit_oid_as_fallback) | | +| [DescribeOptions#version](/api/describe_options/#version) | | + + +## [Diff](/api/diff/) + +| Class Methods | | +| --- | ---: | +| [Diff.indexToWorkdir (repo, index, opts)](/api/diff/#indexToWorkdir) | Async | +| [Diff.treeToIndex (repo, old_tree, index, opts)](/api/diff/#treeToIndex) | Async | +| [Diff.treeToTree (repo, old_tree, new_tree, opts)](/api/diff/#treeToTree) | Async | +| [Diff.treeToWorkdir (repo, old_tree, opts)](/api/diff/#treeToWorkdir) | Async | +| [Diff.treeToWorkdirWithIndex (repo, old_tree, opts)](/api/diff/#treeToWorkdirWithIndex) | Async | + +| Instance Methods | | +| --- | ---: | +| [Diff#getDelta (idx)](/api/diff/#getDelta) | Sync | +| [Diff#getPerfdata ()](/api/diff/#getPerfdata) | Async | +| [Diff#numDeltas ()](/api/diff/#numDeltas) | Sync | +| [Diff#patches ()](/api/diff/#patches) | Sync | + +| ENUMS | | +| --- | ---: | +| [Diff.DELTA](/api/diff/#DELTA)| | +| [Diff.FIND](/api/diff/#FIND)| | +| [Diff.FLAG](/api/diff/#FLAG)| | +| [Diff.FORMAT](/api/diff/#FORMAT)| | +| [Diff.FORMAT_EMAIL_FLAGS](/api/diff/#FORMAT_EMAIL_FLAGS)| | +| [Diff.LINE](/api/diff/#LINE)| | +| [Diff.OPTION](/api/diff/#OPTION)| | +| [Diff.STATS_FORMAT](/api/diff/#STATS_FORMAT)| | + + +## [DiffDelta](/api/diff_delta/) + +| Instance Variables | | +| --- | ---: | +| [DiffDelta#flags](/api/diff_delta/#flags) | | +| [DiffDelta#new_file](/api/diff_delta/#new_file) | | +| [DiffDelta#nfiles](/api/diff_delta/#nfiles) | | +| [DiffDelta#old_file](/api/diff_delta/#old_file) | | +| [DiffDelta#similarity](/api/diff_delta/#similarity) | | +| [DiffDelta#status](/api/diff_delta/#status) | | + + +## [DiffFile](/api/diff_file/) + +| Instance Variables | | +| --- | ---: | +| [DiffFile#flags](/api/diff_file/#flags) | | +| [DiffFile#id](/api/diff_file/#id) | | +| [DiffFile#mode](/api/diff_file/#mode) | | +| [DiffFile#path](/api/diff_file/#path) | | +| [DiffFile#size](/api/diff_file/#size) | | + + +## [DiffHunk](/api/diff_hunk/) + +| Instance Variables | | +| --- | ---: | +| [DiffHunk#header](/api/diff_hunk/#header) | | +| [DiffHunk#header_len](/api/diff_hunk/#header_len) | | +| [DiffHunk#new_lines](/api/diff_hunk/#new_lines) | | +| [DiffHunk#new_start](/api/diff_hunk/#new_start) | | +| [DiffHunk#old_lines](/api/diff_hunk/#old_lines) | | +| [DiffHunk#old_start](/api/diff_hunk/#old_start) | | + + +## [DiffLine](/api/diff_line/) + +| Instance Variables | | +| --- | ---: | +| [DiffLine#content](/api/diff_line/#content) | | +| [DiffLine#content_len](/api/diff_line/#content_len) | | +| [DiffLine#content_offset](/api/diff_line/#content_offset) | | +| [DiffLine#new_lineno](/api/diff_line/#new_lineno) | | +| [DiffLine#num_lines](/api/diff_line/#num_lines) | | +| [DiffLine#old_lineno](/api/diff_line/#old_lineno) | | +| [DiffLine#origin](/api/diff_line/#origin) | | + + +## [DiffOptions](/api/diff_options/) + +| Instance Variables | | +| --- | ---: | +| [DiffOptions#context_lines](/api/diff_options/#context_lines) | | +| [DiffOptions#flags](/api/diff_options/#flags) | | +| [DiffOptions#id_abbrev](/api/diff_options/#id_abbrev) | | +| [DiffOptions#ignore_submodules](/api/diff_options/#ignore_submodules) | | +| [DiffOptions#interhunk_lines](/api/diff_options/#interhunk_lines) | | +| [DiffOptions#max_size](/api/diff_options/#max_size) | | +| [DiffOptions#new_prefix](/api/diff_options/#new_prefix) | | +| [DiffOptions#notify_cb](/api/diff_options/#notify_cb) | | +| [DiffOptions#notify_payload](/api/diff_options/#notify_payload) | | +| [DiffOptions#old_prefix](/api/diff_options/#old_prefix) | | +| [DiffOptions#pathspec](/api/diff_options/#pathspec) | | +| [DiffOptions#version](/api/diff_options/#version) | | + + +## [DiffPerfdata](/api/diff_perfdata/) + +| Instance Variables | | +| --- | ---: | +| [DiffPerfdata#oid_calculations](/api/diff_perfdata/#oid_calculations) | | +| [DiffPerfdata#stat_calls](/api/diff_perfdata/#stat_calls) | | +| [DiffPerfdata#version](/api/diff_perfdata/#version) | | + + + +## [Enums](/api/enums/) + +| ENUMS | | +| --- | ---: | +| [Enums.CVAR](/api/enums/#CVAR)| | +| [Enums.DIRECTION](/api/enums/#DIRECTION)| | +| [Enums.FEATURE](/api/enums/#FEATURE)| | +| [Enums.IDXENTRY_EXTENDED_FLAG](/api/enums/#IDXENTRY_EXTENDED_FLAG)| | +| [Enums.INDXENTRY_FLAG](/api/enums/#INDXENTRY_FLAG)| | + + +## [Error](/api/error/) + +| ENUMS | | +| --- | ---: | +| [Error.CODE](/api/error/#CODE)| | +| [Error.ERROR](/api/error/#ERROR)| | + +| Instance Variables | | +| --- | ---: | +| [Error#klass](/api/error/#klass) | | +| [Error#message](/api/error/#message) | | + + +## [Filter](/api/filter/) + +| Instance Methods | | +| --- | ---: | +| [Filter#lookup (name)](/api/filter/#lookup) | SyncExperimental | +| [Filter#register (name, priority)](/api/filter/#register) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Filter.MODE](/api/filter/#MODE)| | +| [Filter.OPT](/api/filter/#OPT)| | + +| Instance Variables | | +| --- | ---: | +| [Filter#attributes](/api/filter/#attributes) | | +| [Filter#version](/api/filter/#version) | | + + + + + +## [Hashsig](/api/hashsig/) + +| Class Methods | | +| --- | ---: | +| [Hashsig.create (buf, buflen, opts)](/api/hashsig/#create) | AsyncExperimental | +| [Hashsig.createFromFile (path, opts)](/api/hashsig/#createFromFile) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Hashsig#compare ()](/api/hashsig/#compare) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Hashsig.OPTION](/api/hashsig/#OPTION)| | + + + +## [Index](/api/index/) + +| Class Methods | | +| --- | ---: | +| [Index.open (index_path)](/api/index/#open) | Async | + +| Instance Methods | | +| --- | ---: | +| [Index#add (source_entry)](/api/index/#add) | Sync | +| [Index#addByPath (path)](/api/index/#addByPath) | Sync | +| [Index#caps ()](/api/index/#caps) | Sync | +| [Index#clear ()](/api/index/#clear) | Sync | +| [Index#conflictAdd (ancestor_entry, our_entry, their_entry)](/api/index/#conflictAdd) | Sync | +| [Index#conflictCleanup ()](/api/index/#conflictCleanup) | Sync | +| [Index#conflictRemove (path)](/api/index/#conflictRemove) | Sync | +| [Index#entries ()](/api/index/#entries) | Sync | +| [Index#entryCount ()](/api/index/#entryCount) | Sync | +| [Index#getByIndex (n)](/api/index/#getByIndex) | Sync | +| [Index#getByPath (path, stage)](/api/index/#getByPath) | Sync | +| [Index#hasConflicts ()](/api/index/#hasConflicts) | Sync | +| [Index#owner ()](/api/index/#owner) | Sync | +| [Index#path ()](/api/index/#path) | Sync | +| [Index#read (force)](/api/index/#read) | Sync | +| [Index#readTree (tree)](/api/index/#readTree) | Sync | +| [Index#remove (path, stage)](/api/index/#remove) | Sync | +| [Index#removeByPath (path)](/api/index/#removeByPath) | Sync | +| [Index#removeDirectory (dir, stage)](/api/index/#removeDirectory) | Sync | +| [Index#setCaps (caps)](/api/index/#setCaps) | Sync | +| [Index#write ()](/api/index/#write) | Sync | +| [Index#writeTree ()](/api/index/#writeTree) | Async | +| [Index#writeTreeTo (repo)](/api/index/#writeTreeTo) | Async | + +| ENUMS | | +| --- | ---: | +| [Index.ADD_OPTION](/api/index/#ADD_OPTION)| | +| [Index.CAP](/api/index/#CAP)| | + + + +## [IndexEntry](/api/index_entry/) + +| Instance Variables | | +| --- | ---: | +| [IndexEntry#ctime](/api/index_entry/#ctime) | | +| [IndexEntry#dev](/api/index_entry/#dev) | | +| [IndexEntry#file_size](/api/index_entry/#file_size) | | +| [IndexEntry#flags](/api/index_entry/#flags) | | +| [IndexEntry#flags_extended](/api/index_entry/#flags_extended) | | +| [IndexEntry#gid](/api/index_entry/#gid) | | +| [IndexEntry#id](/api/index_entry/#id) | | +| [IndexEntry#ino](/api/index_entry/#ino) | | +| [IndexEntry#mode](/api/index_entry/#mode) | | +| [IndexEntry#mtime](/api/index_entry/#mtime) | | +| [IndexEntry#path](/api/index_entry/#path) | | +| [IndexEntry#uid](/api/index_entry/#uid) | | + + +## [IndexTime](/api/index_time/) + +| Instance Variables | | +| --- | ---: | +| [IndexTime#nanoseconds](/api/index_time/#nanoseconds) | | +| [IndexTime#seconds](/api/index_time/#seconds) | | + + +## [Indexer](/api/indexer/) + +| Instance Methods | | +| --- | ---: | +| [Indexer#commit (stats)](/api/indexer/#commit) | SyncExperimental | +| [Indexer#hash ()](/api/indexer/#hash) | SyncExperimental | + + +## [Libgit2](/api/libgit_2/) + +| ENUMS | | +| --- | ---: | +| [Libgit2.OPT](/api/libgit_2/#OPT)| | + + + +## [Merge](/api/merge/) + +| Class Methods | | +| --- | ---: | +| [Merge.commits (Repository, The, The)](/api/merge/#commits) | Sync | + +| ENUMS | | +| --- | ---: | +| [Merge.ANALYSIS](/api/merge/#ANALYSIS)| | +| [Merge.FILE_FAVOR](/api/merge/#FILE_FAVOR)| | +| [Merge.FILE_FLAGS](/api/merge/#FILE_FLAGS)| | +| [Merge.PREFERENCE](/api/merge/#PREFERENCE)| | +| [Merge.TREE_FLAG](/api/merge/#TREE_FLAG)| | + + +## [MergeFileInput](/api/merge_file_input/) + +| Instance Variables | | +| --- | ---: | +| [MergeFileInput#mode](/api/merge_file_input/#mode) | | +| [MergeFileInput#path](/api/merge_file_input/#path) | | +| [MergeFileInput#ptr](/api/merge_file_input/#ptr) | | +| [MergeFileInput#size](/api/merge_file_input/#size) | | +| [MergeFileInput#version](/api/merge_file_input/#version) | | + + +## [MergeFileOptions](/api/merge_file_options/) + +| Instance Variables | | +| --- | ---: | +| [MergeFileOptions#ancestor_label](/api/merge_file_options/#ancestor_label) | | +| [MergeFileOptions#favor](/api/merge_file_options/#favor) | | +| [MergeFileOptions#flags](/api/merge_file_options/#flags) | | +| [MergeFileOptions#our_label](/api/merge_file_options/#our_label) | | +| [MergeFileOptions#their_label](/api/merge_file_options/#their_label) | | +| [MergeFileOptions#version](/api/merge_file_options/#version) | | + + +## [MergeFileResult](/api/merge_file_result/) + +| Instance Variables | | +| --- | ---: | +| [MergeFileResult#automergeable](/api/merge_file_result/#automergeable) | | +| [MergeFileResult#len](/api/merge_file_result/#len) | | +| [MergeFileResult#mode](/api/merge_file_result/#mode) | | +| [MergeFileResult#path](/api/merge_file_result/#path) | | +| [MergeFileResult#ptr](/api/merge_file_result/#ptr) | | + + +## [MergeOptions](/api/merge_options/) + +| Instance Variables | | +| --- | ---: | +| [MergeOptions#file_favor](/api/merge_options/#file_favor) | | +| [MergeOptions#flags](/api/merge_options/#flags) | | +| [MergeOptions#rename_threshold](/api/merge_options/#rename_threshold) | | +| [MergeOptions#target_limit](/api/merge_options/#target_limit) | | +| [MergeOptions#version](/api/merge_options/#version) | | + + + + +## [Note](/api/note/) + +| Class Methods | | +| --- | ---: | +| [Note.read (repo, notes_ref, oid)](/api/note/#read) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Note#author ()](/api/note/#author) | SyncExperimental | +| [Note#committer ()](/api/note/#committer) | SyncExperimental | +| [Note#id ()](/api/note/#id) | SyncExperimental | +| [Note#message ()](/api/note/#message) | SyncExperimental | + + + +## [Object](/api/object/) + +| Class Methods | | +| --- | ---: | +| [Object.lookup (repo, id, type)](/api/object/#lookup) | AsyncExperimental | +| [Object.lookupPrefix (repo, id, len, type)](/api/object/#lookupPrefix) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Object#dup ()](/api/object/#dup) | AsyncExperimental | +| [Object#id ()](/api/object/#id) | SyncExperimental | +| [Object#lookupByPath (path, type)](/api/object/#lookupByPath) | AsyncExperimental | +| [Object#owner ()](/api/object/#owner) | SyncExperimental | +| [Object#peel (target_type)](/api/object/#peel) | AsyncExperimental | +| [Object#shortId ()](/api/object/#shortId) | AsyncExperimental | +| [Object#type ()](/api/object/#type) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Object.TYPE](/api/object/#TYPE)| | + + +## [Odb](/api/odb/) + +| Class Methods | | +| --- | ---: | +| [Odb.open (objects_dir)](/api/odb/#open) | Async | + +| Instance Methods | | +| --- | ---: | +| [Odb#addDiskAlternate (path)](/api/odb/#addDiskAlternate) | Sync | +| [Odb#read (id)](/api/odb/#read) | Async | +| [Odb#write (data, len, type)](/api/odb/#write) | Async | + +| ENUMS | | +| --- | ---: | +| [Odb.STREAM](/api/odb/#STREAM)| | + + +## [OdbObject](/api/odb_object/) + +| Instance Methods | | +| --- | ---: | +| [OdbObject#data ()](/api/odb_object/#data) | SyncExperimental | +| [OdbObject#dup ()](/api/odb_object/#dup) | AsyncExperimental | +| [OdbObject#id ()](/api/odb_object/#id) | SyncExperimental | +| [OdbObject#size ()](/api/odb_object/#size) | SyncExperimental | +| [OdbObject#type ()](/api/odb_object/#type) | SyncExperimental | + + +## [Oid](/api/oid/) + +| Class Methods | | +| --- | ---: | +| [Oid.fromString (str)](/api/oid/#fromString) | Sync | + +| Instance Methods | | +| --- | ---: | +| [Oid#cmp ()](/api/oid/#cmp) | Sync | +| [Oid#equal ()](/api/oid/#equal) | Sync | +| [Oid#iszero ()](/api/oid/#iszero) | Sync | +| [Oid#ncmp (len)](/api/oid/#ncmp) | Sync | +| [Oid#strcmp (str)](/api/oid/#strcmp) | Sync | +| [Oid#streq (str)](/api/oid/#streq) | Sync | +| [Oid#tostrS ()](/api/oid/#tostrS) | Sync | + + + +## [Oidarray](/api/oidarray/) + +| Instance Variables | | +| --- | ---: | +| [Oidarray#count](/api/oidarray/#count) | | +| [Oidarray#ids](/api/oidarray/#ids) | | + + + +## [Packbuilder](/api/packbuilder/) + +| Instance Methods | | +| --- | ---: | +| [Packbuilder#hash ()](/api/packbuilder/#hash) | SyncExperimental | +| [Packbuilder#insert (id, name)](/api/packbuilder/#insert) | SyncExperimental | +| [Packbuilder#insertCommit (id)](/api/packbuilder/#insertCommit) | SyncExperimental | +| [Packbuilder#insertTree (id)](/api/packbuilder/#insertTree) | SyncExperimental | +| [Packbuilder#objectCount ()](/api/packbuilder/#objectCount) | SyncExperimental | +| [Packbuilder#setThreads (n)](/api/packbuilder/#setThreads) | SyncExperimental | +| [Packbuilder#written ()](/api/packbuilder/#written) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Packbuilder.STAGE](/api/packbuilder/#STAGE)| | + + +## [Patch](/api/patch/) + +| Class Methods | | +| --- | ---: | +| [Patch.fromBlobAndBuffer (old_blob, old_as_path, buffer, buffer_len, buffer_as_path, opts)](/api/patch/#fromBlobAndBuffer) | AsyncExperimental | +| [Patch.fromBlobs (old_blob, old_as_path, new_blob, new_as_path, opts)](/api/patch/#fromBlobs) | AsyncExperimental | +| [Patch.fromDiff (diff, idx)](/api/patch/#fromDiff) | SyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Patch#getDelta ()](/api/patch/#getDelta) | SyncExperimental | +| [Patch#getHunk (hunk_idx)](/api/patch/#getHunk) | SyncExperimental | +| [Patch#getLineInHunk (hunk_idx, line_of_hunk)](/api/patch/#getLineInHunk) | SyncExperimental | +| [Patch#numHunks ()](/api/patch/#numHunks) | SyncExperimental | +| [Patch#numLinesInHunk (hunk_idx)](/api/patch/#numLinesInHunk) | SyncExperimental | +| [Patch#size (include_context, include_hunk_headers, include_file_headers)](/api/patch/#size) | SyncExperimental | + + +## [Pathspec](/api/pathspec/) + +| Instance Methods | | +| --- | ---: | +| [Pathspec#matchDiff (diff, flags)](/api/pathspec/#matchDiff) | AsyncExperimental | +| [Pathspec#matchIndex (index, flags)](/api/pathspec/#matchIndex) | AsyncExperimental | +| [Pathspec#matchTree (tree, flags)](/api/pathspec/#matchTree) | AsyncExperimental | +| [Pathspec#matchWorkdir (repo, flags)](/api/pathspec/#matchWorkdir) | AsyncExperimental | +| [Pathspec#matchesPath (flags, path)](/api/pathspec/#matchesPath) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Pathspec.FLAG](/api/pathspec/#FLAG)| | + + + + +## [PushOptions](/api/push_options/) + +| Instance Variables | | +| --- | ---: | +| [PushOptions#pb_parallelism](/api/push_options/#pb_parallelism) | | +| [PushOptions#version](/api/push_options/#version) | | + + +## [Rebase](/api/rebase/) + +| Class Methods | | +| --- | ---: | +| [Rebase.init (repo, branch, upstream, onto, signature, opts)](/api/rebase/#init) | AsyncExperimental | +| [Rebase.open (repo)](/api/rebase/#open) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Rebase#abort (signature)](/api/rebase/#abort) | SyncExperimental | +| [Rebase#commit (id, author, committer, message_encoding, message)](/api/rebase/#commit) | SyncExperimental | +| [Rebase#finish (signature, opts)](/api/rebase/#finish) | SyncExperimental | +| [Rebase#operationByIndex (idx)](/api/rebase/#operationByIndex) | SyncExperimental | +| [Rebase#operationCurrent ()](/api/rebase/#operationCurrent) | SyncExperimental | +| [Rebase#operationEntrycount ()](/api/rebase/#operationEntrycount) | SyncExperimental | + + +## [RebaseOperation](/api/rebase_operation/) + +| ENUMS | | +| --- | ---: | +| [RebaseOperation.REBASE_OPERATION](/api/rebase_operation/#REBASE_OPERATION)| | + +| Instance Variables | | +| --- | ---: | +| [RebaseOperation#exec](/api/rebase_operation/#exec) | | +| [RebaseOperation#id](/api/rebase_operation/#id) | | +| [RebaseOperation#type](/api/rebase_operation/#type) | | + + +## [RebaseOptions](/api/rebase_options/) + +| Instance Variables | | +| --- | ---: | +| [RebaseOptions#quiet](/api/rebase_options/#quiet) | | +| [RebaseOptions#rewrite_notes_ref](/api/rebase_options/#rewrite_notes_ref) | | +| [RebaseOptions#version](/api/rebase_options/#version) | | + + +## [Refdb](/api/refdb/) + +| Class Methods | | +| --- | ---: | +| [Refdb.open (repo)](/api/refdb/#open) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Refdb#compress ()](/api/refdb/#compress) | SyncExperimental | + + +## [Reference](/api/reference/) + +| Class Methods | | +| --- | ---: | +| [Reference.create (repo, name, id, force, signature, log_message)](/api/reference/#create) | AsyncExperimental | +| [Reference.createMatching (repo, name, id, force, current_id, signature, log_message)](/api/reference/#createMatching) | AsyncExperimental | +| [Reference.dwim (repo, id, callback)](/api/reference/#dwim) | Sync | +| [Reference.lookup (repo, id, callback)](/api/reference/#lookup) | Sync | +| [Reference.symbolicCreate (repo, name, target, force, signature, log_message)](/api/reference/#symbolicCreate) | AsyncExperimental | +| [Reference.symbolicCreateMatching (repo, name, target, force, current_value, signature, log_message)](/api/reference/#symbolicCreateMatching) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Reference#cmp ()](/api/reference/#cmp) | SyncExperimental | +| [Reference#delete ()](/api/reference/#delete) | SyncExperimental | +| [Reference#isBranch ()](/api/reference/#isBranch) | SyncExperimental | +| [Reference#isConcrete ()](/api/reference/#isConcrete) | Sync | +| [Reference#isHead ()](/api/reference/#isHead) | Sync | +| [Reference#isNote ()](/api/reference/#isNote) | SyncExperimental | +| [Reference#isRemote ()](/api/reference/#isRemote) | SyncExperimental | +| [Reference#isSymbolic ()](/api/reference/#isSymbolic) | Sync | +| [Reference#isTag ()](/api/reference/#isTag) | SyncExperimental | +| [Reference#isValid ()](/api/reference/#isValid) | Sync | +| [Reference#name ()](/api/reference/#name) | SyncExperimental | +| [Reference#owner ()](/api/reference/#owner) | SyncExperimental | +| [Reference#peel (type)](/api/reference/#peel) | AsyncExperimental | +| [Reference#rename (new_name, force, signature, log_message)](/api/reference/#rename) | AsyncExperimental | +| [Reference#resolve ()](/api/reference/#resolve) | AsyncExperimental | +| [Reference#setTarget (id, signature, log_message)](/api/reference/#setTarget) | AsyncExperimental | +| [Reference#shorthand ()](/api/reference/#shorthand) | SyncExperimental | +| [Reference#symbolicSetTarget (target, signature, log_message)](/api/reference/#symbolicSetTarget) | AsyncExperimental | +| [Reference#symbolicTarget ()](/api/reference/#symbolicTarget) | SyncExperimental | +| [Reference#target ()](/api/reference/#target) | SyncExperimental | +| [Reference#targetPeel ()](/api/reference/#targetPeel) | SyncExperimental | +| [Reference#toString ()](/api/reference/#toString) | Sync | +| [Reference#type ()](/api/reference/#type) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Reference.NORMALIZE](/api/reference/#NORMALIZE)| | +| [Reference.TYPE](/api/reference/#TYPE)| | + + +## [Reflog](/api/reflog/) + +| Class Methods | | +| --- | ---: | +| [Reflog.read (repo, name)](/api/reflog/#read) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Reflog#append (id, committer, msg)](/api/reflog/#append) | SyncExperimental | +| [Reflog#drop (idx, rewrite_previous_entry)](/api/reflog/#drop) | SyncExperimental | +| [Reflog#entryByIndex (idx)](/api/reflog/#entryByIndex) | SyncExperimental | +| [Reflog#entrycount ()](/api/reflog/#entrycount) | SyncExperimental | +| [Reflog#write ()](/api/reflog/#write) | SyncExperimental | + + + +## [Refspec](/api/refspec/) + +| Instance Methods | | +| --- | ---: | +| [Refspec#direction ()](/api/refspec/#direction) | SyncExperimental | +| [Refspec#dst ()](/api/refspec/#dst) | SyncExperimental | +| [Refspec#dstMatches (refname)](/api/refspec/#dstMatches) | SyncExperimental | +| [Refspec#force ()](/api/refspec/#force) | SyncExperimental | +| [Refspec#src ()](/api/refspec/#src) | SyncExperimental | +| [Refspec#srcMatches (refname)](/api/refspec/#srcMatches) | SyncExperimental | + + +## [Remote](/api/remote/) + +| Class Methods | | +| --- | ---: | +| [Remote.create (repo, name, url)](/api/remote/#create) | Async | +| [Remote.createAnonymous (repo, url, fetch)](/api/remote/#createAnonymous) | Async | +| [Remote.createWithFetchspec (repo, name, url, fetch)](/api/remote/#createWithFetchspec) | Async | +| [Remote.lookup (repo, name, callback)](/api/remote/#lookup) | Sync | + +| Instance Methods | | +| --- | ---: | +| [Remote#addFetch (refspec)](/api/remote/#addFetch) | Sync | +| [Remote#addPush (refspec)](/api/remote/#addPush) | Sync | +| [Remote#autotag ()](/api/remote/#autotag) | Sync | +| [Remote#clearRefspecs ()](/api/remote/#clearRefspecs) | Sync | +| [Remote#connect (direction)](/api/remote/#connect) | Async | +| [Remote#connected ()](/api/remote/#connected) | Sync | +| [Remote#disconnect ()](/api/remote/#disconnect) | Async | +| [Remote#download (refspecs)](/api/remote/#download) | Async | +| [Remote#dup ()](/api/remote/#dup) | Async | +| [Remote#fetch (refspecs, signature, reflog_message)](/api/remote/#fetch) | Async | +| [Remote#getCallbacks ()](/api/remote/#getCallbacks) | Sync | +| [Remote#getFetchRefspecs ()](/api/remote/#getFetchRefspecs) | Async | +| [Remote#getPushRefspecs ()](/api/remote/#getPushRefspecs) | Async | +| [Remote#getRefspec (n)](/api/remote/#getRefspec) | Sync | +| [Remote#name ()](/api/remote/#name) | Sync | +| [Remote#owner ()](/api/remote/#owner) | Sync | +| [Remote#prune ()](/api/remote/#prune) | Sync | +| [Remote#pruneRefs ()](/api/remote/#pruneRefs) | Sync | +| [Remote#push (refspecs, opts, signature, reflog_message)](/api/remote/#push) | Sync | +| [Remote#pushurl ()](/api/remote/#pushurl) | Sync | +| [Remote#refspecCount ()](/api/remote/#refspecCount) | Sync | +| [Remote#save ()](/api/remote/#save) | Sync | +| [Remote#setAutotag (value)](/api/remote/#setAutotag) | Sync | +| [Remote#setCallbacks (callbacks)](/api/remote/#setCallbacks) | Sync | +| [Remote#setPushurl (url)](/api/remote/#setPushurl) | Sync | +| [Remote#setUpdateFetchhead (value)](/api/remote/#setUpdateFetchhead) | Sync | +| [Remote#setUrl (url)](/api/remote/#setUrl) | Sync | +| [Remote#stats ()](/api/remote/#stats) | Sync | +| [Remote#stop ()](/api/remote/#stop) | Sync | +| [Remote#updateFetchhead ()](/api/remote/#updateFetchhead) | Sync | +| [Remote#updateTips (signature, reflog_message)](/api/remote/#updateTips) | Sync | +| [Remote#upload (refspecs, opts)](/api/remote/#upload) | Sync | +| [Remote#url ()](/api/remote/#url) | Sync | + +| ENUMS | | +| --- | ---: | +| [Remote.AUTOTAG_OPTION](/api/remote/#AUTOTAG_OPTION)| | +| [Remote.COMPLETION_TYPE](/api/remote/#COMPLETION_TYPE)| | + + +## [RemoteCallbacks](/api/remote_callbacks/) + +| Instance Variables | | +| --- | ---: | +| [RemoteCallbacks#certificate_check](/api/remote_callbacks/#certificate_check) | | +| [RemoteCallbacks#credentials](/api/remote_callbacks/#credentials) | | +| [RemoteCallbacks#payload](/api/remote_callbacks/#payload) | | +| [RemoteCallbacks#version](/api/remote_callbacks/#version) | | + + +## [Repository](/api/repository/) + +| Class Methods | | +| --- | ---: | +| [Repository.init (path, is_bare)](/api/repository/#init) | Async | +| [Repository.initExt (repo_path, opts)](/api/repository/#initExt) | Async | +| [Repository.open (path)](/api/repository/#open) | Async | +| [Repository.openBare (bare_path)](/api/repository/#openBare) | Async | +| [Repository.openExt (path, flags, ceiling_dirs)](/api/repository/#openExt) | Async | +| [Repository.wrapOdb (odb)](/api/repository/#wrapOdb) | Async | + +| Instance Methods | | +| --- | ---: | +| [Repository#config ()](/api/repository/#config) | Async | +| [Repository#configSnapshot ()](/api/repository/#configSnapshot) | Async | +| [Repository#createRevWalk (String, callback)](/api/repository/#createRevWalk) | Sync | +| [Repository#detachHead (signature, reflog_message)](/api/repository/#detachHead) | Sync | +| [Repository#getBlob (String, callback)](/api/repository/#getBlob) | Sync | +| [Repository#getBranch (name, callback)](/api/repository/#getBranch) | Sync | +| [Repository#getBranchCommit (name, callback)](/api/repository/#getBranchCommit) | Sync | +| [Repository#getCommit (String, callback)](/api/repository/#getCommit) | Sync | +| [Repository#getCurrentBranch ()](/api/repository/#getCurrentBranch) | Sync | +| [Repository#getNamespace ()](/api/repository/#getNamespace) | Sync | +| [Repository#getReference (name, callback)](/api/repository/#getReference) | Sync | +| [Repository#getReferenceCommit (name, callback)](/api/repository/#getReferenceCommit) | Sync | +| [Repository#getTag (String, callback)](/api/repository/#getTag) | Sync | +| [Repository#getTagByName (Short, callback)](/api/repository/#getTagByName) | Sync | +| [Repository#getTree (String, callback)](/api/repository/#getTree) | Sync | +| [Repository#head ()](/api/repository/#head) | Async | +| [Repository#headDetached ()](/api/repository/#headDetached) | Sync | +| [Repository#headUnborn ()](/api/repository/#headUnborn) | Sync | +| [Repository#index ()](/api/repository/#index) | Async | +| [Repository#isBare ()](/api/repository/#isBare) | Sync | +| [Repository#isEmpty ()](/api/repository/#isEmpty) | Sync | +| [Repository#isShallow ()](/api/repository/#isShallow) | Sync | +| [Repository#messageRemove ()](/api/repository/#messageRemove) | Sync | +| [Repository#odb ()](/api/repository/#odb) | Async | +| [Repository#path ()](/api/repository/#path) | Sync | +| [Repository#refdb ()](/api/repository/#refdb) | Async | +| [Repository#setHead (refname, signature, log_message)](/api/repository/#setHead) | Sync | +| [Repository#setHeadDetached (commitish, signature, log_message)](/api/repository/#setHeadDetached) | Sync | +| [Repository#setNamespace (nmspace)](/api/repository/#setNamespace) | Sync | +| [Repository#setWorkdir (workdir, update_gitlink)](/api/repository/#setWorkdir) | Sync | +| [Repository#state ()](/api/repository/#state) | Sync | +| [Repository#stateCleanup ()](/api/repository/#stateCleanup) | Sync | +| [Repository#workdir ()](/api/repository/#workdir) | Sync | + +| ENUMS | | +| --- | ---: | +| [Repository.INIT_FLAG](/api/repository/#INIT_FLAG)| | +| [Repository.INIT_MODE](/api/repository/#INIT_MODE)| | +| [Repository.OPEN_FLAG](/api/repository/#OPEN_FLAG)| | +| [Repository.STATE](/api/repository/#STATE)| | + + +## [RepositoryInitOptions](/api/repository_init_options/) + +| Instance Variables | | +| --- | ---: | +| [RepositoryInitOptions#description](/api/repository_init_options/#description) | | +| [RepositoryInitOptions#flags](/api/repository_init_options/#flags) | | +| [RepositoryInitOptions#initial_head](/api/repository_init_options/#initial_head) | | +| [RepositoryInitOptions#mode](/api/repository_init_options/#mode) | | +| [RepositoryInitOptions#origin_url](/api/repository_init_options/#origin_url) | | +| [RepositoryInitOptions#template_path](/api/repository_init_options/#template_path) | | +| [RepositoryInitOptions#version](/api/repository_init_options/#version) | | +| [RepositoryInitOptions#workdir_path](/api/repository_init_options/#workdir_path) | | + + +## [Reset](/api/reset/) + +| ENUMS | | +| --- | ---: | +| [Reset.TYPE](/api/reset/#TYPE)| | + + + +## [RevertOptions](/api/revert_options/) + +| Instance Variables | | +| --- | ---: | +| [RevertOptions#checkout_opts](/api/revert_options/#checkout_opts) | | +| [RevertOptions#mainline](/api/revert_options/#mainline) | | +| [RevertOptions#merge_opts](/api/revert_options/#merge_opts) | | +| [RevertOptions#version](/api/revert_options/#version) | | + + +## [Revparse](/api/revparse/) + +| ENUMS | | +| --- | ---: | +| [Revparse.MODE](/api/revparse/#MODE)| | + + +## [Revwalk](/api/revwalk/) + +| Class Methods | | +| --- | ---: | +| [Revwalk.create (repo)](/api/revwalk/#create) | Sync | + +| Instance Methods | | +| --- | ---: | +| [Revwalk#getCommits (count)](/api/revwalk/#getCommits) | Sync | +| [Revwalk#getCommitsUntil (checkFn)](/api/revwalk/#getCommitsUntil) | Sync | +| [Revwalk#hide (commit_id)](/api/revwalk/#hide) | Sync | +| [Revwalk#hideGlob (glob)](/api/revwalk/#hideGlob) | Sync | +| [Revwalk#hideHead ()](/api/revwalk/#hideHead) | Sync | +| [Revwalk#hideRef (refname)](/api/revwalk/#hideRef) | Sync | +| [Revwalk#next ()](/api/revwalk/#next) | Async | +| [Revwalk#push (id)](/api/revwalk/#push) | Sync | +| [Revwalk#pushGlob (glob)](/api/revwalk/#pushGlob) | Sync | +| [Revwalk#pushHead ()](/api/revwalk/#pushHead) | Sync | +| [Revwalk#pushRange (range)](/api/revwalk/#pushRange) | Sync | +| [Revwalk#pushRef (refname)](/api/revwalk/#pushRef) | Sync | +| [Revwalk#repository ()](/api/revwalk/#repository) | Sync | +| [Revwalk#reset ()](/api/revwalk/#reset) | Sync | +| [Revwalk#simplifyFirstParent ()](/api/revwalk/#simplifyFirstParent) | Sync | +| [Revwalk#sorting (sort)](/api/revwalk/#sorting) | Sync | +| [Revwalk#walk (oid, callback)](/api/revwalk/#walk) | Sync | + +| ENUMS | | +| --- | ---: | +| [Revwalk.SORT](/api/revwalk/#SORT)| | + + +## [Signature](/api/signature/) + +| Class Methods | | +| --- | ---: | +| [Signature.create (name, email, time, offset)](/api/signature/#create) | Sync | +| [Signature.default (repo)](/api/signature/#default) | Sync | +| [Signature.now (name, email)](/api/signature/#now) | Sync | + +| Instance Methods | | +| --- | ---: | +| [Signature#dup ()](/api/signature/#dup) | Async | +| [Signature#toString ()](/api/signature/#toString) | Sync | + +| Instance Variables | | +| --- | ---: | +| [Signature#email](/api/signature/#email) | | +| [Signature#name](/api/signature/#name) | | +| [Signature#when](/api/signature/#when) | | + + + +## [Stash](/api/stash/) + +| ENUMS | | +| --- | ---: | +| [Stash.FLAGS](/api/stash/#FLAGS)| | + + +## [Status](/api/status/) + +| ENUMS | | +| --- | ---: | +| [Status.OPT](/api/status/#OPT)| | +| [Status.SHOW](/api/status/#SHOW)| | +| [Status.STATUS](/api/status/#STATUS)| | + + +## [StatusList](/api/status_list/) + +| Class Methods | | +| --- | ---: | +| [StatusList.create (repo, opts)](/api/status_list/#create) | SyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [StatusList#entrycount ()](/api/status_list/#entrycount) | SyncExperimental | +| [StatusList#getPerfdata ()](/api/status_list/#getPerfdata) | AsyncExperimental | + + +## [StatusOptions](/api/status_options/) + +| Instance Variables | | +| --- | ---: | +| [StatusOptions#flags](/api/status_options/#flags) | | +| [StatusOptions#pathspec](/api/status_options/#pathspec) | | +| [StatusOptions#show](/api/status_options/#show) | | +| [StatusOptions#version](/api/status_options/#version) | | + + +## [Strarray](/api/strarray/) + +| Instance Methods | | +| --- | ---: | +| [Strarray#copy ()](/api/strarray/#copy) | SyncExperimental | + +| Instance Variables | | +| --- | ---: | +| [Strarray#count](/api/strarray/#count) | | +| [Strarray#strings](/api/strarray/#strings) | | + + +## [Submodule](/api/submodule/) + +| Class Methods | | +| --- | ---: | +| [Submodule.addSetup (repo, url, path, use_gitlink)](/api/submodule/#addSetup) | AsyncExperimental | +| [Submodule.lookup (repo, name)](/api/submodule/#lookup) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Submodule#addFinalize ()](/api/submodule/#addFinalize) | SyncExperimental | +| [Submodule#addToIndex (write_index)](/api/submodule/#addToIndex) | SyncExperimental | +| [Submodule#branch ()](/api/submodule/#branch) | SyncExperimental | +| [Submodule#fetchRecurseSubmodules ()](/api/submodule/#fetchRecurseSubmodules) | SyncExperimental | +| [Submodule#headId ()](/api/submodule/#headId) | SyncExperimental | +| [Submodule#ignore ()](/api/submodule/#ignore) | SyncExperimental | +| [Submodule#indexId ()](/api/submodule/#indexId) | SyncExperimental | +| [Submodule#init (overwrite)](/api/submodule/#init) | SyncExperimental | +| [Submodule#name ()](/api/submodule/#name) | SyncExperimental | +| [Submodule#open (repo)](/api/submodule/#open) | SyncExperimental | +| [Submodule#owner ()](/api/submodule/#owner) | SyncExperimental | +| [Submodule#path ()](/api/submodule/#path) | SyncExperimental | +| [Submodule#reload (force)](/api/submodule/#reload) | SyncExperimental | +| [Submodule#repoInit (use_gitlink)](/api/submodule/#repoInit) | AsyncExperimental | +| [Submodule#save ()](/api/submodule/#save) | SyncExperimental | +| [Submodule#setFetchRecurseSubmodules (fetch_recurse_submodules)](/api/submodule/#setFetchRecurseSubmodules) | SyncExperimental | +| [Submodule#setIgnore (ignore)](/api/submodule/#setIgnore) | SyncExperimental | +| [Submodule#setUpdate (update)](/api/submodule/#setUpdate) | SyncExperimental | +| [Submodule#setUrl (url)](/api/submodule/#setUrl) | SyncExperimental | +| [Submodule#sync ()](/api/submodule/#sync) | SyncExperimental | +| [Submodule#update (init, options)](/api/submodule/#update) | SyncExperimental | +| [Submodule#updateStrategy ()](/api/submodule/#updateStrategy) | SyncExperimental | +| [Submodule#url ()](/api/submodule/#url) | SyncExperimental | +| [Submodule#wdId ()](/api/submodule/#wdId) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Submodule.IGNORE](/api/submodule/#IGNORE)| | +| [Submodule.RECURSE](/api/submodule/#RECURSE)| | +| [Submodule.STATUS](/api/submodule/#STATUS)| | +| [Submodule.UPDATE](/api/submodule/#UPDATE)| | + + +## [SubmoduleUpdateOptions](/api/submodule_update_options/) + +| Instance Variables | | +| --- | ---: | +| [SubmoduleUpdateOptions#checkout_opts](/api/submodule_update_options/#checkout_opts) | | +| [SubmoduleUpdateOptions#clone_checkout_strategy](/api/submodule_update_options/#clone_checkout_strategy) | | +| [SubmoduleUpdateOptions#remote_callbacks](/api/submodule_update_options/#remote_callbacks) | | +| [SubmoduleUpdateOptions#signature](/api/submodule_update_options/#signature) | | +| [SubmoduleUpdateOptions#version](/api/submodule_update_options/#version) | | + + +## [Tag](/api/tag/) + +| Class Methods | | +| --- | ---: | +| [Tag.lookup (repo, id, callback)](/api/tag/#lookup) | Sync | +| [Tag.lookupPrefix (repo, id, len)](/api/tag/#lookupPrefix) | Async | + +| Instance Methods | | +| --- | ---: | +| [Tag#id ()](/api/tag/#id) | Sync | +| [Tag#message ()](/api/tag/#message) | Sync | +| [Tag#name ()](/api/tag/#name) | Sync | +| [Tag#owner ()](/api/tag/#owner) | Sync | +| [Tag#peel (tag_target_out)](/api/tag/#peel) | Sync | +| [Tag#tagger ()](/api/tag/#tagger) | Sync | +| [Tag#target ()](/api/tag/#target) | Sync | +| [Tag#targetId ()](/api/tag/#targetId) | Sync | +| [Tag#targetType ()](/api/tag/#targetType) | Sync | + + +## [Time](/api/time/) + +| Instance Variables | | +| --- | ---: | +| [Time#offset](/api/time/#offset) | | +| [Time#time](/api/time/#time) | | + + +## [Trace](/api/trace/) + +| ENUMS | | +| --- | ---: | +| [Trace.LEVEL](/api/trace/#LEVEL)| | + + + +## [TransferProgress](/api/transfer_progress/) + +| Instance Variables | | +| --- | ---: | +| [TransferProgress#indexed_deltas](/api/transfer_progress/#indexed_deltas) | | +| [TransferProgress#indexed_objects](/api/transfer_progress/#indexed_objects) | | +| [TransferProgress#local_objects](/api/transfer_progress/#local_objects) | | +| [TransferProgress#received_bytes](/api/transfer_progress/#received_bytes) | | +| [TransferProgress#received_objects](/api/transfer_progress/#received_objects) | | +| [TransferProgress#total_deltas](/api/transfer_progress/#total_deltas) | | +| [TransferProgress#total_objects](/api/transfer_progress/#total_objects) | | + + +## [Transport](/api/transport/) + +| Class Methods | | +| --- | ---: | +| [Transport.sshWithPaths (owner, payload)](/api/transport/#sshWithPaths) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Transport#init (version)](/api/transport/#init) | SyncExperimental | + +| ENUMS | | +| --- | ---: | +| [Transport.FLAGS](/api/transport/#FLAGS)| | + + +## [Tree](/api/tree/) + +| Class Methods | | +| --- | ---: | +| [Tree.lookup (repo, id, callback)](/api/tree/#lookup) | Sync | +| [Tree.lookupPrefix (repo, id, len)](/api/tree/#lookupPrefix) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Tree#_entryByIndex (idx)](/api/tree/#_entryByIndex) | SyncExperimental | +| [Tree#builder ()](/api/tree/#builder) | Sync | +| [Tree#diff (tree, callback)](/api/tree/#diff) | Sync | +| [Tree#entries ()](/api/tree/#entries) | Sync | +| [Tree#entryById (id)](/api/tree/#entryById) | SyncExperimental | +| [Tree#entryByIndex (i)](/api/tree/#entryByIndex) | Sync | +| [Tree#entryByName (name)](/api/tree/#entryByName) | Sync | +| [Tree#entryByPath (path)](/api/tree/#entryByPath) | AsyncExperimental | +| [Tree#entryCount ()](/api/tree/#entryCount) | SyncExperimental | +| [Tree#getEntry (path)](/api/tree/#getEntry) | Sync | +| [Tree#id ()](/api/tree/#id) | SyncExperimental | +| [Tree#owner ()](/api/tree/#owner) | SyncExperimental | +| [Tree#path ()](/api/tree/#path) | Sync | +| [Tree#walk ([blobsOnly)](/api/tree/#walk) | Sync | + +| ENUMS | | +| --- | ---: | +| [Tree.WALK_MODE](/api/tree/#WALK_MODE)| | + + +## [TreeEntry](/api/tree_entry/) + +| Instance Methods | | +| --- | ---: | +| [TreeEntry#getBlob ()](/api/tree_entry/#getBlob) | Sync | +| [TreeEntry#getTree ()](/api/tree_entry/#getTree) | Sync | +| [TreeEntry#isBlob ()](/api/tree_entry/#isBlob) | Sync | +| [TreeEntry#isDirectory ()](/api/tree_entry/#isDirectory) | Sync | +| [TreeEntry#isFile ()](/api/tree_entry/#isFile) | Sync | +| [TreeEntry#isTree ()](/api/tree_entry/#isTree) | Sync | +| [TreeEntry#path ()](/api/tree_entry/#path) | Sync | +| [TreeEntry#sha ()](/api/tree_entry/#sha) | Sync | +| [TreeEntry#toString ()](/api/tree_entry/#toString) | Sync | + +| ENUMS | | +| --- | ---: | +| [TreeEntry.FILEMODE](/api/tree_entry/#FILEMODE)| | + +| Instance Variables | | +| --- | ---: | +| [TreeEntry#attr](/api/tree_entry/#attr) | | +| [TreeEntry#filename](/api/tree_entry/#filename) | | +| [TreeEntry#filename_len](/api/tree_entry/#filename_len) | | +| [TreeEntry#oid](/api/tree_entry/#oid) | | + + +## [Treebuilder](/api/treebuilder/) + +| Class Methods | | +| --- | ---: | +| [Treebuilder.create (repo, source)](/api/treebuilder/#create) | AsyncExperimental | + +| Instance Methods | | +| --- | ---: | +| [Treebuilder#clear ()](/api/treebuilder/#clear) | SyncExperimental | +| [Treebuilder#entrycount ()](/api/treebuilder/#entrycount) | SyncExperimental | +| [Treebuilder#get (filename)](/api/treebuilder/#get) | SyncExperimental | +| [Treebuilder#insert (filename, id, filemode)](/api/treebuilder/#insert) | AsyncExperimental | +| [Treebuilder#remove (filename)](/api/treebuilder/#remove) | SyncExperimental | +| [Treebuilder#write (id)](/api/treebuilder/#write) | SyncExperimental | + + diff --git a/api/index/index.md b/api/index/index.md new file mode 100644 index 0000000..1bc7955 --- /dev/null +++ b/api/index/index.md @@ -0,0 +1,371 @@ +--- +layout: default +menu_item: api +title: Index +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "open": "#open" + "#add": "#add" + "#addByPath": "#addByPath" + "#caps": "#caps" + "#clear": "#clear" + "#conflictAdd": "#conflictAdd" + "#conflictCleanup": "#conflictCleanup" + "#conflictRemove": "#conflictRemove" + "#entries": "#entries" + "#entryCount": "#entryCount" + "#getByIndex": "#getByIndex" + "#getByPath": "#getByPath" + "#hasConflicts": "#hasConflicts" + "#owner": "#owner" + "#path": "#path" + "#read": "#read" + "#readTree": "#readTree" + "#remove": "#remove" + "#removeByPath": "#removeByPath" + "#removeDirectory": "#removeDirectory" + "#setCaps": "#setCaps" + "#write": "#write" + "#writeTree": "#writeTree" + "#writeTreeTo": "#writeTreeTo" + "ADD_OPTION": "#ADD_OPTION" + "CAP": "#CAP" +--- + +## Index.open Async + +```js +Index.open(index_path).then(function(index) { + // Use index +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| index_path | String | the path to the index file in disk | + +| Returns | | +| --- | --- | +| [Index](/api/index/) | the pointer for the new index | + +## Index#add Sync + +```js +var result = index.add(source_entry); +``` + +| Parameters | Type | +| --- | --- | --- | +| source_entry | [IndexEntry](/api/index_entry/) | new entry object | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#addByPath Sync + +```js +var result = index.addByPath(path); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | filename to add | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#caps Sync + +```js +var result = index.caps(); +``` + + +| Returns | | +| --- | --- | +| Number | A combination of GIT_INDEXCAP values | + +## Index#clear Sync + +```js +var result = index.clear(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 on success, error code +< + 0 on failure | + +## Index#conflictAdd Sync + +```js +var result = index.conflictAdd(ancestor_entry, our_entry, their_entry); +``` + +| Parameters | Type | +| --- | --- | --- | +| ancestor_entry | [IndexEntry](/api/index_entry/) | the entry data for the ancestor of the conflict | +| our_entry | [IndexEntry](/api/index_entry/) | the entry data for our side of the merge conflict | +| their_entry | [IndexEntry](/api/index_entry/) | the entry data for their side of the merge conflict | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#conflictCleanup Sync + +```js +var result = index.conflictCleanup(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#conflictRemove Sync + +```js +var result = index.conflictRemove(path); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | path to remove conflicts for | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#entries Sync + +```js +index.entries(); +``` + +Return an array of the entries in this index. + +## Index#entryCount Sync + +```js +var result = index.entryCount(); +``` + + +| Returns | | +| --- | --- | +| Number | integer of count of current entries | + +## Index#getByIndex Sync + +```js +var indexEntry = index.getByIndex(n); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | the position of the entry | + +| Returns | | +| --- | --- | +| [IndexEntry](/api/index_entry/) | the entry; NULL if out of bounds | + +## Index#getByPath Sync + +```js +var indexEntry = index.getByPath(path, stage); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | path to search | +| stage | Number | stage to search | + +| Returns | | +| --- | --- | +| [IndexEntry](/api/index_entry/) | the entry; NULL if it was not found | + +## Index#hasConflicts Sync + +```js +var result = index.hasConflicts(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if at least one conflict is found, 0 otherwise. | + +## Index#owner Sync + +```js +var repository = index.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | the repository | + +## Index#path Sync + +```js +var string = index.path(); +``` + + +| Returns | | +| --- | --- | +| String | path to index file or NULL for in-memory index | + +## Index#read Sync + +```js +var result = index.read(force); +``` + +| Parameters | Type | +| --- | --- | --- | +| force | Number | if true, always reload, vs. only read if file has changed | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#readTree Sync + +```js +var result = index.readTree(tree); +``` + +| Parameters | Type | +| --- | --- | --- | +| tree | [Tree](/api/tree/) | tree to read | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#remove Sync + +```js +var result = index.remove(path, stage); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | path to search | +| stage | Number | stage to search | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#removeByPath Sync + +```js +var result = index.removeByPath(path); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | filename to remove | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#removeDirectory Sync + +```js +var result = index.removeDirectory(dir, stage); +``` + +| Parameters | Type | +| --- | --- | --- | +| dir | String | container directory path | +| stage | Number | stage to search | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#setCaps Sync + +```js +var result = index.setCaps(caps); +``` + +| Parameters | Type | +| --- | --- | --- | +| caps | Number | A combination of GIT_INDEXCAP values | + +| Returns | | +| --- | --- | +| Number | 0 on success, -1 on failure | + +## Index#write Sync + +```js +var result = index.write(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Index#writeTree Async + +```js +index.writeTree().then(function(oid) { + // Use oid +}); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the OID of the written tree | + +## Index#writeTreeTo Async + +```js +index.writeTreeTo(repo).then(function(oid) { + // Use oid +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to write the tree | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | OID of the the written tree | + +## Index.ADD_OPTION ENUM + +| Flag | Value | +| --- | --- | --- | +| Index.ADD_OPTION.ADD_DEFAULT | 0 | +| Index.ADD_OPTION.ADD_FORCE | 1 | +| Index.ADD_OPTION.ADD_DISABLE_PATHSPEC_MATCH | 2 | +| Index.ADD_OPTION.ADD_CHECK_PATHSPEC | 4 | + +## Index.CAP ENUM + +| Flag | Value | +| --- | --- | --- | +| Index.CAP.IGNORE_CASE | 1 | +| Index.CAP.NO_FILEMODE | 2 | +| Index.CAP.NO_SYMLINKS | 4 | +| Index.CAP.FROM_OWNER | -1 | + diff --git a/api/index_entry/index.md b/api/index_entry/index.md new file mode 100644 index 0000000..a67d6e1 --- /dev/null +++ b/api/index_entry/index.md @@ -0,0 +1,29 @@ +--- +layout: default +menu_item: api +title: IndexEntry +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| ctime | IndexTime | +| dev | Number | +| file_size | Number | +| flags | Number | +| flags_extended | Number | +| gid | Number | +| id | Oid | +| ino | Number | +| mode | Number | +| mtime | IndexTime | +| path | String | +| uid | Number | + diff --git a/api/index_time/index.md b/api/index_time/index.md new file mode 100644 index 0000000..62ed34a --- /dev/null +++ b/api/index_time/index.md @@ -0,0 +1,19 @@ +--- +layout: default +menu_item: api +title: IndexTime +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| nanoseconds | Number | +| seconds | Number | + diff --git a/api/indexer/index.md b/api/indexer/index.md new file mode 100644 index 0000000..b0e1863 --- /dev/null +++ b/api/indexer/index.md @@ -0,0 +1,38 @@ +--- +layout: default +menu_item: api +title: Indexer +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#commit": "#commit" + "#hash": "#hash" +--- + +## Indexer#commit SyncExperimental + +```js +var result = indexer.commit(stats); +``` + +| Parameters | Type | +| --- | --- | --- | +| stats | [TransferProgress](/api/transfer_progress/) | | + +| Returns | | +| --- | --- | +| Number | | + +## Indexer#hash SyncExperimental + +```js +var oid = indexer.hash(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | | + diff --git a/api/libgit_2/index.md b/api/libgit_2/index.md new file mode 100644 index 0000000..3374b9c --- /dev/null +++ b/api/libgit_2/index.md @@ -0,0 +1,30 @@ +--- +layout: default +menu_item: api +title: Libgit2 +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "OPT": "#OPT" +--- + +## Libgit2.OPT ENUM + +| Flag | Value | +| --- | --- | --- | +| Libgit2.OPT.GET_MWINDOW_SIZE | 0 | +| Libgit2.OPT.SET_MWINDOW_SIZE | 1 | +| Libgit2.OPT.GET_MWINDOW_MAPPED_LIMIT | 2 | +| Libgit2.OPT.SET_MWINDOW_MAPPED_LIMIT | 3 | +| Libgit2.OPT.GET_SEARCH_PATH | 4 | +| Libgit2.OPT.SET_SEARCH_PATH | 5 | +| Libgit2.OPT.SET_CACHE_OBJECT_LIMIT | 6 | +| Libgit2.OPT.SET_CACHE_MAX_SIZE | 7 | +| Libgit2.OPT.ENABLE_CACHING | 8 | +| Libgit2.OPT.GET_CACHED_MEMORY | 9 | +| Libgit2.OPT.GET_TEMPLATE_PATH | 10 | +| Libgit2.OPT.SET_TEMPLATE_PATH | 11 | +| Libgit2.OPT.SET_SSL_CERT_LOCATIONS | 12 | + diff --git a/api/merge/index.md b/api/merge/index.md new file mode 100644 index 0000000..dd8ec01 --- /dev/null +++ b/api/merge/index.md @@ -0,0 +1,74 @@ +--- +layout: default +menu_item: api +title: Merge +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "commits": "#commits" + "ANALYSIS": "#ANALYSIS" + "FILE_FAVOR": "#FILE_FAVOR" + "FILE_FLAGS": "#FILE_FLAGS" + "PREFERENCE": "#PREFERENCE" + "TREE_FLAG": "#TREE_FLAG" +--- + +## Merge.commits Sync + +```js +Merge.commits(Repository, The, The); +``` + +Merge 2 commits together and create an new index that can +be used to create a merge commit. + + +| Parameters | Type | | +| --- | --- | --- | +| Repository | ep | that contains the given commits | +| The | urCommi | commit that reflects the destination tree | +| The | ption | merge tree options (null for default) | +## Merge.ANALYSIS ENUM + +| Flag | Value | +| --- | --- | --- | +| Merge.ANALYSIS.NONE | 0 | +| Merge.ANALYSIS.NORMAL | 1 | +| Merge.ANALYSIS.UP_TO_DATE | 2 | +| Merge.ANALYSIS.FASTFORWARD | 4 | +| Merge.ANALYSIS.UNBORN | 8 | + +## Merge.FILE_FAVOR ENUM + +| Flag | Value | +| --- | --- | --- | +| Merge.FILE_FAVOR.NORMAL | 0 | +| Merge.FILE_FAVOR.OURS | 1 | +| Merge.FILE_FAVOR.THEIRS | 2 | +| Merge.FILE_FAVOR.UNION | 3 | + +## Merge.FILE_FLAGS ENUM + +| Flag | Value | +| --- | --- | --- | +| Merge.FILE_FLAGS.FILE_DEFAULT | 0 | +| Merge.FILE_FLAGS.FILE_STYLE_MERGE | 1 | +| Merge.FILE_FLAGS.FILE_STYLE_DIFF3 | 2 | +| Merge.FILE_FLAGS.FILE_SIMPLIFY_ALNUM | 4 | + +## Merge.PREFERENCE ENUM + +| Flag | Value | +| --- | --- | --- | +| Merge.PREFERENCE.NONE | 0 | +| Merge.PREFERENCE.NO_FASTFORWARD | 1 | +| Merge.PREFERENCE.FASTFORWARD_ONLY | 2 | + +## Merge.TREE_FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Merge.TREE_FLAG.TREE_FIND_RENAMES | 1 | + diff --git a/api/merge_file_input/index.md b/api/merge_file_input/index.md new file mode 100644 index 0000000..2e6d43d --- /dev/null +++ b/api/merge_file_input/index.md @@ -0,0 +1,26 @@ +--- +layout: default +menu_item: api +title: MergeFileInput +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var mergeFileInput = new MergeFileInput(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| mode | Number | +| path | String | +| ptr | String | +| size | Number | +| version | Number | + diff --git a/api/merge_file_options/index.md b/api/merge_file_options/index.md new file mode 100644 index 0000000..bf8fcb3 --- /dev/null +++ b/api/merge_file_options/index.md @@ -0,0 +1,27 @@ +--- +layout: default +menu_item: api +title: MergeFileOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var mergeFileOptions = new MergeFileOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| ancestor_label | String | +| favor | Number | +| flags | Number | +| our_label | String | +| their_label | String | +| version | Number | + diff --git a/api/merge_file_result/index.md b/api/merge_file_result/index.md new file mode 100644 index 0000000..1fd7917 --- /dev/null +++ b/api/merge_file_result/index.md @@ -0,0 +1,22 @@ +--- +layout: default +menu_item: api +title: MergeFileResult +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| automergeable | Number | +| len | Number | +| mode | Number | +| path | String | +| ptr | String | + diff --git a/api/merge_options/index.md b/api/merge_options/index.md new file mode 100644 index 0000000..73867ca --- /dev/null +++ b/api/merge_options/index.md @@ -0,0 +1,26 @@ +--- +layout: default +menu_item: api +title: MergeOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var mergeOptions = new MergeOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| file_favor | Number | +| flags | Number | +| rename_threshold | Number | +| target_limit | Number | +| version | Number | + diff --git a/api/note/index.md b/api/note/index.md new file mode 100644 index 0000000..38d2cb8 --- /dev/null +++ b/api/note/index.md @@ -0,0 +1,78 @@ +--- +layout: default +menu_item: api +title: Note +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "read": "#read" + "#author": "#author" + "#committer": "#committer" + "#id": "#id" + "#message": "#message" +--- + +## Note.read AsyncExperimental + +```js +Note.read(repo, notes_ref, oid).then(function(note) { + // Use note +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository where to look up the note | +| notes_ref | String | canonical name of the reference to use (optional); defaults to "refs/notes/commits" | +| oid | [Oid](/api/oid/) | OID of the git object to read the note from | + +| Returns | | +| --- | --- | +| [Note](/api/note/) | pointer to the read note; NULL in case of error | + +## Note#author SyncExperimental + +```js +var signature = note.author(); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the author | + +## Note#committer SyncExperimental + +```js +var signature = note.committer(); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the committer | + +## Note#id SyncExperimental + +```js +var oid = note.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the note object's id | + +## Note#message SyncExperimental + +```js +var string = note.message(); +``` + + +| Returns | | +| --- | --- | +| String | the note message | + diff --git a/api/object/index.md b/api/object/index.md new file mode 100644 index 0000000..a5bd0e4 --- /dev/null +++ b/api/object/index.md @@ -0,0 +1,166 @@ +--- +layout: default +menu_item: api +title: Object +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "lookup": "#lookup" + "lookupPrefix": "#lookupPrefix" + "#dup": "#dup" + "#id": "#id" + "#lookupByPath": "#lookupByPath" + "#owner": "#owner" + "#peel": "#peel" + "#shortId": "#shortId" + "#type": "#type" + "TYPE": "#TYPE" +--- + +## Object.lookup AsyncExperimental + +```js +Object.lookup(repo, id, type).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to look up the object | +| id | [Oid](/api/oid/) | the unique identifier for the object | +| type | Number | the type of the object | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | pointer to the looked-up object | + +## Object.lookupPrefix AsyncExperimental + +```js +Object.lookupPrefix(repo, id, len, type).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to look up the object | +| id | [Oid](/api/oid/) | a short identifier for the object | +| len | Number | the length of the short identifier | +| type | Number | the type of the object | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | the looked-up object | + +## Object#dup AsyncExperimental + +```js +object.dup().then(function(object) { + // Use object +}); +``` + + +| Returns | | +| --- | --- | +| [Object](/api/object/) | Pointer to store the copy of the object | + +## Object#id SyncExperimental + +```js +var oid = object.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the SHA1 id | + +## Object#lookupByPath AsyncExperimental + +```js +object.lookupByPath(path, type).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | relative path from the root object to the desired object | +| type | Number | type of object desired | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | buffer that receives the object (which must be freed + by the caller) | + +## Object#owner SyncExperimental + +```js +var repository = object.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | the repository who owns this object | + +## Object#peel AsyncExperimental + +```js +object.peel(target_type).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| target_type | Number | The type of the requested object (a GIT_OBJ_ value) | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | Pointer to the peeled git_object | + +## Object#shortId AsyncExperimental + +```js +object.shortId().then(function(buf) { + // Use buf +}); +``` + + +| Returns | | +| --- | --- | +| [Buf](/api/buf/) | Buffer to write string into | + +## Object#type SyncExperimental + +```js +var result = object.type(); +``` + + +| Returns | | +| --- | --- | +| Number | the object's type | + +## Object.TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Object.TYPE.ANY | -2 | +| Object.TYPE.BAD | -1 | +| Object.TYPE.EXT1 | 0 | +| Object.TYPE.COMMIT | 1 | +| Object.TYPE.TREE | 2 | +| Object.TYPE.BLOB | 3 | +| Object.TYPE.TAG | 4 | +| Object.TYPE.EXT2 | 5 | +| Object.TYPE.OFS_DELTA | 6 | +| Object.TYPE.REF_DELTA | 7 | + diff --git a/api/odb/index.md b/api/odb/index.md new file mode 100644 index 0000000..3d38fac --- /dev/null +++ b/api/odb/index.md @@ -0,0 +1,89 @@ +--- +layout: default +menu_item: api +title: Odb +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "open": "#open" + "#addDiskAlternate": "#addDiskAlternate" + "#read": "#read" + "#write": "#write" + "STREAM": "#STREAM" +--- + +## Odb.open Async + +```js +Odb.open(objects_dir).then(function(odb) { + // Use odb +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| objects_dir | String | path of the backends' "objects" directory. | + +| Returns | | +| --- | --- | +| [Odb](/api/odb/) | location to store the database pointer, if opened. + Set to NULL if the open failed. | + +## Odb#addDiskAlternate Sync + +```js +var result = odb.addDiskAlternate(path); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | path to the objects folder for the alternate | + +| Returns | | +| --- | --- | +| Number | 0 on success; error code otherwise | + +## Odb#read Async + +```js +odb.read(id).then(function(odbObject) { + // Use odbObject +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | identity of the object to read. | + +| Returns | | +| --- | --- | +| [OdbObject](/api/odb_object/) | the read object | + +## Odb#write Async + +```js +odb.write(data, len, type).then(function(oid) { + // Use oid +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| data | Buffer | buffer with the data to store | +| len | Number | size of the buffer | +| type | Number | type of the data to store | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | pointer to store the OID result of the write | + +## Odb.STREAM ENUM + +| Flag | Value | +| --- | --- | --- | +| Odb.STREAM.RDONLY | 2 | +| Odb.STREAM.WRONLY | 4 | +| Odb.STREAM.RW | 6 | + diff --git a/api/odb_object/index.md b/api/odb_object/index.md new file mode 100644 index 0000000..d7f3dcb --- /dev/null +++ b/api/odb_object/index.md @@ -0,0 +1,73 @@ +--- +layout: default +menu_item: api +title: OdbObject +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#data": "#data" + "#dup": "#dup" + "#id": "#id" + "#size": "#size" + "#type": "#type" +--- + +## OdbObject#data SyncExperimental + +```js +var buffer = odbObject.data(); +``` + + +| Returns | | +| --- | --- | +| Buffer | the data | + +## OdbObject#dup AsyncExperimental + +```js +odbObject.dup().then(function(odbObject) { + // Use odbObject +}); +``` + + +| Returns | | +| --- | --- | +| [OdbObject](/api/odb_object/) | the copy | + +## OdbObject#id SyncExperimental + +```js +var oid = odbObject.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the OID | + +## OdbObject#size SyncExperimental + +```js +var result = odbObject.size(); +``` + + +| Returns | | +| --- | --- | +| Number | the size | + +## OdbObject#type SyncExperimental + +```js +var result = odbObject.type(); +``` + + +| Returns | | +| --- | --- | +| Number | the type | + diff --git a/api/oid/index.md b/api/oid/index.md new file mode 100644 index 0000000..1a814c2 --- /dev/null +++ b/api/oid/index.md @@ -0,0 +1,126 @@ +--- +layout: default +menu_item: api +title: Oid +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "fromString": "#fromString" + "#cmp": "#cmp" + "#equal": "#equal" + "#iszero": "#iszero" + "#ncmp": "#ncmp" + "#strcmp": "#strcmp" + "#streq": "#streq" + "#tostrS": "#tostrS" +--- + +## Oid.fromString Sync + +```js +var oid = Oid.fromString(str); +``` + +| Parameters | Type | | +| --- | --- | --- | +| str | String | input hex string; must be pointing at the start of the hex sequence and have at least the number of bytes needed for an oid encoded in hex (40 bytes). | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | oid structure the result is written into. | + +## Oid#cmp Sync + +```js +var result = oid.cmp(); +``` + + +| Returns | | +| --- | --- | +| Number | +< +0, 0, >0 if a +< + b, a == b, a > b. | + +## Oid#equal Sync + +```js +var result = oid.equal(); +``` + + +| Returns | | +| --- | --- | +| Number | true if equal, false otherwise | + +## Oid#iszero Sync + +```js +var result = oid.iszero(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if all zeros, 0 otherwise. | + +## Oid#ncmp Sync + +```js +var result = oid.ncmp(len); +``` + +| Parameters | Type | +| --- | --- | --- | +| len | Number | the number of hex chars to compare | + +| Returns | | +| --- | --- | +| Number | 0 in case of a match | + +## Oid#strcmp Sync + +```js +var result = oid.strcmp(str); +``` + +| Parameters | Type | +| --- | --- | --- | +| str | String | input hex string of an object id. | + +| Returns | | +| --- | --- | +| Number | -1 if str is not valid, +< +0 if id sorts before str, + 0 if id matches str, >0 if id sorts after str. | + +## Oid#streq Sync + +```js +var result = oid.streq(str); +``` + +| Parameters | Type | +| --- | --- | --- | +| str | String | input hex string of an object id. | + +| Returns | | +| --- | --- | +| Number | 0 in case of a match, -1 otherwise. | + +## Oid#tostrS Sync + +```js +var string = oid.tostrS(); +``` + + +| Returns | | +| --- | --- | +| String | the c-string | + diff --git a/api/oidarray/index.md b/api/oidarray/index.md new file mode 100644 index 0000000..39e8aa6 --- /dev/null +++ b/api/oidarray/index.md @@ -0,0 +1,19 @@ +--- +layout: default +menu_item: api +title: Oidarray +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| count | Number | +| ids | Oid | + diff --git a/api/packbuilder/index.md b/api/packbuilder/index.md new file mode 100644 index 0000000..ef2385f --- /dev/null +++ b/api/packbuilder/index.md @@ -0,0 +1,116 @@ +--- +layout: default +menu_item: api +title: Packbuilder +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#hash": "#hash" + "#insert": "#insert" + "#insertCommit": "#insertCommit" + "#insertTree": "#insertTree" + "#objectCount": "#objectCount" + "#setThreads": "#setThreads" + "#written": "#written" + "STAGE": "#STAGE" +--- + +## Packbuilder#hash SyncExperimental + +```js +var oid = packbuilder.hash(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | | + +## Packbuilder#insert SyncExperimental + +```js +var result = packbuilder.insert(id, name); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | The oid of the commit | +| name | String | The name; might be NULL | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Packbuilder#insertCommit SyncExperimental + +```js +var result = packbuilder.insertCommit(id); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | The oid of the commit | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Packbuilder#insertTree SyncExperimental + +```js +var result = packbuilder.insertTree(id); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | The oid of the root tree | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Packbuilder#objectCount SyncExperimental + +```js +var result = packbuilder.objectCount(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of objects in the packfile | + +## Packbuilder#setThreads SyncExperimental + +```js +var result = packbuilder.setThreads(n); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | Number of threads to spawn | + +| Returns | | +| --- | --- | +| Number | number of actual threads to be used | + +## Packbuilder#written SyncExperimental + +```js +var result = packbuilder.written(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of objects which have already been written | + +## Packbuilder.STAGE ENUM + +| Flag | Value | +| --- | --- | --- | +| Packbuilder.STAGE.ADDING_OBJECTS | 0 | +| Packbuilder.STAGE.DELTAFICATION | 1 | + diff --git a/api/patch/index.md b/api/patch/index.md new file mode 100644 index 0000000..2cdb22a --- /dev/null +++ b/api/patch/index.md @@ -0,0 +1,157 @@ +--- +layout: default +menu_item: api +title: Patch +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "fromBlobAndBuffer": "#fromBlobAndBuffer" + "fromBlobs": "#fromBlobs" + "fromDiff": "#fromDiff" + "#getDelta": "#getDelta" + "#getHunk": "#getHunk" + "#getLineInHunk": "#getLineInHunk" + "#numHunks": "#numHunks" + "#numLinesInHunk": "#numLinesInHunk" + "#size": "#size" +--- + +## Patch.fromBlobAndBuffer AsyncExperimental + +```js +Patch.fromBlobAndBuffer(old_blob, old_as_path, buffer, buffer_len, buffer_as_path, opts).then(function(patch) { + // Use patch +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| old_blob | [Blob](/api/blob/) | Blob for old side of diff, or NULL for empty blob | +| old_as_path | String | Treat old blob as if it had this filename; can be NULL | +| buffer | String | Raw data for new side of diff, or NULL for empty | +| buffer_len | Number | Length of raw data for new side of diff | +| buffer_as_path | String | Treat buffer as if it had this filename; can be NULL | +| opts | [DiffOptions](/api/diff_options/) | Options for diff, or NULL for default options | + +| Returns | | +| --- | --- | +| [Patch](/api/patch/) | The generated patch; NULL on error | + +## Patch.fromBlobs AsyncExperimental + +```js +Patch.fromBlobs(old_blob, old_as_path, new_blob, new_as_path, opts).then(function(patch) { + // Use patch +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| old_blob | [Blob](/api/blob/) | Blob for old side of diff, or NULL for empty blob | +| old_as_path | String | Treat old blob as if it had this filename; can be NULL | +| new_blob | [Blob](/api/blob/) | Blob for new side of diff, or NULL for empty blob | +| new_as_path | String | Treat new blob as if it had this filename; can be NULL | +| opts | [DiffOptions](/api/diff_options/) | Options for diff, or NULL for default options | + +| Returns | | +| --- | --- | +| [Patch](/api/patch/) | The generated patch; NULL on error | + +## Patch.fromDiff SyncExperimental + +```js +var patch = Patch.fromDiff(diff, idx); +``` + +| Parameters | Type | | +| --- | --- | --- | +| diff | [Diff](/api/diff/) | Diff list object | +| idx | Number | Index into diff list | + +| Returns | | +| --- | --- | +| [Patch](/api/patch/) | Output parameter for the delta patch object | + +## Patch#getDelta SyncExperimental + +```js +var diffDelta = patch.getDelta(); +``` + + +| Returns | | +| --- | --- | +| [DiffDelta](/api/diff_delta/) | | + +## Patch#getHunk SyncExperimental + +```js +var result = patch.getHunk(hunk_idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| hunk_idx | Number | Input index of hunk to get information about | + +| Returns | | +| --- | --- | +| Number | Output count of total lines in this hunk | + +## Patch#getLineInHunk SyncExperimental + +```js +var diffLine = patch.getLineInHunk(hunk_idx, line_of_hunk); +``` + +| Parameters | Type | +| --- | --- | --- | +| hunk_idx | Number | The index of the hunk | +| line_of_hunk | Number | The index of the line in the hunk | + +| Returns | | +| --- | --- | +| [DiffLine](/api/diff_line/) | The git_diff_line data for this line | + +## Patch#numHunks SyncExperimental + +```js +var result = patch.numHunks(); +``` + + +| Returns | | +| --- | --- | +| Number | | + +## Patch#numLinesInHunk SyncExperimental + +```js +var result = patch.numLinesInHunk(hunk_idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| hunk_idx | Number | Index of the hunk | + +| Returns | | +| --- | --- | +| Number | Number of lines in hunk or -1 if invalid hunk index | + +## Patch#size SyncExperimental + +```js +var result = patch.size(include_context, include_hunk_headers, include_file_headers); +``` + +| Parameters | Type | +| --- | --- | --- | +| include_context | Number | Include context lines in size if non-zero | +| include_hunk_headers | Number | Include hunk header lines if non-zero | +| include_file_headers | Number | Include file header lines if non-zero | + +| Returns | | +| --- | --- | +| Number | The number of bytes of data | + diff --git a/api/pathspec/index.md b/api/pathspec/index.md new file mode 100644 index 0000000..f967773 --- /dev/null +++ b/api/pathspec/index.md @@ -0,0 +1,112 @@ +--- +layout: default +menu_item: api +title: Pathspec +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#matchDiff": "#matchDiff" + "#matchIndex": "#matchIndex" + "#matchTree": "#matchTree" + "#matchWorkdir": "#matchWorkdir" + "#matchesPath": "#matchesPath" + "FLAG": "#FLAG" +--- + +## Pathspec#matchDiff AsyncExperimental + +```js +pathspec.matchDiff(diff, flags).then(function(pathspecMatchList) { + // Use pathspecMatchList +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| diff | [Diff](/api/diff/) | A generated diff list | +| flags | Number | Combination of git_pathspec_flag_t options to control match | + +| Returns | | +| --- | --- | +| [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | + +## Pathspec#matchIndex AsyncExperimental + +```js +pathspec.matchIndex(index, flags).then(function(pathspecMatchList) { + // Use pathspecMatchList +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| index | [Index](/api/index/) | The index to match against | +| flags | Number | Combination of git_pathspec_flag_t options to control match | + +| Returns | | +| --- | --- | +| [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | + +## Pathspec#matchTree AsyncExperimental + +```js +pathspec.matchTree(tree, flags).then(function(pathspecMatchList) { + // Use pathspecMatchList +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| tree | [Tree](/api/tree/) | The root-level tree to match against | +| flags | Number | Combination of git_pathspec_flag_t options to control match | + +| Returns | | +| --- | --- | +| [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | + +## Pathspec#matchWorkdir AsyncExperimental + +```js +pathspec.matchWorkdir(repo, flags).then(function(pathspecMatchList) { + // Use pathspecMatchList +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository in which to match; bare repo is an error | +| flags | Number | Combination of git_pathspec_flag_t options to control match | + +| Returns | | +| --- | --- | +| [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | + +## Pathspec#matchesPath SyncExperimental + +```js +var result = pathspec.matchesPath(flags, path); +``` + +| Parameters | Type | +| --- | --- | --- | +| flags | Number | Combination of git_pathspec_flag_t options to control match | +| path | String | The pathname to attempt to match | + +| Returns | | +| --- | --- | +| Number | 1 is path matches spec, 0 if it does not | + +## Pathspec.FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Pathspec.FLAG.DEFAULT | 0 | +| Pathspec.FLAG.IGNORE_CASE | 1 | +| Pathspec.FLAG.USE_CASE | 2 | +| Pathspec.FLAG.NO_GLOB | 4 | +| Pathspec.FLAG.NO_MATCH_ERROR | 8 | +| Pathspec.FLAG.FIND_FAILURES | 16 | +| Pathspec.FLAG.FAILURES_ONLY | 32 | + diff --git a/api/push_options/index.md b/api/push_options/index.md new file mode 100644 index 0000000..97050d9 --- /dev/null +++ b/api/push_options/index.md @@ -0,0 +1,23 @@ +--- +layout: default +menu_item: api +title: PushOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var pushOptions = new PushOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| pb_parallelism | Number | +| version | Number | + diff --git a/api/rebase/index.md b/api/rebase/index.md new file mode 100644 index 0000000..1a94122 --- /dev/null +++ b/api/rebase/index.md @@ -0,0 +1,143 @@ +--- +layout: default +menu_item: api +title: Rebase +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "init": "#init" + "open": "#open" + "#abort": "#abort" + "#commit": "#commit" + "#finish": "#finish" + "#operationByIndex": "#operationByIndex" + "#operationCurrent": "#operationCurrent" + "#operationEntrycount": "#operationEntrycount" +--- + +## Rebase.init AsyncExperimental + +```js +Rebase.init(repo, branch, upstream, onto, signature, opts).then(function(rebase) { + // Use rebase +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository to perform the rebase | +| branch | [AnnotatedCommit](/api/annotated_commit/) | The terminal commit to rebase | +| upstream | [AnnotatedCommit](/api/annotated_commit/) | The commit to begin rebasing from, or NULL to rebase all reachable commits | +| onto | [AnnotatedCommit](/api/annotated_commit/) | The branch to rebase onto, or NULL to rebase onto the given upstream | +| signature | [Signature](/api/signature/) | The signature of the rebaser (optional) | +| opts | [RebaseOptions](/api/rebase_options/) | Options to specify how rebase is performed | + +| Returns | | +| --- | --- | +| [Rebase](/api/rebase/) | Pointer to store the rebase object | + +## Rebase.open AsyncExperimental + +```js +Rebase.open(repo).then(function(rebase) { + // Use rebase +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | + +| Returns | | +| --- | --- | +| [Rebase](/api/rebase/) | Pointer to store the rebase object | + +## Rebase#abort SyncExperimental + +```js +var result = rebase.abort(signature); +``` + +| Parameters | Type | +| --- | --- | --- | +| signature | [Signature](/api/signature/) | The identity that is aborting the rebase | + +| Returns | | +| --- | --- | +| Number | Zero on success; GIT_ENOTFOUND if a rebase is not in progress, + -1 on other errors. | + +## Rebase#commit SyncExperimental + +```js +var result = rebase.commit(id, author, committer, message_encoding, message); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | Pointer in which to store the OID of the newly created commit | +| author | [Signature](/api/signature/) | The author of the updated commit, or NULL to keep the author from the original commit | +| committer | [Signature](/api/signature/) | The committer of the rebase | +| message_encoding | String | The encoding for the message in the commit, represented with a standard encoding name. If message is NULL, this should also be NULL, and the encoding from the original commit will be maintained. If message is specified, this may be NULL to indicate that "UTF-8" is to be used. | +| message | String | The message for this commit, or NULL to use the message from the original commit. | + +| Returns | | +| --- | --- | +| Number | Zero on success, GIT_EUNMERGED if there are unmerged changes in + the index, GIT_EAPPLIED if the current commit has already + been applied to the upstream and there is nothing to commit, + -1 on failure. | + +## Rebase#finish SyncExperimental + +```js +var result = rebase.finish(signature, opts); +``` + +| Parameters | Type | +| --- | --- | --- | +| signature | [Signature](/api/signature/) | The identity that is finishing the rebase (optional) | +| opts | [RebaseOptions](/api/rebase_options/) | Options to specify how rebase is finished | + +| Returns | | +| --- | --- | +| Number | | + +## Rebase#operationByIndex SyncExperimental + +```js +var rebaseOperation = rebase.operationByIndex(idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| idx | Number | The index of the rebase operation to retrieve | + +| Returns | | +| --- | --- | +| [RebaseOperation](/api/rebase_operation/) | The rebase operation or NULL if `idx` was out of bounds | + +## Rebase#operationCurrent SyncExperimental + +```js +var result = rebase.operationCurrent(); +``` + + +| Returns | | +| --- | --- | +| Number | The index of the rebase operation currently being applied. | + +## Rebase#operationEntrycount SyncExperimental + +```js +var result = rebase.operationEntrycount(); +``` + + +| Returns | | +| --- | --- | +| Number | The number of rebase operations in total | + diff --git a/api/rebase_operation/index.md b/api/rebase_operation/index.md new file mode 100644 index 0000000..038574f --- /dev/null +++ b/api/rebase_operation/index.md @@ -0,0 +1,32 @@ +--- +layout: default +menu_item: api +title: RebaseOperation +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "REBASE_OPERATION": "#REBASE_OPERATION" + "Instance Variables": "#ivars" +--- + +## RebaseOperation.REBASE_OPERATION ENUM + +| Flag | Value | +| --- | --- | --- | +| RebaseOperation.REBASE_OPERATION.PICK | 0 | +| RebaseOperation.REBASE_OPERATION.REWORD | 1 | +| RebaseOperation.REBASE_OPERATION.EDIT | 2 | +| RebaseOperation.REBASE_OPERATION.SQUASH | 3 | +| RebaseOperation.REBASE_OPERATION.FIXUP | 4 | +| RebaseOperation.REBASE_OPERATION.EXEC | 5 | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| exec | String | +| id | Oid | +| type | Number | + diff --git a/api/rebase_options/index.md b/api/rebase_options/index.md new file mode 100644 index 0000000..c1c5deb --- /dev/null +++ b/api/rebase_options/index.md @@ -0,0 +1,24 @@ +--- +layout: default +menu_item: api +title: RebaseOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var rebaseOptions = new RebaseOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| quiet | Number | +| rewrite_notes_ref | String | +| version | Number | + diff --git a/api/refdb/index.md b/api/refdb/index.md new file mode 100644 index 0000000..14a75a3 --- /dev/null +++ b/api/refdb/index.md @@ -0,0 +1,41 @@ +--- +layout: default +menu_item: api +title: Refdb +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "open": "#open" + "#compress": "#compress" +--- + +## Refdb.open AsyncExperimental + +```js +Refdb.open(repo).then(function(refdb) { + // Use refdb +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository | + +| Returns | | +| --- | --- | +| [Refdb](/api/refdb/) | location to store the database pointer, if opened. + Set to NULL if the open failed. | + +## Refdb#compress SyncExperimental + +```js +var result = refdb.compress(); +``` + + +| Returns | | +| --- | --- | +| Number | | + diff --git a/api/reference/index.md b/api/reference/index.md new file mode 100644 index 0000000..3ea76b1 --- /dev/null +++ b/api/reference/index.md @@ -0,0 +1,443 @@ +--- +layout: default +menu_item: api +title: Reference +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "createMatching": "#createMatching" + "dwim": "#dwim" + "lookup": "#lookup" + "symbolicCreate": "#symbolicCreate" + "symbolicCreateMatching": "#symbolicCreateMatching" + "#cmp": "#cmp" + "#delete": "#delete" + "#isBranch": "#isBranch" + "#isConcrete": "#isConcrete" + "#isHead": "#isHead" + "#isNote": "#isNote" + "#isRemote": "#isRemote" + "#isSymbolic": "#isSymbolic" + "#isTag": "#isTag" + "#isValid": "#isValid" + "#name": "#name" + "#owner": "#owner" + "#peel": "#peel" + "#rename": "#rename" + "#resolve": "#resolve" + "#setTarget": "#setTarget" + "#shorthand": "#shorthand" + "#symbolicSetTarget": "#symbolicSetTarget" + "#symbolicTarget": "#symbolicTarget" + "#target": "#target" + "#targetPeel": "#targetPeel" + "#toString": "#toString" + "#type": "#type" + "NORMALIZE": "#NORMALIZE" + "TYPE": "#TYPE" +--- + +## Reference.create AsyncExperimental + +```js +Reference.create(repo, name, id, force, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where that reference will live | +| name | String | The name of the reference | +| id | [Oid](/api/oid/) | The object id pointed to by the reference. | +| force | Number | Overwrite existing references | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference.createMatching AsyncExperimental + +```js +Reference.createMatching(repo, name, id, force, current_id, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where that reference will live | +| name | String | The name of the reference | +| id | [Oid](/api/oid/) | The object id pointed to by the reference. | +| force | Number | Overwrite existing references | +| current_id | [Oid](/api/oid/) | The expected value of the reference at the time of update | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference.dwim Sync + +```js +Reference.dwim(repo, id, callback); +``` + +Retrieves the reference by it's short name + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the reference lives in | +| id | String, [Reference](/api/reference/) | The reference to lookup | +| callback | Function | | +## Reference.lookup Sync + +```js +Reference.lookup(repo, id, callback); +``` + +Retrieves the reference pointed to by the oid + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the reference lives in | +| id | String, [Reference](/api/reference/) | The reference to lookup | +| callback | Function | | +## Reference.symbolicCreate AsyncExperimental + +```js +Reference.symbolicCreate(repo, name, target, force, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where that reference will live | +| name | String | The name of the reference | +| target | String | The target of the reference | +| force | Number | Overwrite existing references | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference.symbolicCreateMatching AsyncExperimental + +```js +Reference.symbolicCreateMatching(repo, name, target, force, current_value, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where that reference will live | +| name | String | The name of the reference | +| target | String | The target of the reference | +| force | Number | Overwrite existing references | +| current_value | String | The expected value of the reference when updating | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference#cmp SyncExperimental + +```js +var result = reference.cmp(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 if the same, else a stable but meaningless ordering. | + +## Reference#delete SyncExperimental + +```js +var result = reference.delete(); +``` + + +| Returns | | +| --- | --- | +| Number | 0, GIT_EMODIFIED or an error code | + +## Reference#isBranch SyncExperimental + +```js +var result = reference.isBranch(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 when the reference lives in the refs/heads + namespace; 0 otherwise. | + +## Reference#isConcrete Sync + +```js +reference.isConcrete(); +``` + +Returns true if this reference is not symbolic + +## Reference#isHead Sync + +```js +reference.isHead(); +``` + +Returns if the ref is pointed at by HEAD + +## Reference#isNote SyncExperimental + +```js +var result = reference.isNote(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 when the reference lives in the refs/notes + namespace; 0 otherwise. | + +## Reference#isRemote SyncExperimental + +```js +var result = reference.isRemote(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 when the reference lives in the refs/remotes + namespace; 0 otherwise. | + +## Reference#isSymbolic Sync + +```js +reference.isSymbolic(); +``` + +Returns true if this reference is symbolic + +## Reference#isTag SyncExperimental + +```js +var result = reference.isTag(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 when the reference lives in the refs/tags + namespace; 0 otherwise. | + +## Reference#isValid Sync + +```js +reference.isValid(); +``` + +Returns true if this reference is valid + +## Reference#name SyncExperimental + +```js +var string = reference.name(); +``` + + +| Returns | | +| --- | --- | +| String | the full name for the ref | + +## Reference#owner SyncExperimental + +```js +var repository = reference.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | the repo | + +## Reference#peel AsyncExperimental + +```js +reference.peel(type).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| type | Number | The type of the requested object (GIT_OBJ_COMMIT, GIT_OBJ_TAG, GIT_OBJ_TREE, GIT_OBJ_BLOB or GIT_OBJ_ANY). | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | Pointer to the peeled git_object | + +## Reference#rename AsyncExperimental + +```js +reference.rename(new_name, force, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| new_name | String | The new name for the reference | +| force | Number | Overwrite an existing reference | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Reference#resolve AsyncExperimental + +```js +reference.resolve().then(function(reference) { + // Use reference +}); +``` + + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the peeled reference | + +## Reference#setTarget AsyncExperimental + +```js +reference.setTarget(id, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | The new target OID for the reference | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference#shorthand SyncExperimental + +```js +var string = reference.shorthand(); +``` + + +| Returns | | +| --- | --- | +| String | the human-readable version of the name | + +## Reference#symbolicSetTarget AsyncExperimental + +```js +reference.symbolicSetTarget(target, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| target | String | The new target for the reference | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | Pointer to the newly created reference | + +## Reference#symbolicTarget SyncExperimental + +```js +var string = reference.symbolicTarget(); +``` + + +| Returns | | +| --- | --- | +| String | the name if available, NULL otherwise | + +## Reference#target SyncExperimental + +```js +var oid = reference.target(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the oid if available, NULL otherwise | + +## Reference#targetPeel SyncExperimental + +```js +var oid = reference.targetPeel(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the oid if available, NULL otherwise | + +## Reference#toString Sync + +```js +reference.toString(); +``` + +Returns the name of the reference. + +## Reference#type SyncExperimental + +```js +var result = reference.type(); +``` + + +| Returns | | +| --- | --- | +| Number | the type | + +## Reference.NORMALIZE ENUM + +| Flag | Value | +| --- | --- | --- | +| Reference.NORMALIZE.REF_FORMAT_NORMAL | 0 | +| Reference.NORMALIZE.REF_FORMAT_ALLOW_ONELEVEL | 1 | +| Reference.NORMALIZE.REF_FORMAT_REFSPEC_PATTERN | 2 | +| Reference.NORMALIZE.REF_FORMAT_REFSPEC_SHORTHAND | 4 | + +## Reference.TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Reference.TYPE.INVALID | 0 | +| Reference.TYPE.OID | 1 | +| Reference.TYPE.SYMBOLIC | 2 | +| Reference.TYPE.LISTALL | 3 | + diff --git a/api/reflog/index.md b/api/reflog/index.md new file mode 100644 index 0000000..3ea075b --- /dev/null +++ b/api/reflog/index.md @@ -0,0 +1,102 @@ +--- +layout: default +menu_item: api +title: Reflog +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "read": "#read" + "#append": "#append" + "#drop": "#drop" + "#entryByIndex": "#entryByIndex" + "#entrycount": "#entrycount" + "#write": "#write" +--- + +## Reflog.read AsyncExperimental + +```js +Reflog.read(repo, name).then(function(reflog) { + // Use reflog +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repostiory | +| name | String | reference to look up | + +| Returns | | +| --- | --- | +| [Reflog](/api/reflog/) | pointer to reflog | + +## Reflog#append SyncExperimental + +```js +var result = reflog.append(id, committer, msg); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | the OID the reference is now pointing to | +| committer | [Signature](/api/signature/) | the signature of the committer | +| msg | String | the reflog message | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Reflog#drop SyncExperimental + +```js +var result = reflog.drop(idx, rewrite_previous_entry); +``` + +| Parameters | Type | +| --- | --- | --- | +| idx | Number | the position of the entry to remove. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`. | +| rewrite_previous_entry | Number | 1 to rewrite the history; 0 otherwise. | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_ENOTFOUND if the entry doesn't exist + or an error code. | + +## Reflog#entryByIndex SyncExperimental + +```js +var reflogEntry = reflog.entryByIndex(idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| idx | Number | the position of the entry to lookup. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`. | + +| Returns | | +| --- | --- | +| [ReflogEntry](/api/reflog_entry/) | the entry; NULL if not found | + +## Reflog#entrycount SyncExperimental + +```js +var result = reflog.entrycount(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of log entries | + +## Reflog#write SyncExperimental + +```js +var result = reflog.write(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + diff --git a/api/refspec/index.md b/api/refspec/index.md new file mode 100644 index 0000000..7a2f014 --- /dev/null +++ b/api/refspec/index.md @@ -0,0 +1,89 @@ +--- +layout: default +menu_item: api +title: Refspec +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#direction": "#direction" + "#dst": "#dst" + "#dstMatches": "#dstMatches" + "#force": "#force" + "#src": "#src" + "#srcMatches": "#srcMatches" +--- + +## Refspec#direction SyncExperimental + +```js +var result = refspec.direction(); +``` + + +| Returns | | +| --- | --- | +| Number | GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH | + +## Refspec#dst SyncExperimental + +```js +var string = refspec.dst(); +``` + + +| Returns | | +| --- | --- | +| String | the refspec's destination specifier | + +## Refspec#dstMatches SyncExperimental + +```js +var result = refspec.dstMatches(refname); +``` + +| Parameters | Type | +| --- | --- | --- | +| refname | String | the name of the reference to check | + +| Returns | | +| --- | --- | +| Number | 1 if the refspec matches, 0 otherwise | + +## Refspec#force SyncExperimental + +```js +var result = refspec.force(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if force update has been set, 0 otherwise | + +## Refspec#src SyncExperimental + +```js +var string = refspec.src(); +``` + + +| Returns | | +| --- | --- | +| String | the refspec's source specifier | + +## Refspec#srcMatches SyncExperimental + +```js +var result = refspec.srcMatches(refname); +``` + +| Parameters | Type | +| --- | --- | --- | +| refname | String | the name of the reference to check | + +| Returns | | +| --- | --- | +| Number | 1 if the refspec matches, 0 otherwise | + diff --git a/api/remote/index.md b/api/remote/index.md new file mode 100644 index 0000000..c9d78e3 --- /dev/null +++ b/api/remote/index.md @@ -0,0 +1,540 @@ +--- +layout: default +menu_item: api +title: Remote +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "createAnonymous": "#createAnonymous" + "createWithFetchspec": "#createWithFetchspec" + "lookup": "#lookup" + "#addFetch": "#addFetch" + "#addPush": "#addPush" + "#autotag": "#autotag" + "#clearRefspecs": "#clearRefspecs" + "#connect": "#connect" + "#connected": "#connected" + "#disconnect": "#disconnect" + "#download": "#download" + "#dup": "#dup" + "#fetch": "#fetch" + "#getCallbacks": "#getCallbacks" + "#getFetchRefspecs": "#getFetchRefspecs" + "#getPushRefspecs": "#getPushRefspecs" + "#getRefspec": "#getRefspec" + "#name": "#name" + "#owner": "#owner" + "#prune": "#prune" + "#pruneRefs": "#pruneRefs" + "#push": "#push" + "#pushurl": "#pushurl" + "#refspecCount": "#refspecCount" + "#save": "#save" + "#setAutotag": "#setAutotag" + "#setCallbacks": "#setCallbacks" + "#setPushurl": "#setPushurl" + "#setUpdateFetchhead": "#setUpdateFetchhead" + "#setUrl": "#setUrl" + "#stats": "#stats" + "#stop": "#stop" + "#updateFetchhead": "#updateFetchhead" + "#updateTips": "#updateTips" + "#upload": "#upload" + "#url": "#url" + "AUTOTAG_OPTION": "#AUTOTAG_OPTION" + "COMPLETION_TYPE": "#COMPLETION_TYPE" +--- + +## Remote.create Async + +```js +Remote.create(repo, name, url).then(function(remote) { + // Use remote +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository in which to create the remote | +| name | String | the remote's name | +| url | String | the remote's url | + +| Returns | | +| --- | --- | +| [Remote](/api/remote/) | the resulting remote | + +## Remote.createAnonymous Async + +```js +Remote.createAnonymous(repo, url, fetch).then(function(remote) { + // Use remote +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the associated repository | +| url | String | the remote repository's URL | +| fetch | String | the fetch refspec to use for this remote. | + +| Returns | | +| --- | --- | +| [Remote](/api/remote/) | pointer to the new remote object | + +## Remote.createWithFetchspec Async + +```js +Remote.createWithFetchspec(repo, name, url, fetch).then(function(remote) { + // Use remote +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository in which to create the remote | +| name | String | the remote's name | +| url | String | the remote's url | +| fetch | String | the remote fetch value | + +| Returns | | +| --- | --- | +| [Remote](/api/remote/) | the resulting remote | + +## Remote.lookup Sync + +```js +Remote.lookup(repo, name, callback); +``` + +Retrieves the remote by name + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the remote lives in | +| name | String, [Remote](/api/remote/) | The remote to lookup | +| callback | Function | | +## Remote#addFetch Sync + +```js +var result = remote.addFetch(refspec); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspec | String | the new fetch refspec | + +| Returns | | +| --- | --- | +| Number | 0 or an error value | + +## Remote#addPush Sync + +```js +var result = remote.addPush(refspec); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspec | String | the new push refspec | + +| Returns | | +| --- | --- | +| Number | 0 or an error value | + +## Remote#autotag Sync + +```js +var result = remote.autotag(); +``` + + +| Returns | | +| --- | --- | +| Number | the auto-follow setting | + +## Remote#clearRefspecs Sync + +```js +remote.clearRefspecs(); +``` + +## Remote#connect Async + +```js +remote.connect(direction).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| direction | Number | GIT_DIRECTION_FETCH if you want to fetch or GIT_DIRECTION_PUSH if you want to push | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#connected Sync + +```js +var result = remote.connected(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if it's connected, 0 otherwise. | + +## Remote#disconnect Async + +```js +remote.disconnect().then(function(data) { + // Use data +}); +``` + + +| Returns | | +| --- | --- | +| Void | | + +## Remote#download Async + +```js +remote.download(refspecs).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspecs | [Strarray](/api/strarray/) | the refspecs to use for this negotiation and download. Use NULL or an empty array to use the base refspecs | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#dup Async + +```js +remote.dup().then(function(remote) { + // Use remote +}); +``` + + +| Returns | | +| --- | --- | +| [Remote](/api/remote/) | the copy | + +## Remote#fetch Async + +```js +remote.fetch(refspecs, signature, reflog_message).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspecs | [Strarray](/api/strarray/) | the refspecs to use for this fetch. Pass NULL or an empty array to use the base refspecs. | +| signature | [Signature](/api/signature/) | The identity to use when updating reflogs | +| reflog_message | String | The message to insert into the reflogs. If NULL, the default is "fetch" | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#getCallbacks Sync + +```js +var remoteCallbacks = remote.getCallbacks(); +``` + + +| Returns | | +| --- | --- | +| [RemoteCallbacks](/api/remote_callbacks/) | the callbacks structure | + +## Remote#getFetchRefspecs Async + +```js +remote.getFetchRefspecs().then(function(array) { + // Use array +}); +``` + + +| Returns | | +| --- | --- | +| Array | pointer to the array in which to store the strings | + +## Remote#getPushRefspecs Async + +```js +remote.getPushRefspecs().then(function(array) { + // Use array +}); +``` + + +| Returns | | +| --- | --- | +| Array | pointer to the array in which to store the strings | + +## Remote#getRefspec Sync + +```js +var refspec = remote.getRefspec(n); +``` + +| Parameters | Type | +| --- | --- | --- | +| n | Number | the refspec to get | + +| Returns | | +| --- | --- | +| [Refspec](/api/refspec/) | the nth refspec | + +## Remote#name Sync + +```js +var string = remote.name(); +``` + + +| Returns | | +| --- | --- | +| String | the name or NULL for in-memory remotes | + +## Remote#owner Sync + +```js +var repository = remote.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | the repository | + +## Remote#prune Sync + +```js +var result = remote.prune(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#pruneRefs Sync + +```js +var result = remote.pruneRefs(); +``` + + +| Returns | | +| --- | --- | +| Number | the ref-prune setting | + +## Remote#push Sync + +```js +var result = remote.push(refspecs, opts, signature, reflog_message); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspecs | [Strarray](/api/strarray/) | the refspecs to use for pushing. If none are passed, the configured refspecs will be used | +| opts | [PushOptions](/api/push_options/) | the options | +| signature | [Signature](/api/signature/) | signature to use for the reflog of updated references | +| reflog_message | String | message to use for the reflog of upated references | + +| Returns | | +| --- | --- | +| Number | | + +## Remote#pushurl Sync + +```js +var string = remote.pushurl(); +``` + + +| Returns | | +| --- | --- | +| String | the url or NULL if no special url for pushing is set | + +## Remote#refspecCount Sync + +```js +var result = remote.refspecCount(); +``` + + +| Returns | | +| --- | --- | +| Number | the amount of refspecs configured in this remote | + +## Remote#save Sync + +```js +var result = remote.save(); +``` + + +| Returns | | +| --- | --- | +| Number | 0, GIT_EINVALIDSPEC or an error code | + +## Remote#setAutotag Sync + +```js +remote.setAutotag(value); +``` + +| Parameters | Type | +| --- | --- | --- | +| value | Number | a GIT_REMOTE_DOWNLOAD_TAGS value | +## Remote#setCallbacks Sync + +```js +var result = remote.setCallbacks(callbacks); +``` + +| Parameters | Type | +| --- | --- | --- | +| callbacks | [RemoteCallbacks](/api/remote_callbacks/) | a pointer to the user's callback settings | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#setPushurl Sync + +```js +var result = remote.setPushurl(url); +``` + +| Parameters | Type | +| --- | --- | --- | +| url | String | the url to set or NULL to clear the pushurl | + +| Returns | | +| --- | --- | +| Number | 0 or an error value | + +## Remote#setUpdateFetchhead Sync + +```js +remote.setUpdateFetchhead(value); +``` + +| Parameters | Type | +| --- | --- | --- | +| value | Number | 0 to disable updating FETCH_HEAD | +## Remote#setUrl Sync + +```js +var result = remote.setUrl(url); +``` + +| Parameters | Type | +| --- | --- | --- | +| url | String | the url to set | + +| Returns | | +| --- | --- | +| Number | 0 or an error value | + +## Remote#stats Sync + +```js +var transferProgress = remote.stats(); +``` + + +| Returns | | +| --- | --- | +| [TransferProgress](/api/transfer_progress/) | | + +## Remote#stop Sync + +```js +remote.stop(); +``` + +## Remote#updateFetchhead Sync + +```js +var result = remote.updateFetchhead(); +``` + + +| Returns | | +| --- | --- | +| Number | the update FETCH_HEAD setting | + +## Remote#updateTips Sync + +```js +var result = remote.updateTips(signature, reflog_message); +``` + +| Parameters | Type | +| --- | --- | --- | +| signature | [Signature](/api/signature/) | The identity to use when updating reflogs | +| reflog_message | String | The message to insert into the reflogs. If NULL, the default is "fetch ", where is the name of the remote (or its url, for in-memory remotes). | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#upload Sync + +```js +var result = remote.upload(refspecs, opts); +``` + +| Parameters | Type | +| --- | --- | --- | +| refspecs | [Strarray](/api/strarray/) | the refspecs to use for this negotiation and upload. Use NULL or an empty array to use the base refspecs | +| opts | [PushOptions](/api/push_options/) | | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Remote#url Sync + +```js +var string = remote.url(); +``` + + +| Returns | | +| --- | --- | +| String | the url | + +## Remote.AUTOTAG_OPTION ENUM + +| Flag | Value | +| --- | --- | --- | +| Remote.AUTOTAG_OPTION.DOWNLOAD_TAGS_AUTO | 0 | +| Remote.AUTOTAG_OPTION.DOWNLOAD_TAGS_NONE | 1 | +| Remote.AUTOTAG_OPTION.DOWNLOAD_TAGS_ALL | 2 | + +## Remote.COMPLETION_TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Remote.COMPLETION_TYPE.COMPLETION_DOWNLOAD | 0 | +| Remote.COMPLETION_TYPE.COMPLETION_INDEXING | 1 | +| Remote.COMPLETION_TYPE.COMPLETION_ERROR | 2 | + diff --git a/api/remote_callbacks/index.md b/api/remote_callbacks/index.md new file mode 100644 index 0000000..bc7c546 --- /dev/null +++ b/api/remote_callbacks/index.md @@ -0,0 +1,25 @@ +--- +layout: default +menu_item: api +title: RemoteCallbacks +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var remoteCallbacks = new RemoteCallbacks(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| certificate_check | TransportCertificateCheckCb | +| credentials | CredAcquireCb | +| payload | Void | +| version | Number | + diff --git a/api/repository/index.md b/api/repository/index.md new file mode 100644 index 0000000..c29f1be --- /dev/null +++ b/api/repository/index.md @@ -0,0 +1,618 @@ +--- +layout: default +menu_item: api +title: Repository +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "init": "#init" + "initExt": "#initExt" + "open": "#open" + "openBare": "#openBare" + "openExt": "#openExt" + "wrapOdb": "#wrapOdb" + "#config": "#config" + "#configSnapshot": "#configSnapshot" + "#createRevWalk": "#createRevWalk" + "#detachHead": "#detachHead" + "#getBlob": "#getBlob" + "#getBranch": "#getBranch" + "#getBranchCommit": "#getBranchCommit" + "#getCommit": "#getCommit" + "#getCurrentBranch": "#getCurrentBranch" + "#getNamespace": "#getNamespace" + "#getReference": "#getReference" + "#getReferenceCommit": "#getReferenceCommit" + "#getTag": "#getTag" + "#getTagByName": "#getTagByName" + "#getTree": "#getTree" + "#head": "#head" + "#headDetached": "#headDetached" + "#headUnborn": "#headUnborn" + "#index": "#index" + "#isBare": "#isBare" + "#isEmpty": "#isEmpty" + "#isShallow": "#isShallow" + "#messageRemove": "#messageRemove" + "#odb": "#odb" + "#path": "#path" + "#refdb": "#refdb" + "#setHead": "#setHead" + "#setHeadDetached": "#setHeadDetached" + "#setNamespace": "#setNamespace" + "#setWorkdir": "#setWorkdir" + "#state": "#state" + "#stateCleanup": "#stateCleanup" + "#workdir": "#workdir" + "INIT_FLAG": "#INIT_FLAG" + "INIT_MODE": "#INIT_MODE" + "OPEN_FLAG": "#OPEN_FLAG" + "STATE": "#STATE" +--- + +## Repository.init Async + +```js +Repository.init(path, is_bare).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| path | String | the path to the repository | +| is_bare | Number | if true, a Git repository without a working directory is created at the pointed path. If false, provided path will be considered as the working directory into which the .git directory will be created. | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | pointer to the repo which will be created or reinitialized | + +## Repository.initExt Async + +```js +Repository.initExt(repo_path, opts).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo_path | String | The path to the repository. | +| opts | [RepositoryInitOptions](/api/repository_init_options/) | Pointer to git_repository_init_options struct. | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Pointer to the repo which will be created or reinitialized. | + +## Repository.open Async + +```js +Repository.open(path).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| path | String | the path to the repository | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | pointer to the repo which will be opened | + +## Repository.openBare Async + +```js +Repository.openBare(bare_path).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| bare_path | String | Direct path to the bare repository | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Pointer to the repo which will be opened. | + +## Repository.openExt Async + +```js +Repository.openExt(path, flags, ceiling_dirs).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| path | String | Path to open as git repository. If the flags permit "searching", then this can be a path to a subdirectory inside the working directory of the repository. | +| flags | Number | A combination of the GIT_REPOSITORY_OPEN flags above. | +| ceiling_dirs | String | A GIT_PATH_LIST_SEPARATOR delimited list of path prefixes at which the search for a containing repository should terminate. | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Pointer to the repo which will be opened. This can + actually be NULL if you only want to use the error code to + see if a repo at this path could be opened. | + +## Repository.wrapOdb Async + +```js +Repository.wrapOdb(odb).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| odb | [Odb](/api/odb/) | the object database to wrap | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | pointer to the repo | + +## Repository#config Async + +```js +repository.config().then(function(config) { + // Use config +}); +``` + + +| Returns | | +| --- | --- | +| [Config](/api/config/) | Pointer to store the loaded configuration | + +## Repository#configSnapshot Async + +```js +repository.configSnapshot().then(function(config) { + // Use config +}); +``` + + +| Returns | | +| --- | --- | +| [Config](/api/config/) | Pointer to store the loaded configuration | + +## Repository#createRevWalk Sync + +```js +repository.createRevWalk(String, callback); +``` + +Instantiate a new revision walker for browsing the Repository"s history. +See also `Commit.prototype.history()` + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| callback | Function | | +## Repository#detachHead Sync + +```js +var result = repository.detachHead(signature, reflog_message); +``` + +| Parameters | Type | +| --- | --- | --- | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| reflog_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing + branch or an error code | + +## Repository#getBlob Sync + +```js +repository.getBlob(String, callback); +``` + +Retrieve the blob represented by the oid. + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| callback | Function | | +## Repository#getBranch Sync + +```js +repository.getBranch(name, callback); +``` + +Look up a branch. Alias for `getReference` + + +| Parameters | Type | +| --- | --- | --- | +| name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | +| callback | Function | | +## Repository#getBranchCommit Sync + +```js +repository.getBranchCommit(name, callback); +``` + +Look up a branch's most recent commit. Alias to `getReferenceCommit` + + +| Parameters | Type | +| --- | --- | --- | +| name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | +| callback | Function | | +## Repository#getCommit Sync + +```js +repository.getCommit(String, callback); +``` + +Retrieve the commit identified by oid. + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| callback | Function | | +## Repository#getCurrentBranch Sync + +```js +repository.getCurrentBranch(); +``` + +Gets the branch that HEAD currently points to +Is an alias to head() + +## Repository#getNamespace Sync + +```js +var string = repository.getNamespace(); +``` + + +| Returns | | +| --- | --- | +| String | the active namespace, or NULL if there isn't one | + +## Repository#getReference Sync + +```js +repository.getReference(name, callback); +``` + +Lookup the reference with the given name. + + +| Parameters | Type | +| --- | --- | --- | +| name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | +| callback | Function | | +## Repository#getReferenceCommit Sync + +```js +repository.getReferenceCommit(name, callback); +``` + +Look up a refs's commit. + + +| Parameters | Type | +| --- | --- | --- | +| name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | +| callback | Function | | +## Repository#getTag Sync + +```js +repository.getTag(String, callback); +``` + +Retrieve the tag represented by the oid. + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| callback | Function | | +## Repository#getTagByName Sync + +```js +repository.getTagByName(Short, callback); +``` + +Retrieve the tag represented by the tag name. + + +| Parameters | Type | +| --- | --- | --- | +| Short | String | or full tag name | +| callback | Function | | +## Repository#getTree Sync + +```js +repository.getTree(String, callback); +``` + +Retrieve the tree represented by the oid. + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| callback | Function | | +## Repository#head Async + +```js +repository.head().then(function(reference) { + // Use reference +}); +``` + + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | pointer to the reference which will be retrieved | + +## Repository#headDetached Sync + +```js +var result = repository.headDetached(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if HEAD is detached, 0 if it's not; error code if there + was an error. | + +## Repository#headUnborn Sync + +```js +var result = repository.headUnborn(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if the current branch is unborn, 0 if it's not; error + code if there was an error | + +## Repository#index Async + +```js +repository.index().then(function(index) { + // Use index +}); +``` + + +| Returns | | +| --- | --- | +| [Index](/api/index/) | Pointer to store the loaded index | + +## Repository#isBare Sync + +```js +var result = repository.isBare(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if the repository is bare, 0 otherwise. | + +## Repository#isEmpty Sync + +```js +var result = repository.isEmpty(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if the repository is empty, 0 if it isn't, error code + if the repository is corrupted | + +## Repository#isShallow Sync + +```js +var result = repository.isShallow(); +``` + + +| Returns | | +| --- | --- | +| Number | 1 if shallow, zero if not | + +## Repository#messageRemove Sync + +```js +var result = repository.messageRemove(); +``` + + +| Returns | | +| --- | --- | +| Number | | + +## Repository#odb Async + +```js +repository.odb().then(function(odb) { + // Use odb +}); +``` + + +| Returns | | +| --- | --- | +| [Odb](/api/odb/) | Pointer to store the loaded ODB | + +## Repository#path Sync + +```js +var string = repository.path(); +``` + + +| Returns | | +| --- | --- | +| String | the path to the repository | + +## Repository#refdb Async + +```js +repository.refdb().then(function(refdb) { + // Use refdb +}); +``` + + +| Returns | | +| --- | --- | +| [Refdb](/api/refdb/) | Pointer to store the loaded refdb | + +## Repository#setHead Sync + +```js +var result = repository.setHead(refname, signature, log_message); +``` + +| Parameters | Type | +| --- | --- | --- | +| refname | String | Canonical name of the reference the HEAD should point at | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| Number | 0 on success, or an error code | + +## Repository#setHeadDetached Sync + +```js +var result = repository.setHeadDetached(commitish, signature, log_message); +``` + +| Parameters | Type | +| --- | --- | --- | +| commitish | [Oid](/api/oid/) | Object id of the Commit the HEAD should point to | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| Number | 0 on success, or an error code | + +## Repository#setNamespace Sync + +```js +var result = repository.setNamespace(nmspace); +``` + +| Parameters | Type | +| --- | --- | --- | +| nmspace | String | The namespace. This should not include the refs folder, e.g. to namespace all references under `refs/namespaces/foo/`, use `foo` as the namespace. | + +| Returns | | +| --- | --- | +| Number | 0 on success, -1 on error | + +## Repository#setWorkdir Sync + +```js +var result = repository.setWorkdir(workdir, update_gitlink); +``` + +| Parameters | Type | +| --- | --- | --- | +| workdir | String | The path to a working directory | +| update_gitlink | Number | Create/update gitlink in workdir and set config "core.worktree" (if workdir is not the parent of the .git directory) | + +| Returns | | +| --- | --- | +| Number | 0, or an error code | + +## Repository#state Sync + +```js +var result = repository.state(); +``` + + +| Returns | | +| --- | --- | +| Number | The state of the repository | + +## Repository#stateCleanup Sync + +```js +var result = repository.stateCleanup(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 on success, or error | + +## Repository#workdir Sync + +```js +var string = repository.workdir(); +``` + + +| Returns | | +| --- | --- | +| String | the path to the working dir, if it exists | + +## Repository.INIT_FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Repository.INIT_FLAG.BARE | 1 | +| Repository.INIT_FLAG.NO_REINIT | 2 | +| Repository.INIT_FLAG.NO_DOTGIT_DIR | 4 | +| Repository.INIT_FLAG.MKDIR | 8 | +| Repository.INIT_FLAG.MKPATH | 16 | +| Repository.INIT_FLAG.EXTERNAL_TEMPLATE | 32 | +| Repository.INIT_FLAG.RELATIVE_GITLINK | 64 | + +## Repository.INIT_MODE ENUM + +| Flag | Value | +| --- | --- | --- | +| Repository.INIT_MODE.INIT_SHARED_UMASK | 0 | +| Repository.INIT_MODE.INIT_SHARED_GROUP | 1533 | +| Repository.INIT_MODE.INIT_SHARED_ALL | 1535 | + +## Repository.OPEN_FLAG ENUM + +| Flag | Value | +| --- | --- | --- | +| Repository.OPEN_FLAG.OPEN_NO_SEARCH | 1 | +| Repository.OPEN_FLAG.OPEN_CROSS_FS | 2 | +| Repository.OPEN_FLAG.OPEN_BARE | 4 | + +## Repository.STATE ENUM + +| Flag | Value | +| --- | --- | --- | +| Repository.STATE.NONE | 0 | +| Repository.STATE.MERGE | 1 | +| Repository.STATE.REVERT | 2 | +| Repository.STATE.CHERRYPICK | 3 | +| Repository.STATE.BISECT | 4 | +| Repository.STATE.REBASE | 5 | +| Repository.STATE.REBASE_INTERACTIVE | 6 | +| Repository.STATE.REBASE_MERGE | 7 | +| Repository.STATE.APPLY_MAILBOX | 8 | +| Repository.STATE.APPLY_MAILBOX_OR_REBASE | 9 | + diff --git a/api/repository_init_options/index.md b/api/repository_init_options/index.md new file mode 100644 index 0000000..d07bbac --- /dev/null +++ b/api/repository_init_options/index.md @@ -0,0 +1,29 @@ +--- +layout: default +menu_item: api +title: RepositoryInitOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var repositoryInitOptions = new RepositoryInitOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| description | String | +| flags | Number | +| initial_head | String | +| mode | Number | +| origin_url | String | +| template_path | String | +| version | Number | +| workdir_path | String | + diff --git a/api/reset/index.md b/api/reset/index.md new file mode 100644 index 0000000..1c10417 --- /dev/null +++ b/api/reset/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: Reset +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "TYPE": "#TYPE" +--- + +## Reset.TYPE ENUM + +| Flag | Value | +| --- | --- | --- | +| Reset.TYPE.SOFT | 1 | +| Reset.TYPE.MIXED | 2 | +| Reset.TYPE.HARD | 3 | + diff --git a/api/revert_options/index.md b/api/revert_options/index.md new file mode 100644 index 0000000..849ea77 --- /dev/null +++ b/api/revert_options/index.md @@ -0,0 +1,25 @@ +--- +layout: default +menu_item: api +title: RevertOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var revertOptions = new RevertOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| checkout_opts | CheckoutOptions | +| mainline | Number | +| merge_opts | MergeOptions | +| version | Number | + diff --git a/api/revparse/index.md b/api/revparse/index.md new file mode 100644 index 0000000..d2abb20 --- /dev/null +++ b/api/revparse/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: Revparse +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "MODE": "#MODE" +--- + +## Revparse.MODE ENUM + +| Flag | Value | +| --- | --- | --- | +| Revparse.MODE.SINGLE | 1 | +| Revparse.MODE.RANGE | 2 | +| Revparse.MODE.MERGE_BASE | 4 | + diff --git a/api/revwalk/index.md b/api/revwalk/index.md new file mode 100644 index 0000000..71c6d8b --- /dev/null +++ b/api/revwalk/index.md @@ -0,0 +1,261 @@ +--- +layout: default +menu_item: api +title: Revwalk +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "#getCommits": "#getCommits" + "#getCommitsUntil": "#getCommitsUntil" + "#hide": "#hide" + "#hideGlob": "#hideGlob" + "#hideHead": "#hideHead" + "#hideRef": "#hideRef" + "#next": "#next" + "#push": "#push" + "#pushGlob": "#pushGlob" + "#pushHead": "#pushHead" + "#pushRange": "#pushRange" + "#pushRef": "#pushRef" + "#repository": "#repository" + "#reset": "#reset" + "#simplifyFirstParent": "#simplifyFirstParent" + "#sorting": "#sorting" + "#walk": "#walk" + "SORT": "#SORT" +--- + +## Revwalk.create Sync + +```js +var revwalk = Revwalk.create(repo); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repo to walk through | + +| Returns | | +| --- | --- | +| [Revwalk](/api/revwalk/) | pointer to the new revision walker | + +## Revwalk#getCommits Sync + +```js +revwalk.getCommits(count); +``` + +Get some of commits. + + +| Parameters | Type | +| --- | --- | --- | +| count | Number | (default: 10) | +## Revwalk#getCommitsUntil Sync + +```js +revwalk.getCommitsUntil(checkFn); +``` + +Walk the history grabbing commits until the checkFn called with the +current commit returns false. + + +| Parameters | Type | +| --- | --- | --- | +| checkFn | Function | | +## Revwalk#hide Sync + +```js +var result = revwalk.hide(commit_id); +``` + +| Parameters | Type | +| --- | --- | --- | +| commit_id | [Oid](/api/oid/) | the oid of commit that will be ignored during the traversal | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#hideGlob Sync + +```js +var result = revwalk.hideGlob(glob); +``` + +| Parameters | Type | +| --- | --- | --- | +| glob | String | the glob pattern references should match | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#hideHead Sync + +```js +var result = revwalk.hideHead(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#hideRef Sync + +```js +var result = revwalk.hideRef(refname); +``` + +| Parameters | Type | +| --- | --- | --- | +| refname | String | the reference to hide | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#next Async + +```js +revwalk.next().then(function(oid) { + // Use oid +}); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the oid of the next commit | + +## Revwalk#push Sync + +```js +var result = revwalk.push(id); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | the oid of the commit to start from. | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#pushGlob Sync + +```js +var result = revwalk.pushGlob(glob); +``` + +| Parameters | Type | +| --- | --- | --- | +| glob | String | the glob pattern references should match | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#pushHead Sync + +```js +var result = revwalk.pushHead(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#pushRange Sync + +```js +var result = revwalk.pushRange(range); +``` + +| Parameters | Type | +| --- | --- | --- | +| range | String | the range | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#pushRef Sync + +```js +var result = revwalk.pushRef(refname); +``` + +| Parameters | Type | +| --- | --- | --- | +| refname | String | the reference to push | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Revwalk#repository Sync + +```js +var repository = revwalk.repository(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | the repository being walked | + +## Revwalk#reset Sync + +```js +revwalk.reset(); +``` + +## Revwalk#simplifyFirstParent Sync + +```js +revwalk.simplifyFirstParent(); +``` + +## Revwalk#sorting Sync + +```js +revwalk.sorting(sort); +``` + +Set the sort order for the revwalk. This function takes variable arguments +like `revwalk.sorting(NodeGit.RevWalk.Topological, NodeGit.RevWalk.Reverse).` + + +| Parameters | Type | +| --- | --- | --- | +| sort | Number | | +## Revwalk#walk Sync + +```js +revwalk.walk(oid, callback); +``` + +Walk the history from the given oid. The callback is invoked for each commit; +When the walk is over, the callback is invoked with `(null, null)`. + + +| Parameters | Type | +| --- | --- | --- | +| oid | [Oid](/api/oid/) | | +| callback | Function | | +## Revwalk.SORT ENUM + +| Flag | Value | +| --- | --- | --- | +| Revwalk.SORT.NONE | 0 | +| Revwalk.SORT.TOPOLOGICAL | 1 | +| Revwalk.SORT.TIME | 2 | +| Revwalk.SORT.REVERSE | 4 | + diff --git a/api/signature/index.md b/api/signature/index.md new file mode 100644 index 0000000..11686f5 --- /dev/null +++ b/api/signature/index.md @@ -0,0 +1,93 @@ +--- +layout: default +menu_item: api +title: Signature +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "default": "#default" + "now": "#now" + "#dup": "#dup" + "#toString": "#toString" + "Instance Variables": "#ivars" +--- + +## Signature.create Sync + +```js +var signature = Signature.create(name, email, time, offset); +``` + +| Parameters | Type | | +| --- | --- | --- | +| name | String | name of the person | +| email | String | email of the person | +| time | Number | time when the action happened | +| offset | Number | timezone offset in minutes for the time | + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | new signature, in case of error NULL | + +## Signature.default Sync + +```js +var signature = Signature.default(repo); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository pointer | + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | new signature | + +## Signature.now Sync + +```js +var signature = Signature.now(name, email); +``` + +| Parameters | Type | | +| --- | --- | --- | +| name | String | name of the person | +| email | String | email of the person | + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | new signature, in case of error NULL | + +## Signature#dup Async + +```js +signature.dup().then(function(signature) { + // Use signature +}); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the copy | + +## Signature#toString Sync + +```js +signature.toString(); +``` + +Standard string representation of an author. + + +## Instance Variables + +| Variable | Type | +| --- | --- | +| email | String | +| name | String | +| when | Time | + diff --git a/api/stash/index.md b/api/stash/index.md new file mode 100644 index 0000000..85f1e2b --- /dev/null +++ b/api/stash/index.md @@ -0,0 +1,21 @@ +--- +layout: default +menu_item: api +title: Stash +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "FLAGS": "#FLAGS" +--- + +## Stash.FLAGS ENUM + +| Flag | Value | +| --- | --- | --- | +| Stash.FLAGS.DEFAULT | 0 | +| Stash.FLAGS.KEEP_INDEX | 1 | +| Stash.FLAGS.INCLUDE_UNTRACKED | 2 | +| Stash.FLAGS.INCLUDE_IGNORED | 4 | + diff --git a/api/status/index.md b/api/status/index.md new file mode 100644 index 0000000..69de60e --- /dev/null +++ b/api/status/index.md @@ -0,0 +1,61 @@ +--- +layout: default +menu_item: api +title: Status +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "OPT": "#OPT" + "SHOW": "#SHOW" + "STATUS": "#STATUS" +--- + +## Status.OPT ENUM + +| Flag | Value | +| --- | --- | --- | +| Status.OPT.INCLUDE_UNTRACKED | 1 | +| Status.OPT.INCLUDE_IGNORED | 2 | +| Status.OPT.INCLUDE_UNMODIFIED | 4 | +| Status.OPT.EXCLUDE_SUBMODULES | 8 | +| Status.OPT.RECURSE_UNTRACKED_DIRS | 16 | +| Status.OPT.DISABLE_PATHSPEC_MATCH | 32 | +| Status.OPT.RECURSE_IGNORED_DIRS | 64 | +| Status.OPT.RENAMES_HEAD_TO_INDEX | 128 | +| Status.OPT.RENAMES_INDEX_TO_WORKDIR | 256 | +| Status.OPT.SORT_CASE_SENSITIVELY | 512 | +| Status.OPT.SORT_CASE_INSENSITIVELY | 1024 | +| Status.OPT.RENAMES_FROM_REWRITES | 2048 | +| Status.OPT.NO_REFRESH | 4096 | +| Status.OPT.UPDATE_INDEX | 8192 | +| Status.OPT.INCLUDE_UNREADABLE | 16384 | +| Status.OPT.INCLUDE_UNREADABLE_AS_UNTRACKED | 32768 | + +## Status.SHOW ENUM + +| Flag | Value | +| --- | --- | --- | +| Status.SHOW.INDEX_AND_WORKDIR | 0 | +| Status.SHOW.INDEX_ONLY | 1 | +| Status.SHOW.WORKDIR_ONLY | 2 | + +## Status.STATUS ENUM + +| Flag | Value | +| --- | --- | --- | +| Status.STATUS.CURRENT | 0 | +| Status.STATUS.INDEX_NEW | 1 | +| Status.STATUS.INDEX_MODIFIED | 2 | +| Status.STATUS.INDEX_DELETED | 4 | +| Status.STATUS.INDEX_RENAMED | 8 | +| Status.STATUS.INDEX_TYPECHANGE | 16 | +| Status.STATUS.WT_NEW | 128 | +| Status.STATUS.WT_MODIFIED | 256 | +| Status.STATUS.WT_DELETED | 512 | +| Status.STATUS.WT_TYPECHANGE | 1024 | +| Status.STATUS.WT_RENAMED | 2048 | +| Status.STATUS.WT_UNREADABLE | 4096 | +| Status.STATUS.IGNORED | 16384 | + diff --git a/api/status_list/index.md b/api/status_list/index.md new file mode 100644 index 0000000..e5df214 --- /dev/null +++ b/api/status_list/index.md @@ -0,0 +1,53 @@ +--- +layout: default +menu_item: api +title: StatusList +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "#entrycount": "#entrycount" + "#getPerfdata": "#getPerfdata" +--- + +## StatusList.create SyncExperimental + +```js +var statusList = StatusList.create(repo, opts); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository object | +| opts | [StatusOptions](/api/status_options/) | Status options structure | + +| Returns | | +| --- | --- | +| [StatusList](/api/status_list/) | Pointer to store the status results in | + +## StatusList#entrycount SyncExperimental + +```js +var result = statusList.entrycount(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of status entries | + +## StatusList#getPerfdata AsyncExperimental + +```js +statusList.getPerfdata().then(function(diffPerfdata) { + // Use diffPerfdata +}); +``` + + +| Returns | | +| --- | --- | +| [DiffPerfdata](/api/diff_perfdata/) | | + diff --git a/api/status_options/index.md b/api/status_options/index.md new file mode 100644 index 0000000..a584901 --- /dev/null +++ b/api/status_options/index.md @@ -0,0 +1,25 @@ +--- +layout: default +menu_item: api +title: StatusOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var statusOptions = new StatusOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| flags | Number | +| pathspec | Strarray | +| show | Number | +| version | Number | + diff --git a/api/strarray/index.md b/api/strarray/index.md new file mode 100644 index 0000000..92625a9 --- /dev/null +++ b/api/strarray/index.md @@ -0,0 +1,33 @@ +--- +layout: default +menu_item: api +title: Strarray +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#copy": "#copy" + "Instance Variables": "#ivars" +--- + +## Strarray#copy SyncExperimental + +```js +var result = strarray.copy(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 on success, +< + 0 on allocation failure | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| count | Number | +| strings | String | + diff --git a/api/submodule/index.md b/api/submodule/index.md new file mode 100644 index 0000000..d12dccf --- /dev/null +++ b/api/submodule/index.md @@ -0,0 +1,440 @@ +--- +layout: default +menu_item: api +title: Submodule +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "addSetup": "#addSetup" + "lookup": "#lookup" + "#addFinalize": "#addFinalize" + "#addToIndex": "#addToIndex" + "#branch": "#branch" + "#fetchRecurseSubmodules": "#fetchRecurseSubmodules" + "#headId": "#headId" + "#ignore": "#ignore" + "#indexId": "#indexId" + "#init": "#init" + "#name": "#name" + "#open": "#open" + "#owner": "#owner" + "#path": "#path" + "#reload": "#reload" + "#repoInit": "#repoInit" + "#save": "#save" + "#setFetchRecurseSubmodules": "#setFetchRecurseSubmodules" + "#setIgnore": "#setIgnore" + "#setUpdate": "#setUpdate" + "#setUrl": "#setUrl" + "#sync": "#sync" + "#update": "#update" + "#updateStrategy": "#updateStrategy" + "#url": "#url" + "#wdId": "#wdId" + "IGNORE": "#IGNORE" + "RECURSE": "#RECURSE" + "STATUS": "#STATUS" + "UPDATE": "#UPDATE" +--- + +## Submodule.addSetup AsyncExperimental + +```js +Submodule.addSetup(repo, url, path, use_gitlink).then(function(submodule) { + // Use submodule +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository in which you want to create the submodule | +| url | String | URL for the submodule's remote | +| path | String | Path at which the submodule should be created | +| use_gitlink | Number | Should workdir contain a gitlink to the repo in .git/modules vs. repo directly in workdir. | + +| Returns | | +| --- | --- | +| [Submodule](/api/submodule/) | The newly created submodule ready to open for clone | + +## Submodule.lookup AsyncExperimental + +```js +Submodule.lookup(repo, name).then(function(submodule) { + // Use submodule +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The parent repository | +| name | String | The name of or path to the submodule; trailing slashes okay | + +| Returns | | +| --- | --- | +| [Submodule](/api/submodule/) | Output ptr to submodule; pass NULL to just get return code | + +## Submodule#addFinalize SyncExperimental + +```js +var result = submodule.addFinalize(); +``` + + +| Returns | | +| --- | --- | +| Number | | + +## Submodule#addToIndex SyncExperimental + +```js +var result = submodule.addToIndex(write_index); +``` + +| Parameters | Type | +| --- | --- | --- | +| write_index | Number | Boolean if this should immediately write the index file. If you pass this as false, you will have to get the git_index and explicitly call `git_index_write()` on it to save the change. | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on failure | + +## Submodule#branch SyncExperimental + +```js +var string = submodule.branch(); +``` + + +| Returns | | +| --- | --- | +| String | Pointer to the submodule branch | + +## Submodule#fetchRecurseSubmodules SyncExperimental + +```js +var result = submodule.fetchRecurseSubmodules(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 if fetchRecurseSubmodules is false, 1 if true | + +## Submodule#headId SyncExperimental + +```js +var oid = submodule.headId(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not in the HEAD. | + +## Submodule#ignore SyncExperimental + +```js +var result = submodule.ignore(); +``` + + +| Returns | | +| --- | --- | +| Number | The current git_submodule_ignore_t valyue what will be used for + this submodule. | + +## Submodule#indexId SyncExperimental + +```js +var oid = submodule.indexId(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not in index. | + +## Submodule#init SyncExperimental + +```js +var result = submodule.init(overwrite); +``` + +| Parameters | Type | +| --- | --- | --- | +| overwrite | Number | By default, existing entries will not be overwritten, but setting this to true forces them to be updated. | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on failure. | + +## Submodule#name SyncExperimental + +```js +var string = submodule.name(); +``` + + +| Returns | | +| --- | --- | +| String | Pointer to the submodule name | + +## Submodule#open SyncExperimental + +```js +var result = submodule.open(repo); +``` + +| Parameters | Type | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Pointer to the submodule repo which was opened | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 if submodule repo could not be opened. | + +## Submodule#owner SyncExperimental + +```js +var repository = submodule.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Pointer to `git_repository` | + +## Submodule#path SyncExperimental + +```js +var string = submodule.path(); +``` + + +| Returns | | +| --- | --- | +| String | Pointer to the submodule path | + +## Submodule#reload SyncExperimental + +```js +var result = submodule.reload(force); +``` + +| Parameters | Type | +| --- | --- | --- | +| force | Number | Force reload even if the data doesn't seem out of date | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on error | + +## Submodule#repoInit AsyncExperimental + +```js +submodule.repoInit(use_gitlink).then(function(repository) { + // Use repository +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| use_gitlink | Number | Should the workdir contain a gitlink to the repo in .git/modules vs. repo directly in workdir. | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Output pointer to the created git repository. | + +## Submodule#save SyncExperimental + +```js +var result = submodule.save(); +``` + + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on failure. | + +## Submodule#setFetchRecurseSubmodules SyncExperimental + +```js +var result = submodule.setFetchRecurseSubmodules(fetch_recurse_submodules); +``` + +| Parameters | Type | +| --- | --- | --- | +| fetch_recurse_submodules | Number | Boolean value | + +| Returns | | +| --- | --- | +| Number | old value for fetchRecurseSubmodules | + +## Submodule#setIgnore SyncExperimental + +```js +var result = submodule.setIgnore(ignore); +``` + +| Parameters | Type | +| --- | --- | --- | +| ignore | Number | The new value for the ignore rule | + +| Returns | | +| --- | --- | +| Number | old value for ignore | + +## Submodule#setUpdate SyncExperimental + +```js +var result = submodule.setUpdate(update); +``` + +| Parameters | Type | +| --- | --- | --- | +| update | Number | The new value to use | + +| Returns | | +| --- | --- | +| Number | old value for update | + +## Submodule#setUrl SyncExperimental + +```js +var result = submodule.setUrl(url); +``` + +| Parameters | Type | +| --- | --- | --- | +| url | String | URL that should be used for the submodule | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on failure | + +## Submodule#sync SyncExperimental + +```js +var result = submodule.sync(); +``` + + +| Returns | | +| --- | --- | +| Number | | + +## Submodule#update SyncExperimental + +```js +var result = submodule.update(init, options); +``` + +| Parameters | Type | +| --- | --- | --- | +| init | Number | If the submodule is not initialized, setting this flag to true will initialize the submodule before updating. Otherwise, this will return an error if attempting to update an uninitialzed repository. but setting this to true forces them to be updated. | +| options | [SubmoduleUpdateOptions](/api/submodule_update_options/) | configuration options for the update. If NULL, the function works as though GIT_SUBMODULE_UPDATE_OPTIONS_INIT was passed. | + +| Returns | | +| --- | --- | +| Number | 0 on success, any non-zero return value from a callback + function, or a negative value to indicate an error (use + `giterr_last` for a detailed error message). | + +## Submodule#updateStrategy SyncExperimental + +```js +var result = submodule.updateStrategy(); +``` + + +| Returns | | +| --- | --- | +| Number | The current git_submodule_update_t value that will be used + for this submodule. | + +## Submodule#url SyncExperimental + +```js +var string = submodule.url(); +``` + + +| Returns | | +| --- | --- | +| String | Pointer to the submodule url | + +## Submodule#wdId SyncExperimental + +```js +var oid = submodule.wdId(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not checked out. | + +## Submodule.IGNORE ENUM + +| Flag | Value | +| --- | --- | --- | +| Submodule.IGNORE.RESET | -1 | +| Submodule.IGNORE.NONE | 1 | +| Submodule.IGNORE.UNTRACKED | 2 | +| Submodule.IGNORE.DIRTY | 3 | +| Submodule.IGNORE.ALL | 4 | +| Submodule.IGNORE.DEFAULT | 0 | + +## Submodule.RECURSE ENUM + +| Flag | Value | +| --- | --- | --- | +| Submodule.RECURSE.RESET | -1 | +| Submodule.RECURSE.NO | 0 | +| Submodule.RECURSE.YES | 1 | +| Submodule.RECURSE.ONDEMAND | 2 | + +## Submodule.STATUS ENUM + +| Flag | Value | +| --- | --- | --- | +| Submodule.STATUS.IN_HEAD | 1 | +| Submodule.STATUS.IN_INDEX | 2 | +| Submodule.STATUS.IN_CONFIG | 4 | +| Submodule.STATUS.IN_WD | 8 | +| Submodule.STATUS.INDEX_ADDED | 16 | +| Submodule.STATUS.INDEX_DELETED | 32 | +| Submodule.STATUS.INDEX_MODIFIED | 64 | +| Submodule.STATUS.WD_UNINITIALIZED | 128 | +| Submodule.STATUS.WD_ADDED | 256 | +| Submodule.STATUS.WD_DELETED | 512 | +| Submodule.STATUS.WD_MODIFIED | 1024 | +| Submodule.STATUS.WD_INDEX_MODIFIED | 2048 | +| Submodule.STATUS.WD_WD_MODIFIED | 4096 | +| Submodule.STATUS.WD_UNTRACKED | 8192 | + +## Submodule.UPDATE ENUM + +| Flag | Value | +| --- | --- | --- | +| Submodule.UPDATE.RESET | -1 | +| Submodule.UPDATE.CHECKOUT | 1 | +| Submodule.UPDATE.REBASE | 2 | +| Submodule.UPDATE.MERGE | 3 | +| Submodule.UPDATE.NONE | 4 | +| Submodule.UPDATE.DEFAULT | 0 | + diff --git a/api/submodule_update_options/index.md b/api/submodule_update_options/index.md new file mode 100644 index 0000000..aac2d6a --- /dev/null +++ b/api/submodule_update_options/index.md @@ -0,0 +1,22 @@ +--- +layout: default +menu_item: api +title: SubmoduleUpdateOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| checkout_opts | CheckoutOptions | +| clone_checkout_strategy | Number | +| remote_callbacks | RemoteCallbacks | +| signature | Signature | +| version | Number | + diff --git a/api/tag/index.md b/api/tag/index.md new file mode 100644 index 0000000..4528fc6 --- /dev/null +++ b/api/tag/index.md @@ -0,0 +1,155 @@ +--- +layout: default +menu_item: api +title: Tag +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "lookup": "#lookup" + "lookupPrefix": "#lookupPrefix" + "#id": "#id" + "#message": "#message" + "#name": "#name" + "#owner": "#owner" + "#peel": "#peel" + "#tagger": "#tagger" + "#target": "#target" + "#targetId": "#targetId" + "#targetType": "#targetType" +--- + +## Tag.lookup Sync + +```js +Tag.lookup(repo, id, callback); +``` + +Retrieves the tag pointed to by the oid + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the tag lives in | +| id | String, [Oid](/api/oid/), [Tag](/api/tag/) | The tag to lookup | +| callback | Function | | +## Tag.lookupPrefix Async + +```js +Tag.lookupPrefix(repo, id, len).then(function(tag) { + // Use tag +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repo to use when locating the tag. | +| id | [Oid](/api/oid/) | identity of the tag to locate. | +| len | Number | the length of the short identifier | + +| Returns | | +| --- | --- | +| [Tag](/api/tag/) | pointer to the looked up tag | + +## Tag#id Sync + +```js +var oid = tag.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | object identity for the tag. | + +## Tag#message Sync + +```js +var string = tag.message(); +``` + + +| Returns | | +| --- | --- | +| String | message of the tag or NULL when unspecified | + +## Tag#name Sync + +```js +var string = tag.name(); +``` + + +| Returns | | +| --- | --- | +| String | name of the tag | + +## Tag#owner Sync + +```js +var repository = tag.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Repository that contains this tag. | + +## Tag#peel Sync + +```js +var result = tag.peel(tag_target_out); +``` + +| Parameters | Type | +| --- | --- | --- | +| tag_target_out | [Object](/api/object/) | Pointer to the peeled git_object | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Tag#tagger Sync + +```js +var signature = tag.tagger(); +``` + + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | reference to the tag's author or NULL when unspecified | + +## Tag#target Sync + +```js +var object = tag.target(); +``` + + +| Returns | | +| --- | --- | +| [Object](/api/object/) | the target | + +## Tag#targetId Sync + +```js +var oid = tag.targetId(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | pointer to the OID | + +## Tag#targetType Sync + +```js +var result = tag.targetType(); +``` + + +| Returns | | +| --- | --- | +| Number | type of the tagged object | + diff --git a/api/time/index.md b/api/time/index.md new file mode 100644 index 0000000..25d0ee5 --- /dev/null +++ b/api/time/index.md @@ -0,0 +1,19 @@ +--- +layout: default +menu_item: api +title: Time +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| offset | Number | +| time | Number | + diff --git a/api/trace/index.md b/api/trace/index.md new file mode 100644 index 0000000..8973c4e --- /dev/null +++ b/api/trace/index.md @@ -0,0 +1,24 @@ +--- +layout: default +menu_item: api +title: Trace +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "LEVEL": "#LEVEL" +--- + +## Trace.LEVEL ENUM + +| Flag | Value | +| --- | --- | --- | +| Trace.LEVEL.NONE | 0 | +| Trace.LEVEL.FATAL | 1 | +| Trace.LEVEL.ERROR | 2 | +| Trace.LEVEL.WARN | 3 | +| Trace.LEVEL.INFO | 4 | +| Trace.LEVEL.DEBUG | 5 | +| Trace.LEVEL.TRACE | 6 | + diff --git a/api/transfer_progress/index.md b/api/transfer_progress/index.md new file mode 100644 index 0000000..1b39165 --- /dev/null +++ b/api/transfer_progress/index.md @@ -0,0 +1,24 @@ +--- +layout: default +menu_item: api +title: TransferProgress +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| indexed_deltas | Number | +| indexed_objects | Number | +| local_objects | Number | +| received_bytes | Number | +| received_objects | Number | +| total_deltas | Number | +| total_objects | Number | + diff --git a/api/transport/index.md b/api/transport/index.md new file mode 100644 index 0000000..dbbd01e --- /dev/null +++ b/api/transport/index.md @@ -0,0 +1,51 @@ +--- +layout: default +menu_item: api +title: Transport +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "sshWithPaths": "#sshWithPaths" + "#init": "#init" + "FLAGS": "#FLAGS" +--- + +## Transport.sshWithPaths AsyncExperimental + +```js +Transport.sshWithPaths(owner, payload).then(function(transport) { + // Use transport +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| owner | [Remote](/api/remote/) | the owning remote | +| payload | Void | a strarray with the paths | + +| Returns | | +| --- | --- | +| [Transport](/api/transport/) | the resulting transport | + +## Transport#init SyncExperimental + +```js +var result = transport.init(version); +``` + +| Parameters | Type | +| --- | --- | --- | +| version | Number | Version of struct; pass `GIT_TRANSPORT_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + +## Transport.FLAGS ENUM + +| Flag | Value | +| --- | --- | --- | +| Transport.FLAGS.NONE | 0 | + diff --git a/api/tree/index.md b/api/tree/index.md new file mode 100644 index 0000000..080571b --- /dev/null +++ b/api/tree/index.md @@ -0,0 +1,229 @@ +--- +layout: default +menu_item: api +title: Tree +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "lookup": "#lookup" + "lookupPrefix": "#lookupPrefix" + "#_entryByIndex": "#_entryByIndex" + "#builder": "#builder" + "#diff": "#diff" + "#entries": "#entries" + "#entryById": "#entryById" + "#entryByIndex": "#entryByIndex" + "#entryByName": "#entryByName" + "#entryByPath": "#entryByPath" + "#entryCount": "#entryCount" + "#getEntry": "#getEntry" + "#id": "#id" + "#owner": "#owner" + "#path": "#path" + "#walk": "#walk" + "WALK_MODE": "#WALK_MODE" +--- + +## Tree.lookup Sync + +```js +Tree.lookup(repo, id, callback); +``` + +Retrieves the tree pointed to by the oid + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repo that the tree lives in | +| id | String, [Oid](/api/oid/), [Tree](/api/tree/) | The tree to lookup | +| callback | Function | | +## Tree.lookupPrefix AsyncExperimental + +```js +Tree.lookupPrefix(repo, id, len).then(function(tree) { + // Use tree +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repo to use when locating the tree. | +| id | [Oid](/api/oid/) | identity of the tree to locate. | +| len | Number | the length of the short identifier | + +| Returns | | +| --- | --- | +| [Tree](/api/tree/) | pointer to the looked up tree | + +## Tree#_entryByIndex SyncExperimental + +```js +var treeEntry = tree._entryByIndex(idx); +``` + +| Parameters | Type | +| --- | --- | --- | +| idx | Number | the position in the entry list | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | the tree entry; NULL if not found | + +## Tree#builder Sync + +```js +tree.builder(); +``` + +Make builder. This is helpful for modifying trees. + +## Tree#diff Sync + +```js +tree.diff(tree, callback); +``` + +Diff two trees + +| Parameters | Type | +| --- | --- | --- | +| tree | [Tree](/api/tree/) | to diff against | +| callback | Function | | +## Tree#entries Sync + +```js +tree.entries(); +``` + +Return an array of the entries in this tree (excluding its children). + +## Tree#entryById SyncExperimental + +```js +var treeEntry = tree.entryById(id); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | the sha being looked for | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | the tree entry; NULL if not found | + +## Tree#entryByIndex Sync + +```js +tree.entryByIndex(i); +``` + +Get an entry at the ith position. + + +| Parameters | Type | +| --- | --- | --- | +| i | Number | | +## Tree#entryByName Sync + +```js +tree.entryByName(name); +``` + +Get an entry by name; if the tree is a directory, the name is the filename. + + +| Parameters | Type | +| --- | --- | --- | +| name | String | | +## Tree#entryByPath AsyncExperimental + +```js +tree.entryByPath(path).then(function(treeEntry) { + // Use treeEntry +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| path | String | Path to the contained entry | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | the tree entry | + +## Tree#entryCount SyncExperimental + +```js +var result = tree.entryCount(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of entries in the tree | + +## Tree#getEntry Sync + +```js +tree.getEntry(path); +``` + +Get an entry at a path. Unlike by name, this takes a fully +qualified path, like `/foo/bar/baz.javascript` + + +| Parameters | Type | +| --- | --- | --- | +| path | String | | +## Tree#id SyncExperimental + +```js +var oid = tree.id(); +``` + + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | object identity for the tree. | + +## Tree#owner SyncExperimental + +```js +var repository = tree.owner(); +``` + + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | Repository that contains this tree. | + +## Tree#path Sync + +```js +tree.path(); +``` + +Return the path of this tree, like `/lib/foo/bar` + +## Tree#walk Sync + +```js +tree.walk([blobsOnly); +``` + +Recursively walk the tree in breadth-first order. Fires an event for each +entry. + + +| Parameters | Type | +| --- | --- | --- | +| [blobsOnly | Boolean | = true] True to emit only blob & blob executable entries. | +## Tree.WALK_MODE ENUM + +| Flag | Value | +| --- | --- | --- | +| Tree.WALK_MODE.WALK_PRE | 0 | +| Tree.WALK_MODE.WALK_POST | 1 | + diff --git a/api/tree_entry/index.md b/api/tree_entry/index.md new file mode 100644 index 0000000..d240257 --- /dev/null +++ b/api/tree_entry/index.md @@ -0,0 +1,114 @@ +--- +layout: default +menu_item: api +title: TreeEntry +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "#getBlob": "#getBlob" + "#getTree": "#getTree" + "#isBlob": "#isBlob" + "#isDirectory": "#isDirectory" + "#isFile": "#isFile" + "#isTree": "#isTree" + "#path": "#path" + "#sha": "#sha" + "#toString": "#toString" + "FILEMODE": "#FILEMODE" + "Instance Variables": "#ivars" +--- + +## TreeEntry#getBlob Sync + +```js +treeEntry.getBlob(); +``` + +Retrieve the tree for this entry. Make sure to call `isTree` first! + +## TreeEntry#getTree Sync + +```js +treeEntry.getTree(); +``` + +Retrieve the tree for this entry. Make sure to call `isTree` first! + +## TreeEntry#isBlob Sync + +```js +treeEntry.isBlob(); +``` + +Is this TreeEntry a blob? Alias for `isFile` + +## TreeEntry#isDirectory Sync + +```js +treeEntry.isDirectory(); +``` + +Is this TreeEntry a directory? Alias for `isTree` + +## TreeEntry#isFile Sync + +```js +treeEntry.isFile(); +``` + +Is this TreeEntry a blob? (i.e., a file) + +## TreeEntry#isTree Sync + +```js +treeEntry.isTree(); +``` + +Is this TreeEntry a tree? (i.e., a directory) + +## TreeEntry#path Sync + +```js +treeEntry.path(); +``` + +Returns the path for this entry. + +## TreeEntry#sha Sync + +```js +treeEntry.sha(); +``` + +Retrieve the SHA for this TreeEntry. + +## TreeEntry#toString Sync + +```js +treeEntry.toString(); +``` + +Alias for `path` + +## TreeEntry.FILEMODE ENUM + +| Flag | Value | +| --- | --- | --- | +| TreeEntry.FILEMODE.UNREADABLE | 0 | +| TreeEntry.FILEMODE.TREE | 16384 | +| TreeEntry.FILEMODE.BLOB | 33188 | +| TreeEntry.FILEMODE.EXECUTABLE | 33261 | +| TreeEntry.FILEMODE.LINK | 40960 | +| TreeEntry.FILEMODE.COMMIT | 57344 | + +## Instance Variables + +| Variable | Type | +| --- | --- | +| attr | Number | +| filename | String | +| filename_len | Number | +| oid | Oid | + diff --git a/api/treebuilder/index.md b/api/treebuilder/index.md new file mode 100644 index 0000000..2361f68 --- /dev/null +++ b/api/treebuilder/index.md @@ -0,0 +1,112 @@ +--- +layout: default +menu_item: api +title: Treebuilder +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "create": "#create" + "#clear": "#clear" + "#entrycount": "#entrycount" + "#get": "#get" + "#insert": "#insert" + "#remove": "#remove" + "#write": "#write" +--- + +## Treebuilder.create AsyncExperimental + +```js +Treebuilder.create(repo, source).then(function(treebuilder) { + // Use treebuilder +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository in which to store the object | +| source | [Tree](/api/tree/) | Source tree to initialize the builder (optional) | + +| Returns | | +| --- | --- | +| [Treebuilder](/api/treebuilder/) | the tree builder | + +## Treebuilder#clear SyncExperimental + +```js +treebuilder.clear(); +``` + +## Treebuilder#entrycount SyncExperimental + +```js +var result = treebuilder.entrycount(); +``` + + +| Returns | | +| --- | --- | +| Number | the number of entries in the treebuilder | + +## Treebuilder#get SyncExperimental + +```js +var treeEntry = treebuilder.get(filename); +``` + +| Parameters | Type | +| --- | --- | --- | +| filename | String | Name of the entry | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | pointer to the entry; NULL if not found | + +## Treebuilder#insert AsyncExperimental + +```js +treebuilder.insert(filename, id, filemode).then(function(treeEntry) { + // Use treeEntry +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| filename | String | Filename of the entry | +| id | [Oid](/api/oid/) | SHA1 oid of the entry | +| filemode | Number | Folder attributes of the entry. This parameter must be valued with one of the following entries: 0040000, 0100644, 0100755, 0120000 or 0160000. | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | Pointer to store the entry (optional) | + +## Treebuilder#remove SyncExperimental + +```js +var result = treebuilder.remove(filename); +``` + +| Parameters | Type | +| --- | --- | --- | +| filename | String | Filename of the entry to remove | + +| Returns | | +| --- | --- | +| Number | | + +## Treebuilder#write SyncExperimental + +```js +var result = treebuilder.write(id); +``` + +| Parameters | Type | +| --- | --- | --- | +| id | [Oid](/api/oid/) | Pointer to store the OID of the newly written tree | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + diff --git a/css/main.scss b/css/main.scss index dd59bb0..2901040 100755 --- a/css/main.scss +++ b/css/main.scss @@ -7,8 +7,8 @@ $font-family: "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; $font-size: 16px; $line-height: 1.5; $spacing-unit: 30px; -$headline-color: #444; -$text-color: #727272; +$headline-color: #222; +$text-color: #555; $key-color: #F1595F; // Import partials from `sass_dir` (defaults to `_sass`) diff --git a/generate/index.js b/generate/index.js new file mode 100644 index 0000000..c4570de --- /dev/null +++ b/generate/index.js @@ -0,0 +1,13 @@ +var generatedData = require('./lib/generated_data'); +var writeApiDocs = require('./lib/write_api_docs'); +var addConvenienceMethods = require('./lib/add_convenience_methods.js'); + +var idefsPath = 'generate/nodegit/generate/output/idefs.json'; +var missingtestsPath = 'generate/nodegit/generate/output/missing-tests.json' + +var baseData = generatedData(idefsPath, missingtestsPath); +var fullData; + +addConvenienceMethods(baseData).then(function(fullData) { + writeApiDocs(fullData); +}); diff --git a/generate/lib/add_convenience_methods.js b/generate/lib/add_convenience_methods.js new file mode 100644 index 0000000..0c31b01 --- /dev/null +++ b/generate/lib/add_convenience_methods.js @@ -0,0 +1,62 @@ +var dox = require('dox'); +var Promise = require('bluebird'); +var fs = require('fs-extra'); +var dive = Promise.promisify(require('dive')); +var changeCase = require('change-case'); +var Path = require('path'); +var setDocDefaults = require('./set_doc_defaults'); + +var addConvenienceMethods = function(apiData) { + return dive('generate/nodegit/lib', {recursive:false}, function(err, path) { + var code = fs.readFileSync(path).toString(); + var className = changeCase.pascalCase(Path.basename(path, '.js')); + dox.parseComments(code, {raw: true}).forEach(function(doc) { + + if (!doc.ctx) return; + + var data = { + params: [], + return: null, + isAsync: false, + description: doc.description.full + } + + doc.tags.forEach(function(tag) { + switch(tag.type) { + case 'param': + data.params.push({ + "name": tag.name, + "types": tag.types, + "description": tag.description, + "optional": tag.optional + }); + break; + case 'return': + data.return = { + name: tag.name, + type: tag.types[0], + description: tag.description || null + }; + break; + case 'isAsync': + if (tag.value == 'true') { + data.isAsync = true; + } + break; + } + }); + + if (doc.ctx.constructor == className) { + var obj = setDocDefaults(apiData, className); + apiData[className].prototypes[doc.ctx.name] = data; + } else if (doc.ctx.receiver == className) { + var obj = setDocDefaults(apiData, className); + apiData[className].constructors[doc.ctx.name] = data; + } + }); + }).then(function() { + return apiData; + }); +} + +module.exports = addConvenienceMethods; diff --git a/generate/lib/generated_data.js b/generate/lib/generated_data.js new file mode 100644 index 0000000..6243b32 --- /dev/null +++ b/generate/lib/generated_data.js @@ -0,0 +1,102 @@ +var fs = require('fs-extra'); +var setDocDefaults = require('./set_doc_defaults'); +var changeCase = require('change-case'); + +var removePointerReferences = function(text) { + if (!text) return ''; + text = text.replace(/a pointer to /ig, ''); + text = text.replace(/pointer where to store /ig, ''); + return text +} + +var sanitizeArgName = function(className, comment) { + var argName = changeCase.camelCase(className); + if (argName == 'number') { + argName = 'result'; + } + + return argName; +} + +var generatedData = function(path, missingTestsPath) { + var apiData = {}; + var generatedJSON = fs.readJsonSync(path); + + if (missingTestsPath) { + var missingTests = fs.readJsonSync(missingTestsPath); + } + + generatedJSON.forEach(function(item) { + switch (item.type) { + case 'class': + case 'struct': + var obj = setDocDefaults(apiData, item.jsClassName); + obj.type = item.type + obj.hasConstructor = item.hasConstructor || false + + item.functions.forEach(function(func) { + data = { + params: [], + return: { + type: func.return.jsClassName, + name: sanitizeArgName(func.return.jsClassName, func.return.comment), + description: removePointerReferences(func.return.comment) + }, + isAsync: func.isAsync, + description: "", + experimental: false + } + + if (missingTests) { + if (missingTests[item.filename].testFileMissing === false) { + data.experimental = true; + } else { + if (missingTests[item.filename].functions.indexOf(item.jsClassName) != -1) { + data.experimental = true; + } + } + } + + func.args.forEach(function(arg) { + if (arg.isReturn) { + data.return = { + name: sanitizeArgName(arg.jsClassName, arg.comment), + type: arg.jsClassName, + description: removePointerReferences(arg.comment) + }; + } else if (!arg.ignore && !arg.isSelf) { + data.params.push({ + "name": arg.name, + "types": [arg.jsClassName], + "description": arg.comment, + "optional": arg.isOptional || false + }); + } + }); + + if (func.isPrototypeMethod) { + obj.prototypes[func.jsFunctionName] = data + } else if (func.isConstructorMethod) { + obj.constructors[func.jsFunctionName] = data + } + }); + + item.fields.forEach(function(field) { + obj.fields[field.name] = field.jsClassName; + }); + break; + case 'enum': + obj = setDocDefaults(apiData, item.owner); + + var list = obj.enums[item.JsName] = {} + item.values.forEach(function(value) { + list[value.JsName] = value.value; + }); + break; + } + }); + + return apiData; +} + +module.exports = generatedData; diff --git a/generate/lib/set_doc_defaults.js b/generate/lib/set_doc_defaults.js new file mode 100644 index 0000000..15c6f30 --- /dev/null +++ b/generate/lib/set_doc_defaults.js @@ -0,0 +1,14 @@ +var setDocDefaults = function(apiData, className) { + if (!apiData[className]) { + apiData[className] = { + constructors:{}, + prototypes:{}, + fields:{}, + enums:{} + }; + } + + return apiData[className]; +} + +module.exports = setDocDefaults; diff --git a/generate/lib/write_api_docs.js b/generate/lib/write_api_docs.js new file mode 100644 index 0000000..bb9eeb9 --- /dev/null +++ b/generate/lib/write_api_docs.js @@ -0,0 +1,274 @@ +var fs = require('fs-extra'); +var Path = require('path'); +var changeCase = require('change-case'); + +var writeApiDocs = function(apiData, path) { + var path = path || ''; + path = ("/" + path + "/").replace(/\/+/g, '/'); + + fs.removeSync(Path.join(process.cwd(), path, 'api')); + + var homeBody = ""; + var homeSections = ""; + + var linkToEntry = function(name, file, hash) { + if (hash) { + hash = "#" + hash; + } else { + hash = '' + } + + return "[" + name + "](" + path + "api/" + changeCase.snakeCase(file) + "/" + hash + ")"; + } + + var crossLink = function(text) { + if (apiData[text]) { + return "[" + text + "](" + path + "api/" + changeCase.snakeCase(text) + "/)"; + } else { + return text; + } + } + + Object.keys(apiData).sort().forEach(function(item) { + var data = apiData[item]; + var pageBody = ""; + var pageSections = ""; + + if (Object.keys(data.constructors).length || Object.keys(data.prototypes).length || + Object.keys(data.fields).length || Object.keys(data.enums).length) { + homeBody += "## " + linkToEntry(item, item) + "\n\n"; + homeSections += ' "' + item + '": "#' + item + '"\n'; + + if (data.hasConstructor) { + pageBody += "```js\n"; + pageBody += "var " + changeCase.camelCase(item) + " = new " + item + "();\n"; + pageBody += "```\n\n"; + } + } + + if (Object.keys(data.constructors).length) { + homeBody += "| Class Methods | |\n"; + homeBody += "| --- | ---: |\n"; + Object.keys(data.constructors).sort().forEach(function(obj) { + var fdata = data.constructors[obj]; + var method = "" + item + "." + obj + " (" + data.constructors[obj].params.map(function(param) {return param.name;}).join(', ') + ")" + + pageBody += "## " + "" + item + "." + obj; + + var tags = " "; + if (fdata.isAsync) { + tags += "Async"; + } else { + tags += "Sync"; + } + if (fdata.experimental) { + tags += "Experimental"; + } + tags += "" + + homeBody += "| " + linkToEntry(method, item, obj) + " | " + tags + " |\n"; + + pageBody += tags + "\n\n"; + pageBody += "```js\n"; + + var returnName = null; + if (fdata.return && fdata.return.type && + fdata.return.name != 'undefined' && fdata.return.name != 'void') { + returnName = fdata.return.name; + } + + if (fdata.isAsync) { + returnName = returnName || 'data'; + pageBody += item + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) + .join(", ") + ").then(function(" + returnName + ") {\n"; + pageBody += " // Use " + returnName + "\n"; + pageBody += "});\n"; + } else { + if (returnName) { + pageBody += "var " + returnName + " = "; + } + pageBody += item + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) + .join(", ") + ");\n"; + } + pageBody += "```\n\n"; + + if (fdata.description) { + pageBody += fdata.description + "\n\n"; + } + + if (fdata.params.length) { + pageBody += "| Parameters | Type | |\n"; + pageBody += "| --- | --- | --- |\n"; + fdata.params.forEach(function(param) { + var types = param.types.map(function(type) { + return crossLink(type); + }); + + pageBody += "| " + param.name + " | " + types.join(', ') + " | " + + (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; + }); + } + + if (returnName) { + pageBody += "\n| Returns | |\n"; + pageBody += "| --- | --- |\n"; + pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; + } + + pageSections += ' "' + obj + '": "#' + obj + '"\n'; + }); + homeBody += "\n"; + } + + if (Object.keys(data.prototypes).length) { + homeBody += "| Instance Methods | |\n"; + homeBody += "| --- | ---: |\n"; + Object.keys(data.prototypes).sort().forEach(function(obj) { + var fdata = data.prototypes[obj]; + var method = "" + item + "#" + obj + " (" + data.prototypes[obj].params.map(function(param) {return param.name;}).join(', ') + ")" + + pageBody += "## " + "" + item + "#" + obj; + + var tags = " "; + if (fdata.isAsync) { + tags += "Async"; + } else { + tags += "Sync"; + } + if (fdata.experimental) { + tags += "Experimental"; + } + tags += "" + + pageBody += tags + "\n\n"; + pageBody += "```js\n"; + + homeBody += "| " + linkToEntry(method, item, obj) + " | " + tags + " |\n"; + + var returnName = null; + if (fdata.return && fdata.return.type && + fdata.return.name != 'undefined' && fdata.return.name != 'void') { + returnName = fdata.return.name; + } + + if (fdata.isAsync) { + returnName = returnName || 'data'; + pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) + .join(", ") + ").then(function(" + returnName + ") {\n"; + pageBody += " // Use " + returnName + "\n"; + pageBody += "});\n"; + } else { + if (returnName) { + pageBody += "var " + returnName + " = "; + } + pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) + .join(", ") + ");\n"; + } + pageBody += "```\n\n"; + + if (fdata.description) { + pageBody += fdata.description + "\n\n"; + } + + if (fdata.params.length) { + pageBody += "| Parameters | Type |\n"; + pageBody += "| --- | --- | --- |\n"; + fdata.params.forEach(function(param) { + var types = param.types.map(function(type) { + return crossLink(type); + }); + pageBody += "| " + param.name + " | " + types.join(', ') + " | " + + (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; + }); + } + + if (returnName) { + pageBody += "\n| Returns | |\n"; + pageBody += "| --- | --- |\n"; + pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; + } + + pageSections += ' "#' + obj + '": "#' + obj + '"\n'; + }); + homeBody += "\n"; + } + + if (Object.keys(data.enums).length) { + homeBody += "| ENUMS | |\n"; + homeBody += "| --- | ---: |\n"; + Object.keys(data.enums).sort().forEach(function(obj) { + homeBody += "| " + linkToEntry("" + item + "." + obj, item, obj) + "| |\n"; + + pageBody += "## " + "" + item + "." + obj; + pageBody += " "; + pageBody += "ENUM"; + pageBody += "\n\n"; + pageBody += "| Flag | Value |\n"; + pageBody += "| --- | --- | --- |\n"; + + Object.keys(data.enums[obj]).forEach(function(key) { + pageBody += "| " + item + "." + obj + "." + key + " | " + data.enums[obj][key] + " |\n" + }); + pageBody += "\n"; + pageSections += ' "' + obj + '": "#' + obj + '"\n'; + }); + homeBody += "\n"; + } + + if (Object.keys(data.fields).length) { + pageBody += "## Instance Variables\n\n"; + pageBody += "| Variable | Type |\n"; + pageBody += "| --- | --- |\n"; + + homeBody += "| Instance Variables | |\n"; + homeBody += "| --- | ---: |\n"; + + Object.keys(data.fields).sort().forEach(function(obj) { + homeBody += "| " + linkToEntry("" + item + "#" + obj, item, obj) + " | |\n"; + pageBody += "| " + obj + " | " + data.fields[obj] + " |\n"; + }); + + pageBody += "\n"; + homeBody += "\n"; + pageSections += ' "Instance Variables": "#ivars"\n'; + } + + homeBody += "\n" + + if (pageBody) { + var pageContent = "---\n"; + pageContent += "layout: default\n"; + pageContent += "menu_item: api\n"; + pageContent += "title: " + item + "\n"; + pageContent += "description: Version 0.3.0\n"; + pageContent += "menu_item: api\n"; + pageContent += "return_to:\n"; + pageContent += " \"API Documentation Index\": " + path + "api/\n"; + pageContent += "sections:\n"; + pageContent += pageSections; + pageContent += "---\n\n"; + pageContent += pageBody; + + console.log("- Writing " + item); + fs.outputFileSync('api/' + changeCase.snakeCase(item) + '/index.md', pageContent); + } + }); + + var homeContent = "---\n"; + homeContent += "layout: default\n"; + homeContent += "menu_item: api\n"; + homeContent += "title: API Docs\n"; + homeContent += "description: Version 0.3.0\n"; + homeContent += "menu_item: api\n"; + homeContent += "sections:\n"; + homeContent += homeSections; + homeContent += "---\n\n"; + homeContent += homeBody; + + console.log("- Writing API Index") + fs.outputFileSync('.' + path + 'api/index.md', homeContent); + + +} + +module.exports = writeApiDocs; diff --git a/package.json b/package.json new file mode 100644 index 0000000..d910543 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "nodegit.github.com", + "version": "1.0.0", + "description": "The nodegit.org website generator", + "main": "index.js", + "dependencies": { + "bluebird": "^2.9.12", + "change-case": "^2.2.0", + "dive": "^0.4.0", + "dox": "^0.6.1", + "fs-extra": "^0.16.3", + "lodash": "^3.3.0" + }, + "devDependencies": {}, + "repository": { + "type": "git", + "url": "https://github.com/nodegit/nodegit.github.com" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/nodegit/nodegit.github.com/issues" + }, + "homepage": "https://github.com/nodegit/nodegit.github.com" +} From 7befdf0cdaa9f820e3bb646072dd6d944d7804e8 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Sun, 22 Feb 2015 21:36:10 -0500 Subject: [PATCH 10/24] Updates based on docs changes Also, caught a bunch more methods to doc. --- _sass/_layout.scss | 1 + _sass/_syntax-highlighting.scss | 6 + _sass/_type.scss | 9 + api/annotated/index.md | 82 ++++++++ api/attr/index.md | 85 ++++++++ api/blame/index.md | 21 +- api/blob/index.md | 91 +++++++-- api/branch/index.md | 160 +++++++++++++++ api/buf/index.md | 2 - api/checkout/index.md | 40 +++- api/cherrypick/index.md | 65 +++++++ api/clone/index.md | 33 +++- api/commit/index.md | 169 +++++++++++++--- api/config/index.md | 3 +- api/convenient_hunk/index.md | 18 +- api/convenient_patch/index.md | 84 ++++++-- api/cred/index.md | 2 - api/diff/index.md | 20 +- api/filter/index.md | 53 ++++- api/giterr/index.md | 63 ++++++ api/graph/index.md | 29 +++ api/hashsig/index.md | 1 - api/ignore/index.md | 42 ++++ api/index.md | 246 +++++++++++++++++++++--- api/index/index.md | 32 +-- api/indexer/index.md | 1 - api/libgit_2/index.md | 64 ++++++ api/merge/index.md | 101 +++++++++- api/note/index.md | 101 +++++++++- api/object/index.md | 72 ++++++- api/odb/index.md | 5 +- api/odb_object/index.md | 5 - api/oid/index.md | 4 - api/openssl/index.md | 23 +++ api/packbuilder/index.md | 3 - api/patch/index.md | 2 - api/pathspec/index.md | 78 ++++++++ api/push/index.md | 27 +++ api/rebase/index.md | 22 ++- api/refdb/index.md | 4 +- api/reference/index.md | 200 ++++++++++++++++--- api/reflog/index.md | 97 +++++++++- api/refspec/index.md | 4 - api/remote/index.md | 109 ++++++++--- api/repository/index.md | 209 ++++++++++++++------ api/reset/index.md | 19 ++ api/revert/index.md | 49 +++++ api/revparse/index.md | 37 ++++ api/revwalk/index.md | 32 ++- api/signature/index.md | 7 +- api/stash/index.md | 16 ++ api/status/index.md | 78 ++++++++ api/status_list/index.md | 4 +- api/strarray/index.md | 1 - api/submodule/index.md | 68 ++++--- api/tag/index.md | 156 +++++++++++++-- api/transport/index.md | 15 ++ api/tree/index.md | 217 +++++++++++++++++++-- api/tree_entry/index.md | 56 +++++- api/treebuilder/index.md | 5 +- generate/lib/add_convenience_methods.js | 24 ++- generate/lib/generated_data.js | 10 +- generate/lib/write_api_docs.js | 116 ++++++++--- 63 files changed, 2983 insertions(+), 415 deletions(-) create mode 100644 api/annotated/index.md create mode 100644 api/cherrypick/index.md create mode 100644 api/giterr/index.md create mode 100644 api/graph/index.md create mode 100644 api/ignore/index.md create mode 100644 api/openssl/index.md create mode 100644 api/push/index.md create mode 100644 api/revert/index.md diff --git a/_sass/_layout.scss b/_sass/_layout.scss index 3941e34..8aa15e4 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -249,6 +249,7 @@ header { position:relative; top:-2px; right:-12px; + white-space:nowrap; span { padding-top:2px; diff --git a/_sass/_syntax-highlighting.scss b/_sass/_syntax-highlighting.scss index 8870c7b..2e8f45a 100644 --- a/_sass/_syntax-highlighting.scss +++ b/_sass/_syntax-highlighting.scss @@ -20,6 +20,12 @@ pre { margin:0; + + code { + border:none; + background:none; + padding:0; + } } } .highlight .hll { background-color: #d6d6d6 } diff --git a/_sass/_type.scss b/_sass/_type.scss index 7c25119..d864184 100644 --- a/_sass/_type.scss +++ b/_sass/_type.scss @@ -85,3 +85,12 @@ a { } } } + +code { + font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace; + background:#f8f8f8; + padding:4px; + border:1px solid #ededed; + border-radius:3px; + font-size:13px; +} diff --git a/api/annotated/index.md b/api/annotated/index.md new file mode 100644 index 0000000..e74141c --- /dev/null +++ b/api/annotated/index.md @@ -0,0 +1,82 @@ +--- +layout: default +menu_item: api +title: Annotated +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "commitFromFetchhead": "#commitFromFetchhead" + "commitFromRef": "#commitFromRef" + "commitId": "#commitId" + "commitLookup": "#commitLookup" +--- + +## Annotated.commitFromFetchhead AsyncExperimental + +```js +Annotated.commitFromFetchhead(repo, branch_name, remote_url, id).then(function(annotatedCommit) { + // Use annotatedCommit +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository that contains the given commit | +| branch_name | String | name of the (remote) branch | +| remote_url | String | url of the remote | +| id | [Oid](/api/oid/) | | + +| Returns | | +| --- | --- | +| [AnnotatedCommit](/api/annotated_commit/) | | + +## Annotated.commitFromRef AsyncExperimental + +```js +Annotated.commitFromRef(repo, ref).then(function(annotatedCommit) { + // Use annotatedCommit +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository that contains the given reference | +| ref | [Reference](/api/reference/) | reference to use to lookup the git_annotated_commit | + +| Returns | | +| --- | --- | +| [AnnotatedCommit](/api/annotated_commit/) | | + +## Annotated.commitId SyncExperimental + +```js +var oid = Annotated.commitId(commit); +``` + +| Parameters | Type | | +| --- | --- | --- | +| commit | [AnnotatedCommit](/api/annotated_commit/) | | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | commit id | + +## Annotated.commitLookup AsyncExperimental + +```js +Annotated.commitLookup(repo, id).then(function(annotatedCommit) { + // Use annotatedCommit +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository that contains the given commit | +| id | [Oid](/api/oid/) | the commit object id to lookup | + +| Returns | | +| --- | --- | +| [AnnotatedCommit](/api/annotated_commit/) | | + diff --git a/api/attr/index.md b/api/attr/index.md index 509064b..d1d0e9b 100644 --- a/api/attr/index.md +++ b/api/attr/index.md @@ -7,9 +7,94 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "addMacro": "#addMacro" + "cacheFlush": "#cacheFlush" + "get": "#get" + "getMany": "#getMany" + "value": "#value" "STATES": "#STATES" --- +## Attr.addMacro Sync + +```js +var result = Attr.addMacro(repo, name, values); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| name | String | | +| values | String | | + +| Returns | | +| --- | --- | +| Number | | + +## Attr.cacheFlush Sync + +```js +Attr.cacheFlush(repo); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | + +## Attr.get Async + +```js +Attr.get(repo, flags, path, name).then(function(string) { + // Use string +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the path. | +| flags | Number | A combination of GIT_ATTR_CHECK... flags. | +| path | String | The path to check for attributes. Relative paths are interpreted relative to the repo root. The file does not have to exist, but if it does not, then it will be treated as a plain file (not a directory). | +| name | String | The name of the attribute to look up. | + +| Returns | | +| --- | --- | +| String | Output of the value of the attribute. Use the GIT_ATTR_... + macros to test for TRUE, FALSE, UNSPECIFIED, etc. or just + use the string value for attributes set to a value. You + should NOT modify or free this value. | + +## Attr.getMany Sync + +```js +var array = Attr.getMany(repo, flags, path, num_attr, names); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository containing the path. | +| flags | Number | A combination of GIT_ATTR_CHECK... flags. | +| path | String | The path inside the repo to check attributes. This does not have to exist, but if it does not, then it will be treated as a plain file (i.e. not a directory). | +| num_attr | Number | The number of attributes being looked up | +| names | String | An array of num_attr strings containing attribute names. | + +| Returns | | +| --- | --- | +| Array | | + +## Attr.value Sync + +```js +var result = Attr.value(attr); +``` + +| Parameters | Type | | +| --- | --- | --- | +| attr | String | The attribute | + +| Returns | | +| --- | --- | +| Number | the value type for the attribute | + ## Attr.STATES ENUM | Flag | Value | diff --git a/api/blame/index.md b/api/blame/index.md index 2893a43..7642ef3 100644 --- a/api/blame/index.md +++ b/api/blame/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "file": "#file" + "initOptions": "#initOptions" "#buffer": "#buffer" "#getHunkByIndex": "#getHunkByIndex" "#getHunkByLine": "#getHunkByLine" @@ -31,7 +32,22 @@ Blame.file(repo, path, options).then(function(blame) { | Returns | | | --- | --- | -| [Blame](/api/blame/) | pointer that will receive the blame object | +| [Blame](/api/blame/) | | + +## Blame.initOptions SyncExperimental + +```js +var result = Blame.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [BlameOptions](/api/blame_options/) | The `git_blame_options` struct to initialize | +| version | Number | Version of struct; pass `GIT_BLAME_OPTIONS_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | ## Blame#buffer AsyncExperimental @@ -48,7 +64,7 @@ blame.buffer(buffer, buffer_len).then(function(blame) { | Returns | | | --- | --- | -| [Blame](/api/blame/) | pointer that will receive the resulting blame data | +| [Blame](/api/blame/) | | ## Blame#getHunkByIndex SyncExperimental @@ -84,7 +100,6 @@ var blameHunk = blame.getHunkByLine(lineno); var result = blame.getHunkCount(); ``` - | Returns | | | --- | --- | | Number | | diff --git a/api/blob/index.md b/api/blob/index.md index 8aa9545..193f028 100644 --- a/api/blob/index.md +++ b/api/blob/index.md @@ -7,6 +7,9 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "createFromBuffer": "#createFromBuffer" + "createFromDisk": "#createFromDisk" + "createFromWorkdir": "#createFromWorkdir" "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" "#content": "#content" @@ -19,10 +22,61 @@ sections: "#toString": "#toString" --- -## Blob.lookup Sync +## Blob.createFromBuffer Sync ```js -Blob.lookup(repo, id, callback); +var result = Blob.createFromBuffer(id, repo, buffer, len); +``` + +| Parameters | Type | | +| --- | --- | --- | +| id | [Oid](/api/oid/) | return the id of the written blob | +| repo | [Repository](/api/repository/) | repository where to blob will be written | +| buffer | Buffer | data to be written into the blob | +| len | Number | length of the data | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Blob.createFromDisk Sync + +```js +var result = Blob.createFromDisk(id, repo, path); +``` + +| Parameters | Type | | +| --- | --- | --- | +| id | [Oid](/api/oid/) | return the id of the written blob | +| repo | [Repository](/api/repository/) | repository where the blob will be written. this repository can be bare or not | +| path | String | file from which the blob will be created | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Blob.createFromWorkdir Sync + +```js +var result = Blob.createFromWorkdir(id, repo, relative_path); +``` + +| Parameters | Type | | +| --- | --- | --- | +| id | [Oid](/api/oid/) | return the id of the written blob | +| repo | [Repository](/api/repository/) | repository where the blob will be written. this repository cannot be bare | +| relative_path | String | file from which the blob will be created, relative to the repository's working dir | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Blob.lookup Async + +```js +Blob.lookup(repo, id).then(function(blob) { + // Use blob +}); ``` Retrieves the blob pointed to by the oid @@ -31,7 +85,11 @@ Retrieves the blob pointed to by the oid | --- | --- | --- | | repo | [Repository](/api/repository/) | The repo that the blob lives in | | id | String, [Oid](/api/oid/), [Blob](/api/blob/) | The blob to lookup | -| callback | Function | | + +| Returns | | +| --- | --- | +| [Blob](/api/blob/) | | + ## Blob.lookupPrefix Async ```js @@ -48,33 +106,40 @@ Blob.lookupPrefix(repo, id, len).then(function(blob) { | Returns | | | --- | --- | -| [Blob](/api/blob/) | pointer to the looked up blob | +| [Blob](/api/blob/) | | ## Blob#content Sync ```js -blob.content(); +var buffer = blob.content(); ``` Retrieve the content of the Blob. +| Returns | | +| --- | --- | +| Buffer | Contents as a buffer. | + ## Blob#filemode Sync ```js -blob.filemode(); +var number = blob.filemode(); ``` Retrieve the Blob's type. +| Returns | | +| --- | --- | +| Number | The filemode of the blob. | + ## Blob#id Sync ```js var oid = blob.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | SHA1 hash for this blob. | @@ -85,7 +150,6 @@ var oid = blob.id(); var result = blob.isBinary(); ``` - | Returns | | | --- | --- | | Number | 1 if the content of the blob is detected @@ -97,7 +161,6 @@ var result = blob.isBinary(); var repository = blob.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | Repository that contains this blob. | @@ -108,10 +171,9 @@ var repository = blob.owner(); var buffer = blob.rawcontent(); ``` - | Returns | | | --- | --- | -| Buffer | the pointer | +| Buffer | | ## Blob#rawsize Sync @@ -119,7 +181,6 @@ var buffer = blob.rawcontent(); var result = blob.rawsize(); ``` - | Returns | | | --- | --- | | Number | size on bytes | @@ -127,9 +188,13 @@ var result = blob.rawsize(); ## Blob#toString Sync ```js -blob.toString(); +var string = blob.toString(); ``` Retrieve the Blob's content as String. +| Returns | | +| --- | --- | +| String | Contents as a string. | + diff --git a/api/branch/index.md b/api/branch/index.md index 29f9b6e..94269f6 100644 --- a/api/branch/index.md +++ b/api/branch/index.md @@ -7,9 +7,169 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "create": "#create" + "delete": "#delete" + "isHead": "#isHead" + "iteratorNew": "#iteratorNew" + "lookup": "#lookup" + "move": "#move" + "name": "#name" + "setUpstream": "#setUpstream" + "upstream": "#upstream" "BRANCH": "#BRANCH" --- +## Branch.create Async + +```js +Branch.create(repo, branch_name, target, force, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| branch_name | String | Name for the branch; this name is validated for consistency. It should also not conflict with an already existing branch name. | +| target | [Commit](/api/commit/) | Commit to which this branch should point. This object must belong to the given `repo`. | +| force | Number | Overwrite existing branch. | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog. If NULL, the default is "Branch: created"; if you want something more useful, provide a message. | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | the underlying reference. | + +## Branch.delete Sync + +```js +var result = Branch.delete(branch); +``` + +| Parameters | Type | | +| --- | --- | --- | +| branch | [Reference](/api/reference/) | A valid reference representing a branch | + +| Returns | | +| --- | --- | +| Number | 0 on success, or an error code. | + +## Branch.isHead Sync + +```js +var result = Branch.isHead(branch); +``` + +| Parameters | Type | | +| --- | --- | --- | +| branch | [Reference](/api/reference/) | Current underlying reference of the branch. | + +| Returns | | +| --- | --- | +| Number | 1 if HEAD points at the branch, 0 if it isn't, + error code otherwise. | + +## Branch.iteratorNew Async + +```js +Branch.iteratorNew(repo, list_flags).then(function(branchIterator) { + // Use branchIterator +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to find the branches. | +| list_flags | Number | Filtering flags for the branch listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE or GIT_BRANCH_ALL. | + +| Returns | | +| --- | --- | +| [BranchIterator](/api/branch_iterator/) | the iterator | + +## Branch.lookup Async + +```js +Branch.lookup(repo, branch_name, branch_type).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to look up the branch | +| branch_name | String | Name of the branch to be looked-up; this name is validated for consistency. | +| branch_type | Number | Type of the considered branch. This should be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE. | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Branch.move Async + +```js +Branch.move(branch, new_branch_name, force, signature, log_message).then(function(reference) { + // Use reference +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| branch | [Reference](/api/reference/) | Current underlying reference of the branch. | +| new_branch_name | String | Target name of the branch once the move is performed; this name is validated for consistency. | +| force | Number | Overwrite existing branch. | +| signature | [Signature](/api/signature/) | The identity that will used to populate the reflog entry | +| log_message | String | The one line long message to be appended to the reflog | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Branch.name Async + +```js +Branch.name(ref).then(function(string) { + // Use string +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| ref | [Reference](/api/reference/) | the reference ideally pointing to a branch | + +| Returns | | +| --- | --- | +| String | | + +## Branch.setUpstream Sync + +```js +var result = Branch.setUpstream(branch, upstream_name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| branch | [Reference](/api/reference/) | the branch to configure | +| upstream_name | String | remote-tracking or local branch to set as upstream. Pass NULL to unset. | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Branch.upstream Sync + +```js +var reference = Branch.upstream(branch); +``` + +| Parameters | Type | | +| --- | --- | --- | +| branch | [Reference](/api/reference/) | Current underlying reference of the branch. | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | the retrieved + reference. | + ## Branch.BRANCH ENUM | Flag | Value | diff --git a/api/buf/index.md b/api/buf/index.md index f543090..efa4851 100644 --- a/api/buf/index.md +++ b/api/buf/index.md @@ -20,7 +20,6 @@ sections: var result = buf.containsNul(); ``` - | Returns | | | --- | --- | | Number | 1 if buffer contains a NUL byte | @@ -47,7 +46,6 @@ buf.grow(target_size).then(function(buf) { var result = buf.isBinary(); ``` - | Returns | | | --- | --- | | Number | 1 if buffer looks like non-text data | diff --git a/api/checkout/index.md b/api/checkout/index.md index 92ba1e8..b62bb88 100644 --- a/api/checkout/index.md +++ b/api/checkout/index.md @@ -8,15 +8,18 @@ return_to: "API Documentation Index": /api/ sections: "head": "#head" + "initOptions": "#initOptions" "tree": "#tree" "NOTIFY": "#NOTIFY" "STRATEGY": "#STRATEGY" --- -## Checkout.head Sync +## Checkout.head Async ```js -Checkout.head(, ); +Checkout.head(repo, [options]).then(function() { + // checkout complete +}); ``` Patch head checkout to automatically coerce objects. @@ -24,12 +27,30 @@ Patch head checkout to automatically coerce objects. | Parameters | Type | | | --- | --- | --- | -| | r | | -| | ption | | -## Checkout.tree Sync +| repo | [Repository](/api/repository/) | The repo to checkout head | +| [options] | [CheckoutOptions](/api/checkout_options/) | Options for the checkout | + +## Checkout.initOptions Sync + +```js +var result = Checkout.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [CheckoutOptions](/api/checkout_options/) | the `git_checkout_options` struct to initialize. | +| version | Number | Version of struct; pass `GIT_CHECKOUT_OPTIONS_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + +## Checkout.tree Async ```js -Checkout.tree(, , ); +Checkout.tree(repo, treeish, [options]).then(function() { + // checkout complete +}); ``` Patch tree checkout to automatically coerce objects. @@ -37,9 +58,10 @@ Patch tree checkout to automatically coerce objects. | Parameters | Type | | | --- | --- | --- | -| | ep | | -| | reeis | | -| | ption | | +| repo | [Repository](/api/repository/) | | +| treeish | [Oid](/api/oid/), [Tree](/api/tree/), [Commit](/api/commit/), [Reference](/api/reference/) | | +| [options] | [CheckoutOptions](/api/checkout_options/) | | + ## Checkout.NOTIFY ENUM | Flag | Value | diff --git a/api/cherrypick/index.md b/api/cherrypick/index.md new file mode 100644 index 0000000..d19e678 --- /dev/null +++ b/api/cherrypick/index.md @@ -0,0 +1,65 @@ +--- +layout: default +menu_item: api +title: Cherrypick +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "cherrypick": "#cherrypick" + "commit": "#commit" + "initOptions": "#initOptions" +--- + +## Cherrypick.cherrypick SyncExperimental + +```js +var result = Cherrypick.cherrypick(repo, commit, cherrypick_options); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to cherry-pick | +| commit | [Commit](/api/commit/) | the commit to cherry-pick | +| cherrypick_options | [CherrypickOptions](/api/cherrypick_options/) | the cherry-pick options (or null for defaults) | + +| Returns | | +| --- | --- | +| Number | zero on success, -1 on failure. | + +## Cherrypick.commit AsyncExperimental + +```js +Cherrypick.commit(repo, cherrypick_commit, our_commit, mainline, merge_options).then(function(index) { + // Use index +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository that contains the given commits | +| cherrypick_commit | [Commit](/api/commit/) | the commit to cherry-pick | +| our_commit | [Commit](/api/commit/) | the commit to revert against (eg, HEAD) | +| mainline | Number | the parent of the revert commit, if it is a merge | +| merge_options | [MergeOptions](/api/merge_options/) | the merge options (or null for defaults) | + +| Returns | | +| --- | --- | +| [Index](/api/index/) | | + +## Cherrypick.initOptions SyncExperimental + +```js +var result = Cherrypick.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [CherrypickOptions](/api/cherrypick_options/) | the `git_cherrypick_options` struct to initialize | +| version | Number | Version of struct; pass `GIT_CHERRYPICK_OPTIONS_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + diff --git a/api/clone/index.md b/api/clone/index.md index 9d1e855..ff31307 100644 --- a/api/clone/index.md +++ b/api/clone/index.md @@ -8,13 +8,16 @@ return_to: "API Documentation Index": /api/ sections: "clone": "#clone" + "initOptions": "#initOptions" "LOCAL": "#LOCAL" --- -## Clone.clone Sync +## Clone.clone Async ```js -Clone.clone(, , ); +Clone.clone(url, local_path, [options]).then(function(repository) { + // Use repository +}); ``` Patch repository cloning to automatically coerce objects. @@ -22,9 +25,29 @@ Patch repository cloning to automatically coerce objects. | Parameters | Type | | | --- | --- | --- | -| | r | | -| | ocal_pat | | -| | ption | | +| url | String | url of the repository | +| local_path | String | local path to store repository | +| [options] | [CloneOptions](/api/clone_options/) | | + +| Returns | | +| --- | --- | +| [Repository](/api/repository/) | repo | + +## Clone.initOptions Sync + +```js +var result = Clone.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [CloneOptions](/api/clone_options/) | The `git_clone_options` struct to initialize | +| version | Number | Version of struct; pass `GIT_CLONE_OPTIONS_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + ## Clone.LOCAL ENUM | Flag | Value | diff --git a/api/commit/index.md b/api/commit/index.md index e614ae4..19c0b31 100644 --- a/api/commit/index.md +++ b/api/commit/index.md @@ -7,6 +7,8 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "create": "#create" + "createV": "#createV" "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" "#amend": "#amend" @@ -14,6 +16,7 @@ sections: "#committer": "#committer" "#date": "#date" "#getEntry": "#getEntry" + "#getParents": "#getParents" "#getTree": "#getTree" "#history": "#history" "#id": "#id" @@ -36,10 +39,56 @@ sections: "#treeId": "#treeId" --- -## Commit.lookup Sync +## Commit.create Sync ```js -Commit.lookup(repo, id, callback); +var oid = Commit.create(repo, update_ref, author, committer, message_encoding, message, tree, parent_count, parents); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to store the commit | +| update_ref | String | If not NULL, name of the reference that will be updated to point to this commit. If the reference is not direct, it will be resolved to a direct reference. Use "HEAD" to update the HEAD of the current branch and make it point to this commit. If the reference doesn't exist yet, it will be created. If it does exist, the first parent must be the tip of this branch. | +| author | [Signature](/api/signature/) | Signature with author and author time of commit | +| committer | [Signature](/api/signature/) | Signature with committer and * commit time of commit | +| message_encoding | String | The encoding for the message in the commit, represented with a standard encoding name. E.g. "UTF-8". If NULL, no encoding header is written and UTF-8 is assumed. | +| message | String | Full message for this commit | +| tree | [Tree](/api/tree/) | An instance of a `git_tree` object that will be used as the tree for the commit. This tree object must also be owned by the given `repo`. | +| parent_count | Number | Number of parents for this commit | +| parents | Array | Array of `parent_count` pointers to `git_commit` objects that will be used as the parents for this commit. This array may be NULL if `parent_count` is 0 (root commit). All the given commits must be owned by the `repo`. | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | | + +## Commit.createV Sync + +```js +var result = Commit.createV(id, repo, update_ref, author, committer, message_encoding, message, tree, parent_count); +``` + +| Parameters | Type | | +| --- | --- | --- | +| id | [Oid](/api/oid/) | | +| repo | [Repository](/api/repository/) | | +| update_ref | String | | +| author | [Signature](/api/signature/) | | +| committer | [Signature](/api/signature/) | | +| message_encoding | String | | +| message | String | | +| tree | [Tree](/api/tree/) | | +| parent_count | Number | | + +| Returns | | +| --- | --- | +| Number | | + +## Commit.lookup Async + +```js +Commit.lookup(repo, id).then(function(commit) { + // Use commit +}); ``` Retrieves the commit pointed to by the oid @@ -48,7 +97,11 @@ Retrieves the commit pointed to by the oid | --- | --- | --- | | repo | [Repository](/api/repository/) | The repo that the commit lives in | | id | String, [Oid](/api/oid/), [Commit](/api/commit/) | The commit to lookup | -| callback | Function | | + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | | + ## Commit.lookupPrefix Async ```js @@ -65,7 +118,7 @@ Commit.lookupPrefix(repo, id, len).then(function(commit) { | Returns | | | --- | --- | -| [Commit](/api/commit/) | pointer to the looked up commit | +| [Commit](/api/commit/) | | ## Commit#amend Sync @@ -93,7 +146,6 @@ var result = commit.amend(id, update_ref, author, committer, message_encoding, m var signature = commit.author(); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | the author of a commit | @@ -104,7 +156,6 @@ var signature = commit.author(); var signature = commit.committer(); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | the committer of a commit | @@ -112,15 +163,21 @@ var signature = commit.committer(); ## Commit#date Sync ```js -commit.date(); +var date = commit.date(); ``` Retrieve the commit time as a Date object. -## Commit#getEntry Sync +| Returns | | +| --- | --- | +| Date | | + +## Commit#getEntry Async ```js -commit.getEntry(path, callback); +commit.getEntry(path).then(function(treeEntry) { + // Use treeEntry +}); ``` Retrieve the entry represented by path for this commit. @@ -130,38 +187,89 @@ Path must be relative to repository root. | Parameters | Type | | --- | --- | --- | | path | String | | -| callback | Function | | -## Commit#getTree Sync + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | | + +## Commit#getParents Async ```js -commit.getTree(callback); +commit.getParents(limit, callback).then(function(arrayCommit) { + // Use arrayCommit +}); ``` -Get the tree associated with this commit. +Retrieve the commit's parents as commit objects. | Parameters | Type | | --- | --- | --- | +| limit | number | Optional amount of parents to return. | | callback | Function | | + +| Returns | | +| --- | --- | +| Array<[Commit](/api/commit/)> | array of commits | + +## Commit#getTree Async + +```js +commit.getTree().then(function(tree) { + // Use tree +}); +``` + +Get the tree associated with this commit. + + +| Returns | | +| --- | --- | +| [Tree](/api/tree/) | | + ## Commit#history Sync ```js -commit.history(); +var eventEmitter = commit.history(); + +eventEmitter.on('commit', function(commit) { + // Use commit +}); + +eventEmitter.on('end', function(commits) { + // Use commits +}); + +eventEmitter.on('error', function(error) { + // Use error +}); + +eventEmitter.start() ``` Walk the history from this commit backwards. + An EventEmitter is returned that will emit a "commit" event for each commit in the history, and one "end" event when the walk is completed. -Don"t forget to call `start()` on the returned event. +Don't forget to call `start()` on the returned event. +| Fires | Sends | +| --- | --- | +| commit | [Commit](/api/commit/) | +| end | Array<[Commit](/api/commit/)> | +| error | Error | + +| Returns | | +| --- | --- | +| EventEmitter | | + ## Commit#id Sync ```js var oid = commit.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | object identity for the commit. | @@ -172,7 +280,6 @@ var oid = commit.id(); var string = commit.message(); ``` - | Returns | | | --- | --- | | String | the message of a commit | @@ -183,7 +290,6 @@ var string = commit.message(); var string = commit.messageEncoding(); ``` - | Returns | | | --- | --- | | String | NULL, or the encoding | @@ -194,7 +300,6 @@ var string = commit.messageEncoding(); var string = commit.messageRaw(); ``` - | Returns | | | --- | --- | | String | the raw message of a commit | @@ -221,7 +326,6 @@ commit.nthGenAncestor(n).then(function(commit) { var repository = commit.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | Repository that contains this commit. | @@ -262,7 +366,6 @@ var oid = commit.parentId(n); var result = commit.parentcount(); ``` - | Returns | | | --- | --- | | Number | integer of count of parents | @@ -270,7 +373,7 @@ var result = commit.parentcount(); ## Commit#parents Sync ```js -commit.parents(callback); +var arrayOids = commit.parents(callback); ``` Retrieve the commit"s parent shas. @@ -279,13 +382,17 @@ Retrieve the commit"s parent shas. | Parameters | Type | | --- | --- | --- | | callback | Function | | + +| Returns | | +| --- | --- | +| Array<Oids> | array of oids | + ## Commit#rawHeader Sync ```js var string = commit.rawHeader(); ``` - | Returns | | | --- | --- | | String | the header text of the commit | @@ -293,18 +400,21 @@ var string = commit.rawHeader(); ## Commit#sha Sync ```js -commit.sha(); +var string = commit.sha(); ``` Retrieve the SHA. +| Returns | | +| --- | --- | +| String | | + ## Commit#summary Sync ```js var string = commit.summary(); ``` - | Returns | | | --- | --- | | String | the summary of a commit or NULL on error | @@ -315,7 +425,6 @@ var string = commit.summary(); var result = commit.time(); ``` - | Returns | | | --- | --- | | Number | the time of a commit | @@ -323,18 +432,21 @@ var result = commit.time(); ## Commit#timeMs Sync ```js -commit.timeMs(); +var number = commit.timeMs(); ``` Retrieve the commit time as a unix timestamp. +| Returns | | +| --- | --- | +| Number | | + ## Commit#timeOffset Sync ```js var result = commit.timeOffset(); ``` - | Returns | | | --- | --- | | Number | positive or negative timezone offset, in minutes from UTC | @@ -359,7 +471,6 @@ var result = commit.tree(tree_out); var oid = commit.treeId(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the id of tree pointed to by commit. | diff --git a/api/config/index.md b/api/config/index.md index 7239c5c..f17a11d 100644 --- a/api/config/index.md +++ b/api/config/index.md @@ -68,10 +68,9 @@ config.snapshot().then(function(config) { }); ``` - | Returns | | | --- | --- | -| [Config](/api/config/) | pointer in which to store the snapshot config object | +| [Config](/api/config/) | | ## Config.LEVEL ENUM diff --git a/api/convenient_hunk/index.md b/api/convenient_hunk/index.md index 1b9242a..8bcd239 100644 --- a/api/convenient_hunk/index.md +++ b/api/convenient_hunk/index.md @@ -15,25 +15,37 @@ sections: ## ConvenientHunk#header Sync ```js -convenientHunk.header(); +var string = convenientHunk.header(); ``` Diff header string that represents the context of this hunk of the diff. Something like `@@ -169,14 +167,12 @@ ...` +| Returns | | +| --- | --- | +| String | | + ## ConvenientHunk#lines Sync ```js -convenientHunk.lines(); +var string = convenientHunk.lines(); ``` The lines in this hunk +| Returns | | +| --- | --- | +| String | array of strings | + ## ConvenientHunk#size Sync ```js -convenientHunk.size(); +var number = convenientHunk.size(); ``` Number of lines in this hunk +| Returns | | +| --- | --- | +| Number | | + diff --git a/api/convenient_patch/index.md b/api/convenient_patch/index.md index 02ae80e..49b5ef4 100644 --- a/api/convenient_patch/index.md +++ b/api/convenient_patch/index.md @@ -26,112 +26,168 @@ sections: ## ConvenientPatch#hunks Sync ```js -convenientPatch.hunks(); +var convenientHunk = convenientPatch.hunks(); ``` The hunks in this patch +| Returns | | +| --- | --- | +| [ConvenientHunk](/api/convenient_hunk/) | an array of ConvenientHunks | + ## ConvenientPatch#isAdded Sync ```js -convenientPatch.isAdded(); +var boolean = convenientPatch.isAdded(); ``` Is this an added patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isCopied Sync ```js -convenientPatch.isCopied(); +var boolean = convenientPatch.isCopied(); ``` Is this a copied patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isDeleted Sync ```js -convenientPatch.isDeleted(); +var boolean = convenientPatch.isDeleted(); ``` Is this a deleted patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isIgnored Sync ```js -convenientPatch.isIgnored(); +var boolean = convenientPatch.isIgnored(); ``` Is this an ignored patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isModified Sync ```js -convenientPatch.isModified(); +var boolean = convenientPatch.isModified(); ``` Is this an modified patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isRenamed Sync ```js -convenientPatch.isRenamed(); +var boolean = convenientPatch.isRenamed(); ``` Is this a renamed patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isTypeChange Sync ```js -convenientPatch.isTypeChange(); +var boolean = convenientPatch.isTypeChange(); ``` Is this a type change? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isUnmodified Sync ```js -convenientPatch.isUnmodified(); +var boolean = convenientPatch.isUnmodified(); ``` Is this an unmodified patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#isUntracked Sync ```js -convenientPatch.isUntracked(); +var boolean = convenientPatch.isUntracked(); ``` Is this an untracked patch? +| Returns | | +| --- | --- | +| Boolean | | + ## ConvenientPatch#newFile Sync ```js -convenientPatch.newFile(); +var string = convenientPatch.newFile(); ``` New name of the file +| Returns | | +| --- | --- | +| String | | + ## ConvenientPatch#oldFile Sync ```js -convenientPatch.oldFile(); +var string = convenientPatch.oldFile(); ``` Old name of the file +| Returns | | +| --- | --- | +| String | | + ## ConvenientPatch#size Sync ```js -convenientPatch.size(); +var number = convenientPatch.size(); ``` The number of hunks in this patch +| Returns | | +| --- | --- | +| Number | | + ## ConvenientPatch#status Sync ```js -convenientPatch.status(); +var number = convenientPatch.status(); ``` The status of this patch (unmodified, added, deleted) +| Returns | | +| --- | --- | +| Number | | + diff --git a/api/cred/index.md b/api/cred/index.md index 66b18f8..b6b42b2 100644 --- a/api/cred/index.md +++ b/api/cred/index.md @@ -22,7 +22,6 @@ sections: var cred = Cred.defaultNew(); ``` - | Returns | | | --- | --- | | [Cred](/api/cred/) | | @@ -95,7 +94,6 @@ var cred = Cred.userpassPlaintextNew(username, password); var result = cred.hasUsername(); ``` - | Returns | | | --- | --- | | Number | 1 if the credential object has non-NULL username, 0 otherwise | diff --git a/api/diff/index.md b/api/diff/index.md index 183c4bb..592de49 100644 --- a/api/diff/index.md +++ b/api/diff/index.md @@ -42,7 +42,7 @@ Diff.indexToWorkdir(repo, index, opts).then(function(diff) { | Returns | | | --- | --- | -| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | +| [Diff](/api/diff/) | | ## Diff.treeToIndex Async @@ -61,7 +61,7 @@ Diff.treeToIndex(repo, old_tree, index, opts).then(function(diff) { | Returns | | | --- | --- | -| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | +| [Diff](/api/diff/) | | ## Diff.treeToTree Async @@ -80,7 +80,7 @@ Diff.treeToTree(repo, old_tree, new_tree, opts).then(function(diff) { | Returns | | | --- | --- | -| [Diff](/api/diff/) | Output pointer to a git_diff pointer to be allocated. | +| [Diff](/api/diff/) | | ## Diff.treeToWorkdir Async @@ -98,7 +98,7 @@ Diff.treeToWorkdir(repo, old_tree, opts).then(function(diff) { | Returns | | | --- | --- | -| [Diff](/api/diff/) | a git_diff pointer that will be allocated. | +| [Diff](/api/diff/) | | ## Diff.treeToWorkdirWithIndex Async @@ -116,7 +116,7 @@ Diff.treeToWorkdirWithIndex(repo, old_tree, opts).then(function(diff) { | Returns | | | --- | --- | -| [Diff](/api/diff/) | a git_diff pointer that will be allocated. | +| [Diff](/api/diff/) | | ## Diff#getDelta Sync @@ -130,7 +130,7 @@ var diffDelta = diff.getDelta(idx); | Returns | | | --- | --- | -| [DiffDelta](/api/diff_delta/) | Pointer to git_diff_delta (or NULL if `idx` out of range) | +| [DiffDelta](/api/diff_delta/) | | ## Diff#getPerfdata Async @@ -140,7 +140,6 @@ diff.getPerfdata().then(function(diffPerfdata) { }); ``` - | Returns | | | --- | --- | | [DiffPerfdata](/api/diff_perfdata/) | Structure to be filled with diff performance data | @@ -151,7 +150,6 @@ diff.getPerfdata().then(function(diffPerfdata) { var result = diff.numDeltas(); ``` - | Returns | | | --- | --- | | Number | Count of number of deltas in the list | @@ -159,12 +157,16 @@ var result = diff.numDeltas(); ## Diff#patches Sync ```js -diff.patches(); +var convenientPatch = diff.patches(); ``` Retrieve patches in this difflist +| Returns | | +| --- | --- | +| [ConvenientPatch](/api/convenient_patch/) | an array of ConvenientPatches | + ## Diff.DELTA ENUM | Flag | Value | diff --git a/api/filter/index.md b/api/filter/index.md index b82d573..118ed54 100644 --- a/api/filter/index.md +++ b/api/filter/index.md @@ -7,6 +7,9 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "listLength": "#listLength" + "listNew": "#listNew" + "unregister": "#unregister" "#lookup": "#lookup" "#register": "#register" "MODE": "#MODE" @@ -14,6 +17,54 @@ sections: "Instance Variables": "#ivars" --- +## Filter.listLength SyncExperimental + +```js +var result = Filter.listLength(fl); +``` + +| Parameters | Type | | +| --- | --- | --- | +| fl | [FilterList](/api/filter_list/) | A filter list | + +| Returns | | +| --- | --- | +| Number | The number of filters in the list | + +## Filter.listNew AsyncExperimental + +```js +Filter.listNew(repo, mode, options).then(function(filterList) { + // Use filterList +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| mode | Number | | +| options | Number | | + +| Returns | | +| --- | --- | +| [FilterList](/api/filter_list/) | | + +## Filter.unregister SyncExperimental + +```js +var result = Filter.unregister(name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| name | String | The name under which the filter was registered | + +| Returns | | +| --- | --- | +| Number | 0 on success, error code +< +0 on failure | + ## Filter#lookup SyncExperimental ```js @@ -26,7 +77,7 @@ var filter = filter.lookup(name); | Returns | | | --- | --- | -| [Filter](/api/filter/) | Pointer to the filter object or NULL if not found | +| [Filter](/api/filter/) | | ## Filter#register SyncExperimental diff --git a/api/giterr/index.md b/api/giterr/index.md new file mode 100644 index 0000000..7856373 --- /dev/null +++ b/api/giterr/index.md @@ -0,0 +1,63 @@ +--- +layout: default +menu_item: api +title: Giterr +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "errClear": "#errClear" + "errDetach": "#errDetach" + "errLast": "#errLast" + "errSetOom": "#errSetOom" + "errSetString": "#errSetString" +--- + +## Giterr.errClear SyncExperimental + +```js +Giterr.errClear(); +``` + +## Giterr.errDetach SyncExperimental + +```js +var result = Giterr.errDetach(cpy); +``` + +| Parameters | Type | | +| --- | --- | --- | +| cpy | [Error](/api/error/) | | + +| Returns | | +| --- | --- | +| Number | | + +## Giterr.errLast SyncExperimental + +```js +var error = Giterr.errLast(); +``` + +| Returns | | +| --- | --- | +| [Error](/api/error/) | A git_error object. | + +## Giterr.errSetOom SyncExperimental + +```js +Giterr.errSetOom(); +``` + +## Giterr.errSetString SyncExperimental + +```js +Giterr.errSetString(error_class, string); +``` + +| Parameters | Type | | +| --- | --- | --- | +| error_class | Number | One of the `git_error_t` enum above describing the general subsystem that is responsible for the error. | +| string | String | The formatted error message to keep | + diff --git a/api/graph/index.md b/api/graph/index.md new file mode 100644 index 0000000..8f96dda --- /dev/null +++ b/api/graph/index.md @@ -0,0 +1,29 @@ +--- +layout: default +menu_item: api +title: Graph +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "descendantOf": "#descendantOf" +--- + +## Graph.descendantOf SyncExperimental + +```js +var result = Graph.descendantOf(repo, commit, ancestor); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| commit | [Oid](/api/oid/) | a previously loaded commit. | +| ancestor | [Oid](/api/oid/) | a potential ancestor commit. | + +| Returns | | +| --- | --- | +| Number | 1 if the given commit is a descendant of the potential ancestor, + 0 if not, error code otherwise. | + diff --git a/api/hashsig/index.md b/api/hashsig/index.md index 826ab77..21e0032 100644 --- a/api/hashsig/index.md +++ b/api/hashsig/index.md @@ -54,7 +54,6 @@ Hashsig.createFromFile(path, opts).then(function(hashsig) { var result = hashsig.compare(); ``` - | Returns | | | --- | --- | | Number | diff --git a/api/ignore/index.md b/api/ignore/index.md new file mode 100644 index 0000000..a77e6c4 --- /dev/null +++ b/api/ignore/index.md @@ -0,0 +1,42 @@ +--- +layout: default +menu_item: api +title: Ignore +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "addRule": "#addRule" + "clearInternalRules": "#clearInternalRules" +--- + +## Ignore.addRule SyncExperimental + +```js +var result = Ignore.addRule(repo, rules); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository to add ignore rules to. | +| rules | String | Text of rules, a la the contents of a .gitignore file. It is okay to have multiple rules in the text; if so, each rule should be terminated with a newline. | + +| Returns | | +| --- | --- | +| Number | 0 on success | + +## Ignore.clearInternalRules SyncExperimental + +```js +var result = Ignore.clearInternalRules(repo); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository to remove ignore rules from. | + +| Returns | | +| --- | --- | +| Number | 0 on success | + diff --git a/api/index.md b/api/index.md index 7a211c2..82e5a33 100644 --- a/api/index.md +++ b/api/index.md @@ -5,6 +5,7 @@ title: API Docs description: Version 0.3.0 menu_item: api sections: + "Annotated": "#Annotated" "Attr": "#Attr" "Blame": "#Blame" "BlameHunk": "#BlameHunk" @@ -17,6 +18,7 @@ sections: "CertX509": "#CertX509" "Checkout": "#Checkout" "CheckoutOptions": "#CheckoutOptions" + "Cherrypick": "#Cherrypick" "CherrypickOptions": "#CherrypickOptions" "Clone": "#Clone" "CloneOptions": "#CloneOptions" @@ -41,7 +43,10 @@ sections: "Enums": "#Enums" "Error": "#Error" "Filter": "#Filter" + "Giterr": "#Giterr" + "Graph": "#Graph" "Hashsig": "#Hashsig" + "Ignore": "#Ignore" "Index": "#Index" "IndexEntry": "#IndexEntry" "IndexTime": "#IndexTime" @@ -58,9 +63,11 @@ sections: "OdbObject": "#OdbObject" "Oid": "#Oid" "Oidarray": "#Oidarray" + "Openssl": "#Openssl" "Packbuilder": "#Packbuilder" "Patch": "#Patch" "Pathspec": "#Pathspec" + "Push": "#Push" "PushOptions": "#PushOptions" "Rebase": "#Rebase" "RebaseOperation": "#RebaseOperation" @@ -74,6 +81,7 @@ sections: "Repository": "#Repository" "RepositoryInitOptions": "#RepositoryInitOptions" "Reset": "#Reset" + "Revert": "#Revert" "RevertOptions": "#RevertOptions" "Revparse": "#Revparse" "Revwalk": "#Revwalk" @@ -95,9 +103,27 @@ sections: "Treebuilder": "#Treebuilder" --- +## [Annotated](/api/annotated/) + +| Class Methods | | +| --- | ---: | +| [Annotated.commitFromFetchhead (repo, branch_name, remote_url, id)](/api/annotated/#commitFromFetchhead) | AsyncExperimental | +| [Annotated.commitFromRef (repo, ref)](/api/annotated/#commitFromRef) | AsyncExperimental | +| [Annotated.commitId (commit)](/api/annotated/#commitId) | SyncExperimental | +| [Annotated.commitLookup (repo, id)](/api/annotated/#commitLookup) | AsyncExperimental | + + ## [Attr](/api/attr/) +| Class Methods | | +| --- | ---: | +| [Attr.addMacro (repo, name, values)](/api/attr/#addMacro) | Sync | +| [Attr.cacheFlush (repo)](/api/attr/#cacheFlush) | Sync | +| [Attr.get (repo, flags, path, name)](/api/attr/#get) | Async | +| [Attr.getMany (repo, flags, path, num_attr, names)](/api/attr/#getMany) | Sync | +| [Attr.value (attr)](/api/attr/#value) | Sync | + | ENUMS | | | --- | ---: | | [Attr.STATES](/api/attr/#STATES)| | @@ -108,6 +134,7 @@ sections: | Class Methods | | | --- | ---: | | [Blame.file (repo, path, options)](/api/blame/#file) | AsyncExperimental | +| [Blame.initOptions (opts, version)](/api/blame/#initOptions) | SyncExperimental | | Instance Methods | | | --- | ---: | @@ -152,7 +179,10 @@ sections: | Class Methods | | | --- | ---: | -| [Blob.lookup (repo, id, callback)](/api/blob/#lookup) | Sync | +| [Blob.createFromBuffer (id, repo, buffer, len)](/api/blob/#createFromBuffer) | Sync | +| [Blob.createFromDisk (id, repo, path)](/api/blob/#createFromDisk) | Sync | +| [Blob.createFromWorkdir (id, repo, relative_path)](/api/blob/#createFromWorkdir) | Sync | +| [Blob.lookup (repo, id)](/api/blob/#lookup) | Async | | [Blob.lookupPrefix (repo, id, len)](/api/blob/#lookupPrefix) | Async | | Instance Methods | | @@ -169,6 +199,18 @@ sections: ## [Branch](/api/branch/) +| Class Methods | | +| --- | ---: | +| [Branch.create (repo, branch_name, target, force, signature, log_message)](/api/branch/#create) | Async | +| [Branch.delete (branch)](/api/branch/#delete) | Sync | +| [Branch.isHead (branch)](/api/branch/#isHead) | Sync | +| [Branch.iteratorNew (repo, list_flags)](/api/branch/#iteratorNew) | Async | +| [Branch.lookup (repo, branch_name, branch_type)](/api/branch/#lookup) | Async | +| [Branch.move (branch, new_branch_name, force, signature, log_message)](/api/branch/#move) | Async | +| [Branch.name (ref)](/api/branch/#name) | Async | +| [Branch.setUpstream (branch, upstream_name)](/api/branch/#setUpstream) | Sync | +| [Branch.upstream (branch)](/api/branch/#upstream) | Sync | + | ENUMS | | | --- | ---: | | [Branch.BRANCH](/api/branch/#BRANCH)| | @@ -226,8 +268,9 @@ sections: | Class Methods | | | --- | ---: | -| [Checkout.head (, )](/api/checkout/#head) | Sync | -| [Checkout.tree (, , )](/api/checkout/#tree) | Sync | +| [Checkout.head (repo, [options])](/api/checkout/#head) | Async | +| [Checkout.initOptions (opts, version)](/api/checkout/#initOptions) | Sync | +| [Checkout.tree (repo, treeish, [options])](/api/checkout/#tree) | Async | | ENUMS | | | --- | ---: | @@ -258,6 +301,14 @@ sections: | [CheckoutOptions#version](/api/checkout_options/#version) | | +## [Cherrypick](/api/cherrypick/) + +| Class Methods | | +| --- | ---: | +| [Cherrypick.cherrypick (repo, commit, cherrypick_options)](/api/cherrypick/#cherrypick) | SyncExperimental | +| [Cherrypick.commit (repo, cherrypick_commit, our_commit, mainline, merge_options)](/api/cherrypick/#commit) | AsyncExperimental | +| [Cherrypick.initOptions (opts, version)](/api/cherrypick/#initOptions) | SyncExperimental | + ## [CherrypickOptions](/api/cherrypick_options/) @@ -273,7 +324,8 @@ sections: | Class Methods | | | --- | ---: | -| [Clone.clone (, , )](/api/clone/#clone) | Sync | +| [Clone.clone (url, local_path, [options])](/api/clone/#clone) | Async | +| [Clone.initOptions (opts, version)](/api/clone/#initOptions) | Sync | | ENUMS | | | --- | ---: | @@ -299,7 +351,9 @@ sections: | Class Methods | | | --- | ---: | -| [Commit.lookup (repo, id, callback)](/api/commit/#lookup) | Sync | +| [Commit.create (repo, update_ref, author, committer, message_encoding, message, tree, parent_count, parents)](/api/commit/#create) | Sync | +| [Commit.createV (id, repo, update_ref, author, committer, message_encoding, message, tree, parent_count)](/api/commit/#createV) | Sync | +| [Commit.lookup (repo, id)](/api/commit/#lookup) | Async | | [Commit.lookupPrefix (repo, id, len)](/api/commit/#lookupPrefix) | Async | | Instance Methods | | @@ -308,8 +362,9 @@ sections: | [Commit#author ()](/api/commit/#author) | Sync | | [Commit#committer ()](/api/commit/#committer) | Sync | | [Commit#date ()](/api/commit/#date) | Sync | -| [Commit#getEntry (path, callback)](/api/commit/#getEntry) | Sync | -| [Commit#getTree (callback)](/api/commit/#getTree) | Sync | +| [Commit#getEntry (path)](/api/commit/#getEntry) | Async | +| [Commit#getParents (limit, callback)](/api/commit/#getParents) | Async | +| [Commit#getTree ()](/api/commit/#getTree) | Async | | [Commit#history ()](/api/commit/#history) | Sync | | [Commit#id ()](/api/commit/#id) | Sync | | [Commit#message ()](/api/commit/#message) | Sync | @@ -581,6 +636,12 @@ sections: ## [Filter](/api/filter/) +| Class Methods | | +| --- | ---: | +| [Filter.listLength (fl)](/api/filter/#listLength) | SyncExperimental | +| [Filter.listNew (repo, mode, options)](/api/filter/#listNew) | AsyncExperimental | +| [Filter.unregister (name)](/api/filter/#unregister) | SyncExperimental | + | Instance Methods | | | --- | ---: | | [Filter#lookup (name)](/api/filter/#lookup) | SyncExperimental | @@ -598,6 +659,22 @@ sections: +## [Giterr](/api/giterr/) + +| Class Methods | | +| --- | ---: | +| [Giterr.errClear ()](/api/giterr/#errClear) | SyncExperimental | +| [Giterr.errDetach (cpy)](/api/giterr/#errDetach) | SyncExperimental | +| [Giterr.errLast ()](/api/giterr/#errLast) | SyncExperimental | +| [Giterr.errSetOom ()](/api/giterr/#errSetOom) | SyncExperimental | +| [Giterr.errSetString (error_class, string)](/api/giterr/#errSetString) | SyncExperimental | + + +## [Graph](/api/graph/) + +| Class Methods | | +| --- | ---: | +| [Graph.descendantOf (repo, commit, ancestor)](/api/graph/#descendantOf) | SyncExperimental | ## [Hashsig](/api/hashsig/) @@ -616,11 +693,19 @@ sections: | [Hashsig.OPTION](/api/hashsig/#OPTION)| | +## [Ignore](/api/ignore/) + +| Class Methods | | +| --- | ---: | +| [Ignore.addRule (repo, rules)](/api/ignore/#addRule) | SyncExperimental | +| [Ignore.clearInternalRules (repo)](/api/ignore/#clearInternalRules) | SyncExperimental | + ## [Index](/api/index/) | Class Methods | | | --- | ---: | +| [Index.entryStage (entry)](/api/index/#entryStage) | Sync | | [Index.open (index_path)](/api/index/#open) | Async | | Instance Methods | | @@ -692,6 +777,14 @@ sections: ## [Libgit2](/api/libgit_2/) +| Class Methods | | +| --- | ---: | +| [Libgit2.features ()](/api/libgit_2/#features) | SyncExperimental | +| [Libgit2.init ()](/api/libgit_2/#init) | SyncExperimental | +| [Libgit2.opts (option)](/api/libgit_2/#opts) | SyncExperimental | +| [Libgit2.shutdown ()](/api/libgit_2/#shutdown) | SyncExperimental | +| [Libgit2.version (major, minor, rev)](/api/libgit_2/#version) | SyncExperimental | + | ENUMS | | | --- | ---: | | [Libgit2.OPT](/api/libgit_2/#OPT)| | @@ -702,7 +795,12 @@ sections: | Class Methods | | | --- | ---: | -| [Merge.commits (Repository, The, The)](/api/merge/#commits) | Sync | +| [Merge.base (repo, one, two)](/api/merge/#base) | Async | +| [Merge.bases (repo, one, two)](/api/merge/#bases) | Async | +| [Merge.commits (repo, ourCommit, theirCommit, [options])](/api/merge/#commits) | Sync | +| [Merge.fileInitInput (opts, version)](/api/merge/#fileInitInput) | Sync | +| [Merge.initOptions (opts, version)](/api/merge/#initOptions) | Sync | +| [Merge.trees (repo, ancestor_tree, our_tree, their_tree, opts)](/api/merge/#trees) | Async | | ENUMS | | | --- | ---: | @@ -764,7 +862,12 @@ sections: | Class Methods | | | --- | ---: | +| [Note.create (repo, notes_ref, author, committer, oid, note, force)](/api/note/#create) | AsyncExperimental | +| [Note.defaultRef (repo)](/api/note/#defaultRef) | AsyncExperimental | +| [Note.iteratorNew (repo, notes_ref)](/api/note/#iteratorNew) | AsyncExperimental | +| [Note.next (note_id, annotated_id, it)](/api/note/#next) | SyncExperimental | | [Note.read (repo, notes_ref, oid)](/api/note/#read) | AsyncExperimental | +| [Note.remove (repo, notes_ref, author, committer, oid)](/api/note/#remove) | SyncExperimental | | Instance Methods | | | --- | ---: | @@ -781,6 +884,10 @@ sections: | --- | ---: | | [Object.lookup (repo, id, type)](/api/object/#lookup) | AsyncExperimental | | [Object.lookupPrefix (repo, id, len, type)](/api/object/#lookupPrefix) | AsyncExperimental | +| [Object.size (type)](/api/object/#size) | SyncExperimental | +| [Object.string2type (str)](/api/object/#string2type) | SyncExperimental | +| [Object.type2string (type)](/api/object/#type2string) | SyncExperimental | +| [Object.typeisloose (type)](/api/object/#typeisloose) | SyncExperimental | | Instance Methods | | | --- | ---: | @@ -851,6 +958,12 @@ sections: | [Oidarray#ids](/api/oidarray/#ids) | | +## [Openssl](/api/openssl/) + +| Class Methods | | +| --- | ---: | +| [Openssl.setLocking ()](/api/openssl/#setLocking) | SyncExperimental | + ## [Packbuilder](/api/packbuilder/) @@ -889,6 +1002,14 @@ sections: ## [Pathspec](/api/pathspec/) +| Class Methods | | +| --- | ---: | +| [Pathspec.matchListDiffEntry (m, pos)](/api/pathspec/#matchListDiffEntry) | SyncExperimental | +| [Pathspec.matchListEntry (m, pos)](/api/pathspec/#matchListEntry) | SyncExperimental | +| [Pathspec.matchListEntrycount (m)](/api/pathspec/#matchListEntrycount) | SyncExperimental | +| [Pathspec.matchListFailedEntry (m, pos)](/api/pathspec/#matchListFailedEntry) | SyncExperimental | +| [Pathspec.matchListFailedEntrycount (m)](/api/pathspec/#matchListFailedEntrycount) | SyncExperimental | + | Instance Methods | | | --- | ---: | | [Pathspec#matchDiff (diff, flags)](/api/pathspec/#matchDiff) | AsyncExperimental | @@ -903,6 +1024,12 @@ sections: +## [Push](/api/push/) + +| Class Methods | | +| --- | ---: | +| [Push.initOptions (opts, version)](/api/push/#initOptions) | SyncExperimental | + ## [PushOptions](/api/push_options/) @@ -917,6 +1044,7 @@ sections: | Class Methods | | | --- | ---: | | [Rebase.init (repo, branch, upstream, onto, signature, opts)](/api/rebase/#init) | AsyncExperimental | +| [Rebase.initOptions (opts, version)](/api/rebase/#initOptions) | SyncExperimental | | [Rebase.open (repo)](/api/rebase/#open) | AsyncExperimental | | Instance Methods | | @@ -968,8 +1096,15 @@ sections: | --- | ---: | | [Reference.create (repo, name, id, force, signature, log_message)](/api/reference/#create) | AsyncExperimental | | [Reference.createMatching (repo, name, id, force, current_id, signature, log_message)](/api/reference/#createMatching) | AsyncExperimental | -| [Reference.dwim (repo, id, callback)](/api/reference/#dwim) | Sync | -| [Reference.lookup (repo, id, callback)](/api/reference/#lookup) | Sync | +| [Reference.dwim (repo, id, callback)](/api/reference/#dwim) | Async | +| [Reference.ensureLog (repo, refname)](/api/reference/#ensureLog) | SyncExperimental | +| [Reference.hasLog (repo, refname)](/api/reference/#hasLog) | SyncExperimental | +| [Reference.isValidName (refname)](/api/reference/#isValidName) | SyncExperimental | +| [Reference.list (repo)](/api/reference/#list) | AsyncExperimental | +| [Reference.lookup (repo, id, callback)](/api/reference/#lookup) | Async | +| [Reference.nameToId (repo, name)](/api/reference/#nameToId) | AsyncExperimental | +| [Reference.normalizeName (buffer_out, buffer_size, name, flags)](/api/reference/#normalizeName) | SyncExperimental | +| [Reference.remove (repo, name)](/api/reference/#remove) | SyncExperimental | | [Reference.symbolicCreate (repo, name, target, force, signature, log_message)](/api/reference/#symbolicCreate) | AsyncExperimental | | [Reference.symbolicCreateMatching (repo, name, target, force, current_value, signature, log_message)](/api/reference/#symbolicCreateMatching) | AsyncExperimental | @@ -1009,7 +1144,13 @@ sections: | Class Methods | | | --- | ---: | +| [Reflog.delete (repo, name)](/api/reflog/#delete) | SyncExperimental | +| [Reflog.entryCommitter (entry)](/api/reflog/#entryCommitter) | SyncExperimental | +| [Reflog.entryIdNew (entry)](/api/reflog/#entryIdNew) | SyncExperimental | +| [Reflog.entryIdOld (entry)](/api/reflog/#entryIdOld) | SyncExperimental | +| [Reflog.entryMessage (entry)](/api/reflog/#entryMessage) | SyncExperimental | | [Reflog.read (repo, name)](/api/reflog/#read) | AsyncExperimental | +| [Reflog.rename (repo, old_name, name)](/api/reflog/#rename) | SyncExperimental | | Instance Methods | | | --- | ---: | @@ -1040,7 +1181,11 @@ sections: | [Remote.create (repo, name, url)](/api/remote/#create) | Async | | [Remote.createAnonymous (repo, url, fetch)](/api/remote/#createAnonymous) | Async | | [Remote.createWithFetchspec (repo, name, url, fetch)](/api/remote/#createWithFetchspec) | Async | -| [Remote.lookup (repo, name, callback)](/api/remote/#lookup) | Sync | +| [Remote.delete (repo, name)](/api/remote/#delete) | Sync | +| [Remote.initCallbacks (opts, version)](/api/remote/#initCallbacks) | Sync | +| [Remote.isValidName (remote_name)](/api/remote/#isValidName) | Sync | +| [Remote.list (repo)](/api/remote/#list) | Async | +| [Remote.lookup (repo, name, callback)](/api/remote/#lookup) | Async | | Instance Methods | | | --- | ---: | @@ -1109,19 +1254,21 @@ sections: | --- | ---: | | [Repository#config ()](/api/repository/#config) | Async | | [Repository#configSnapshot ()](/api/repository/#configSnapshot) | Async | -| [Repository#createRevWalk (String, callback)](/api/repository/#createRevWalk) | Sync | +| [Repository#createRevWalk (String)](/api/repository/#createRevWalk) | Sync | | [Repository#detachHead (signature, reflog_message)](/api/repository/#detachHead) | Sync | -| [Repository#getBlob (String, callback)](/api/repository/#getBlob) | Sync | -| [Repository#getBranch (name, callback)](/api/repository/#getBranch) | Sync | -| [Repository#getBranchCommit (name, callback)](/api/repository/#getBranchCommit) | Sync | -| [Repository#getCommit (String, callback)](/api/repository/#getCommit) | Sync | -| [Repository#getCurrentBranch ()](/api/repository/#getCurrentBranch) | Sync | +| [Repository#getBlob (String)](/api/repository/#getBlob) | Async | +| [Repository#getBranch (name)](/api/repository/#getBranch) | Async | +| [Repository#getBranchCommit (name)](/api/repository/#getBranchCommit) | Async | +| [Repository#getCommit (String)](/api/repository/#getCommit) | Async | +| [Repository#getCurrentBranch ()](/api/repository/#getCurrentBranch) | Async | | [Repository#getNamespace ()](/api/repository/#getNamespace) | Sync | -| [Repository#getReference (name, callback)](/api/repository/#getReference) | Sync | -| [Repository#getReferenceCommit (name, callback)](/api/repository/#getReferenceCommit) | Sync | -| [Repository#getTag (String, callback)](/api/repository/#getTag) | Sync | -| [Repository#getTagByName (Short, callback)](/api/repository/#getTagByName) | Sync | -| [Repository#getTree (String, callback)](/api/repository/#getTree) | Sync | +| [Repository#getReference (name)](/api/repository/#getReference) | Async | +| [Repository#getReferenceCommit (name)](/api/repository/#getReferenceCommit) | Async | +| [Repository#getReferenceNames (type)](/api/repository/#getReferenceNames) | Async | +| [Repository#getReferences (type)](/api/repository/#getReferences) | Async | +| [Repository#getTag (String)](/api/repository/#getTag) | Async | +| [Repository#getTagByName (Short)](/api/repository/#getTagByName) | Async | +| [Repository#getTree (String)](/api/repository/#getTree) | Async | | [Repository#head ()](/api/repository/#head) | Async | | [Repository#headDetached ()](/api/repository/#headDetached) | Sync | | [Repository#headUnborn ()](/api/repository/#headUnborn) | Sync | @@ -1165,11 +1312,22 @@ sections: ## [Reset](/api/reset/) +| Class Methods | | +| --- | ---: | +| [Reset.default (repo, target, pathspecs)](/api/reset/#default) | SyncExperimental | + | ENUMS | | | --- | ---: | | [Reset.TYPE](/api/reset/#TYPE)| | +## [Revert](/api/revert/) + +| Class Methods | | +| --- | ---: | +| [Revert.commit (repo, revert_commit, our_commit, mainline, merge_options)](/api/revert/#commit) | AsyncExperimental | +| [Revert.revert (repo, commit, given_opts)](/api/revert/#revert) | SyncExperimental | + ## [RevertOptions](/api/revert_options/) @@ -1183,6 +1341,11 @@ sections: ## [Revparse](/api/revparse/) +| Class Methods | | +| --- | ---: | +| [Revparse.ext (object_out, reference_out, repo, spec)](/api/revparse/#ext) | SyncExperimental | +| [Revparse.single (repo, spec)](/api/revparse/#single) | AsyncExperimental | + | ENUMS | | | --- | ---: | | [Revparse.MODE](/api/revparse/#MODE)| | @@ -1242,6 +1405,10 @@ sections: ## [Stash](/api/stash/) +| Class Methods | | +| --- | ---: | +| [Stash.drop (repo, index)](/api/stash/#drop) | SyncExperimental | + | ENUMS | | | --- | ---: | | [Stash.FLAGS](/api/stash/#FLAGS)| | @@ -1249,6 +1416,13 @@ sections: ## [Status](/api/status/) +| Class Methods | | +| --- | ---: | +| [Status.file (status_flags, repo, path)](/api/status/#file) | Sync | +| [Status.foreach (repo, callback, payload)](/api/status/#foreach) | Async | +| [Status.foreachExt (repo, opts, callback, payload)](/api/status/#foreachExt) | Async | +| [Status.shouldIgnore (ignored, repo, path)](/api/status/#shouldIgnore) | Sync | + | ENUMS | | | --- | ---: | | [Status.OPT](/api/status/#OPT)| | @@ -1296,6 +1470,8 @@ sections: | --- | ---: | | [Submodule.addSetup (repo, url, path, use_gitlink)](/api/submodule/#addSetup) | AsyncExperimental | | [Submodule.lookup (repo, name)](/api/submodule/#lookup) | AsyncExperimental | +| [Submodule.reloadAll (repo, force)](/api/submodule/#reloadAll) | SyncExperimental | +| [Submodule.resolveUrl (repo, url)](/api/submodule/#resolveUrl) | AsyncExperimental | | Instance Methods | | | --- | ---: | @@ -1347,7 +1523,14 @@ sections: | Class Methods | | | --- | ---: | -| [Tag.lookup (repo, id, callback)](/api/tag/#lookup) | Sync | +| [Tag.annotationCreate (oid, repo, tag_name, target, tagger, message)](/api/tag/#annotationCreate) | Sync | +| [Tag.create (oid, repo, tag_name, target, tagger, message, force)](/api/tag/#create) | Sync | +| [Tag.createFromBuffer (oid, repo, buffer, force)](/api/tag/#createFromBuffer) | Sync | +| [Tag.createLightweight (oid, repo, tag_name, target, force)](/api/tag/#createLightweight) | Sync | +| [Tag.delete (repo, tag_name)](/api/tag/#delete) | Sync | +| [Tag.list (repo)](/api/tag/#list) | Async | +| [Tag.listMatch (tag_names, pattern, repo)](/api/tag/#listMatch) | Sync | +| [Tag.lookup (repo, id)](/api/tag/#lookup) | Async | | [Tag.lookupPrefix (repo, id, len)](/api/tag/#lookupPrefix) | Async | | Instance Methods | | @@ -1397,6 +1580,7 @@ sections: | Class Methods | | | --- | ---: | | [Transport.sshWithPaths (owner, payload)](/api/transport/#sshWithPaths) | AsyncExperimental | +| [Transport.unregister (prefix)](/api/transport/#unregister) | SyncExperimental | | Instance Methods | | | --- | ---: | @@ -1411,14 +1595,22 @@ sections: | Class Methods | | | --- | ---: | -| [Tree.lookup (repo, id, callback)](/api/tree/#lookup) | Sync | +| [Tree.entryCmp (e1, e2)](/api/tree/#entryCmp) | SyncExperimental | +| [Tree.entryDup (dest, source)](/api/tree/#entryDup) | SyncExperimental | +| [Tree.entryFilemode (entry)](/api/tree/#entryFilemode) | SyncExperimental | +| [Tree.entryFilemodeRaw (entry)](/api/tree/#entryFilemodeRaw) | SyncExperimental | +| [Tree.entryId (entry)](/api/tree/#entryId) | SyncExperimental | +| [Tree.entryName (entry)](/api/tree/#entryName) | SyncExperimental | +| [Tree.entryToObject (object_out, repo, entry)](/api/tree/#entryToObject) | SyncExperimental | +| [Tree.entryType (entry)](/api/tree/#entryType) | SyncExperimental | +| [Tree.lookup (repo, id, callback)](/api/tree/#lookup) | Async | | [Tree.lookupPrefix (repo, id, len)](/api/tree/#lookupPrefix) | AsyncExperimental | | Instance Methods | | | --- | ---: | | [Tree#_entryByIndex (idx)](/api/tree/#_entryByIndex) | SyncExperimental | | [Tree#builder ()](/api/tree/#builder) | Sync | -| [Tree#diff (tree, callback)](/api/tree/#diff) | Sync | +| [Tree#diff (tree, callback)](/api/tree/#diff) | Async | | [Tree#entries ()](/api/tree/#entries) | Sync | | [Tree#entryById (id)](/api/tree/#entryById) | SyncExperimental | | [Tree#entryByIndex (i)](/api/tree/#entryByIndex) | Sync | @@ -1440,8 +1632,8 @@ sections: | Instance Methods | | | --- | ---: | -| [TreeEntry#getBlob ()](/api/tree_entry/#getBlob) | Sync | -| [TreeEntry#getTree ()](/api/tree_entry/#getTree) | Sync | +| [TreeEntry#getBlob ()](/api/tree_entry/#getBlob) | Async | +| [TreeEntry#getTree ()](/api/tree_entry/#getTree) | Async | | [TreeEntry#isBlob ()](/api/tree_entry/#isBlob) | Sync | | [TreeEntry#isDirectory ()](/api/tree_entry/#isDirectory) | Sync | | [TreeEntry#isFile ()](/api/tree_entry/#isFile) | Sync | diff --git a/api/index/index.md b/api/index/index.md index 1bc7955..fb6435a 100644 --- a/api/index/index.md +++ b/api/index/index.md @@ -7,6 +7,7 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "entryStage": "#entryStage" "open": "#open" "#add": "#add" "#addByPath": "#addByPath" @@ -35,6 +36,20 @@ sections: "CAP": "#CAP" --- +## Index.entryStage Sync + +```js +var result = Index.entryStage(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [IndexEntry](/api/index_entry/) | The entry | + +| Returns | | +| --- | --- | +| Number | the stage number | + ## Index.open Async ```js @@ -49,7 +64,7 @@ Index.open(index_path).then(function(index) { | Returns | | | --- | --- | -| [Index](/api/index/) | the pointer for the new index | +| [Index](/api/index/) | | ## Index#add Sync @@ -85,7 +100,6 @@ var result = index.addByPath(path); var result = index.caps(); ``` - | Returns | | | --- | --- | | Number | A combination of GIT_INDEXCAP values | @@ -96,7 +110,6 @@ var result = index.caps(); var result = index.clear(); ``` - | Returns | | | --- | --- | | Number | 0 on success, error code @@ -125,7 +138,6 @@ var result = index.conflictAdd(ancestor_entry, our_entry, their_entry); var result = index.conflictCleanup(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | @@ -147,18 +159,21 @@ var result = index.conflictRemove(path); ## Index#entries Sync ```js -index.entries(); +var arrayIndexEntry = index.entries(); ``` Return an array of the entries in this index. +| Returns | | +| --- | --- | +| Array<[IndexEntry](/api/index_entry/)> | an array of IndexEntrys | + ## Index#entryCount Sync ```js var result = index.entryCount(); ``` - | Returns | | | --- | --- | | Number | integer of count of current entries | @@ -198,7 +213,6 @@ var indexEntry = index.getByPath(path, stage); var result = index.hasConflicts(); ``` - | Returns | | | --- | --- | | Number | 1 if at least one conflict is found, 0 otherwise. | @@ -209,7 +223,6 @@ var result = index.hasConflicts(); var repository = index.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | the repository | @@ -220,7 +233,6 @@ var repository = index.owner(); var string = index.path(); ``` - | Returns | | | --- | --- | | String | path to index file or NULL for in-memory index | @@ -317,7 +329,6 @@ var result = index.setCaps(caps); var result = index.write(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | @@ -330,7 +341,6 @@ index.writeTree().then(function(oid) { }); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the OID of the written tree | diff --git a/api/indexer/index.md b/api/indexer/index.md index b0e1863..1733be6 100644 --- a/api/indexer/index.md +++ b/api/indexer/index.md @@ -31,7 +31,6 @@ var result = indexer.commit(stats); var oid = indexer.hash(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | | diff --git a/api/libgit_2/index.md b/api/libgit_2/index.md index 3374b9c..139aaf3 100644 --- a/api/libgit_2/index.md +++ b/api/libgit_2/index.md @@ -7,9 +7,73 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "features": "#features" + "init": "#init" + "opts": "#opts" + "shutdown": "#shutdown" + "version": "#version" "OPT": "#OPT" --- +## Libgit2.features SyncExperimental + +```js +var result = Libgit2.features(); +``` + +| Returns | | +| --- | --- | +| Number | A combination of GIT_FEATURE_* values. | + +## Libgit2.init SyncExperimental + +```js +var result = Libgit2.init(); +``` + +| Returns | | +| --- | --- | +| Number | the number of initializations of the library, or an error code. | + +## Libgit2.opts SyncExperimental + +```js +var result = Libgit2.opts(option); +``` + +| Parameters | Type | | +| --- | --- | --- | +| option | Number | Option key | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on failure | + +## Libgit2.shutdown SyncExperimental + +```js +var result = Libgit2.shutdown(); +``` + +| Returns | | +| --- | --- | +| Number | the number of remaining initializations of the library, or an + error code. | + +## Libgit2.version SyncExperimental + +```js +Libgit2.version(major, minor, rev); +``` + +| Parameters | Type | | +| --- | --- | --- | +| major | Number | Store the major version number | +| minor | Number | Store the minor version number | +| rev | Number | Store the revision (patch) number | + ## Libgit2.OPT ENUM | Flag | Value | diff --git a/api/merge/index.md b/api/merge/index.md index dd8ec01..fe57bcd 100644 --- a/api/merge/index.md +++ b/api/merge/index.md @@ -7,7 +7,12 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "base": "#base" + "bases": "#bases" "commits": "#commits" + "fileInitInput": "#fileInitInput" + "initOptions": "#initOptions" + "trees": "#trees" "ANALYSIS": "#ANALYSIS" "FILE_FAVOR": "#FILE_FAVOR" "FILE_FLAGS": "#FILE_FLAGS" @@ -15,10 +20,46 @@ sections: "TREE_FLAG": "#TREE_FLAG" --- +## Merge.base Async + +```js +Merge.base(repo, one, two).then(function(oid) { + // Use oid +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository where the commits exist | +| one | [Oid](/api/oid/) | one of the commits | +| two | [Oid](/api/oid/) | the other commit | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the OID of a merge base between 'one' and 'two' | + +## Merge.bases Async + +```js +Merge.bases(repo, one, two).then(function(oidarray) { + // Use oidarray +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository where the commits exist | +| one | [Oid](/api/oid/) | one of the commits | +| two | [Oid](/api/oid/) | the other commit | + +| Returns | | +| --- | --- | +| [Oidarray](/api/oidarray/) | array in which to store the resulting ids | + ## Merge.commits Sync ```js -Merge.commits(Repository, The, The); +Merge.commits(repo, ourCommit, theirCommit, [options]); ``` Merge 2 commits together and create an new index that can @@ -27,9 +68,61 @@ be used to create a merge commit. | Parameters | Type | | | --- | --- | --- | -| Repository | ep | that contains the given commits | -| The | urCommi | commit that reflects the destination tree | -| The | ption | merge tree options (null for default) | +| repo | [Repository](/api/repository/) | Repository that contains the given commits | +| ourCommit | [Commit](/api/commit/) | The commit that reflects the destination tree | +| theirCommit | [Commit](/api/commit/) | The commit to merge into ourCommit | +| [options] | [MergeOptions](/api/merge_options/) | The merge tree options (null for default) | + +## Merge.fileInitInput Sync + +```js +var result = Merge.fileInitInput(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [MergeFileInput](/api/merge_file_input/) | the `git_merge_file_input` instance to initialize. | +| version | Number | the version of the struct; you should pass `GIT_MERGE_FILE_INPUT_VERSION` here. | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + +## Merge.initOptions Sync + +```js +var result = Merge.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [MergeOptions](/api/merge_options/) | the `git_merge_options` instance to initialize. | +| version | Number | the version of the struct; you should pass `GIT_MERGE_OPTIONS_VERSION` here. | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + +## Merge.trees Async + +```js +Merge.trees(repo, ancestor_tree, our_tree, their_tree, opts).then(function(index) { + // Use index +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository that contains the given trees | +| ancestor_tree | [Tree](/api/tree/) | the common ancestor between the trees (or null if none) | +| our_tree | [Tree](/api/tree/) | the tree that reflects the destination tree | +| their_tree | [Tree](/api/tree/) | the tree to merge in to `our_tree` | +| opts | [MergeOptions](/api/merge_options/) | the merge tree options (or null for defaults) | + +| Returns | | +| --- | --- | +| [Index](/api/index/) | | + ## Merge.ANALYSIS ENUM | Flag | Value | diff --git a/api/note/index.md b/api/note/index.md index 38d2cb8..2589448 100644 --- a/api/note/index.md +++ b/api/note/index.md @@ -7,13 +7,90 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "create": "#create" + "defaultRef": "#defaultRef" + "iteratorNew": "#iteratorNew" + "next": "#next" "read": "#read" + "remove": "#remove" "#author": "#author" "#committer": "#committer" "#id": "#id" "#message": "#message" --- +## Note.create AsyncExperimental + +```js +Note.create(repo, notes_ref, author, committer, oid, note, force).then(function(oid) { + // Use oid +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository where to store the note | +| notes_ref | String | canonical name of the reference to use (optional); defaults to "refs/notes/commits" | +| author | [Signature](/api/signature/) | signature of the notes commit author | +| committer | [Signature](/api/signature/) | signature of the notes commit committer | +| oid | [Oid](/api/oid/) | OID of the git object to decorate | +| note | String | Content of the note to add for object oid | +| force | Number | Overwrite existing note | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | | + +## Note.defaultRef AsyncExperimental + +```js +Note.defaultRef(repo).then(function(string) { + // Use string +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The Git repository | + +| Returns | | +| --- | --- | +| String | | + +## Note.iteratorNew AsyncExperimental + +```js +Note.iteratorNew(repo, notes_ref).then(function(noteIterator) { + // Use noteIterator +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository where to look up the note | +| notes_ref | String | canonical name of the reference to use (optional); defaults to "refs/notes/commits" | + +| Returns | | +| --- | --- | +| [NoteIterator](/api/note_iterator/) | | + +## Note.next SyncExperimental + +```js +var result = Note.next(note_id, annotated_id, it); +``` + +| Parameters | Type | | +| --- | --- | --- | +| note_id | [Oid](/api/oid/) | id of blob containing the message | +| annotated_id | [Oid](/api/oid/) | id of the git object being annotated | +| it | [NoteIterator](/api/note_iterator/) | pointer to the iterator | + +| Returns | | +| --- | --- | +| Number | 0 (no error), GIT_ITEROVER (iteration is done) or an error code + (negative value) | + ## Note.read AsyncExperimental ```js @@ -30,7 +107,25 @@ Note.read(repo, notes_ref, oid).then(function(note) { | Returns | | | --- | --- | -| [Note](/api/note/) | pointer to the read note; NULL in case of error | +| [Note](/api/note/) | | + +## Note.remove SyncExperimental + +```js +var result = Note.remove(repo, notes_ref, author, committer, oid); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | repository where the note lives | +| notes_ref | String | canonical name of the reference to use (optional); defaults to "refs/notes/commits" | +| author | [Signature](/api/signature/) | signature of the notes commit author | +| committer | [Signature](/api/signature/) | signature of the notes commit committer | +| oid | [Oid](/api/oid/) | OID of the git object to remove the note from | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | ## Note#author SyncExperimental @@ -38,7 +133,6 @@ Note.read(repo, notes_ref, oid).then(function(note) { var signature = note.author(); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | the author | @@ -49,7 +143,6 @@ var signature = note.author(); var signature = note.committer(); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | the committer | @@ -60,7 +153,6 @@ var signature = note.committer(); var oid = note.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the note object's id | @@ -71,7 +163,6 @@ var oid = note.id(); var string = note.message(); ``` - | Returns | | | --- | --- | | String | the note message | diff --git a/api/object/index.md b/api/object/index.md index a5bd0e4..8892514 100644 --- a/api/object/index.md +++ b/api/object/index.md @@ -9,6 +9,10 @@ return_to: sections: "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" + "size": "#size" + "string2type": "#string2type" + "type2string": "#type2string" + "typeisloose": "#typeisloose" "#dup": "#dup" "#id": "#id" "#lookupByPath": "#lookupByPath" @@ -35,7 +39,7 @@ Object.lookup(repo, id, type).then(function(object) { | Returns | | | --- | --- | -| [Object](/api/object/) | pointer to the looked-up object | +| [Object](/api/object/) | | ## Object.lookupPrefix AsyncExperimental @@ -56,6 +60,63 @@ Object.lookupPrefix(repo, id, len, type).then(function(object) { | --- | --- | | [Object](/api/object/) | the looked-up object | +## Object.size SyncExperimental + +```js +var result = Object.size(type); +``` + +| Parameters | Type | | +| --- | --- | --- | +| type | Number | object type to get its size | + +| Returns | | +| --- | --- | +| Number | size in bytes of the object | + +## Object.string2type SyncExperimental + +```js +var result = Object.string2type(str); +``` + +| Parameters | Type | | +| --- | --- | --- | +| str | String | the string to convert. | + +| Returns | | +| --- | --- | +| Number | the corresponding git_otype. | + +## Object.type2string SyncExperimental + +```js +var string = Object.type2string(type); +``` + +| Parameters | Type | | +| --- | --- | --- | +| type | Number | object type to convert. | + +| Returns | | +| --- | --- | +| String | the corresponding string representation. | + +## Object.typeisloose SyncExperimental + +```js +var result = Object.typeisloose(type); +``` + +| Parameters | Type | | +| --- | --- | --- | +| type | Number | object type to test. | + +| Returns | | +| --- | --- | +| Number | true if the type represents a valid loose object type, + false otherwise. | + ## Object#dup AsyncExperimental ```js @@ -64,10 +125,9 @@ object.dup().then(function(object) { }); ``` - | Returns | | | --- | --- | -| [Object](/api/object/) | Pointer to store the copy of the object | +| [Object](/api/object/) | | ## Object#id SyncExperimental @@ -75,7 +135,6 @@ object.dup().then(function(object) { var oid = object.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the SHA1 id | @@ -104,7 +163,6 @@ object.lookupByPath(path, type).then(function(object) { var repository = object.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | the repository who owns this object | @@ -123,7 +181,7 @@ object.peel(target_type).then(function(object) { | Returns | | | --- | --- | -| [Object](/api/object/) | Pointer to the peeled git_object | +| [Object](/api/object/) | | ## Object#shortId AsyncExperimental @@ -133,7 +191,6 @@ object.shortId().then(function(buf) { }); ``` - | Returns | | | --- | --- | | [Buf](/api/buf/) | Buffer to write string into | @@ -144,7 +201,6 @@ object.shortId().then(function(buf) { var result = object.type(); ``` - | Returns | | | --- | --- | | Number | the object's type | diff --git a/api/odb/index.md b/api/odb/index.md index 3d38fac..63d6e75 100644 --- a/api/odb/index.md +++ b/api/odb/index.md @@ -28,8 +28,7 @@ Odb.open(objects_dir).then(function(odb) { | Returns | | | --- | --- | -| [Odb](/api/odb/) | location to store the database pointer, if opened. - Set to NULL if the open failed. | +| [Odb](/api/odb/) | | ## Odb#addDiskAlternate Sync @@ -77,7 +76,7 @@ odb.write(data, len, type).then(function(oid) { | Returns | | | --- | --- | -| [Oid](/api/oid/) | pointer to store the OID result of the write | +| [Oid](/api/oid/) | | ## Odb.STREAM ENUM diff --git a/api/odb_object/index.md b/api/odb_object/index.md index d7f3dcb..7dc1c79 100644 --- a/api/odb_object/index.md +++ b/api/odb_object/index.md @@ -20,7 +20,6 @@ sections: var buffer = odbObject.data(); ``` - | Returns | | | --- | --- | | Buffer | the data | @@ -33,7 +32,6 @@ odbObject.dup().then(function(odbObject) { }); ``` - | Returns | | | --- | --- | | [OdbObject](/api/odb_object/) | the copy | @@ -44,7 +42,6 @@ odbObject.dup().then(function(odbObject) { var oid = odbObject.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the OID | @@ -55,7 +52,6 @@ var oid = odbObject.id(); var result = odbObject.size(); ``` - | Returns | | | --- | --- | | Number | the size | @@ -66,7 +62,6 @@ var result = odbObject.size(); var result = odbObject.type(); ``` - | Returns | | | --- | --- | | Number | the type | diff --git a/api/oid/index.md b/api/oid/index.md index 1a814c2..600dff0 100644 --- a/api/oid/index.md +++ b/api/oid/index.md @@ -37,7 +37,6 @@ var oid = Oid.fromString(str); var result = oid.cmp(); ``` - | Returns | | | --- | --- | | Number | @@ -52,7 +51,6 @@ var result = oid.cmp(); var result = oid.equal(); ``` - | Returns | | | --- | --- | | Number | true if equal, false otherwise | @@ -63,7 +61,6 @@ var result = oid.equal(); var result = oid.iszero(); ``` - | Returns | | | --- | --- | | Number | 1 if all zeros, 0 otherwise. | @@ -119,7 +116,6 @@ var result = oid.streq(str); var string = oid.tostrS(); ``` - | Returns | | | --- | --- | | String | the c-string | diff --git a/api/openssl/index.md b/api/openssl/index.md new file mode 100644 index 0000000..5582714 --- /dev/null +++ b/api/openssl/index.md @@ -0,0 +1,23 @@ +--- +layout: default +menu_item: api +title: Openssl +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "setLocking": "#setLocking" +--- + +## Openssl.setLocking SyncExperimental + +```js +var result = Openssl.setLocking(); +``` + +| Returns | | +| --- | --- | +| Number | 0 on success, -1 if there are errors or if libgit2 was not + built with OpenSSL and threading support. | + diff --git a/api/packbuilder/index.md b/api/packbuilder/index.md index ef2385f..45985fc 100644 --- a/api/packbuilder/index.md +++ b/api/packbuilder/index.md @@ -23,7 +23,6 @@ sections: var oid = packbuilder.hash(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | | @@ -77,7 +76,6 @@ var result = packbuilder.insertTree(id); var result = packbuilder.objectCount(); ``` - | Returns | | | --- | --- | | Number | the number of objects in the packfile | @@ -102,7 +100,6 @@ var result = packbuilder.setThreads(n); var result = packbuilder.written(); ``` - | Returns | | | --- | --- | | Number | the number of objects which have already been written | diff --git a/api/patch/index.md b/api/patch/index.md index 2cdb22a..7cfc61e 100644 --- a/api/patch/index.md +++ b/api/patch/index.md @@ -80,7 +80,6 @@ var patch = Patch.fromDiff(diff, idx); var diffDelta = patch.getDelta(); ``` - | Returns | | | --- | --- | | [DiffDelta](/api/diff_delta/) | | @@ -120,7 +119,6 @@ var diffLine = patch.getLineInHunk(hunk_idx, line_of_hunk); var result = patch.numHunks(); ``` - | Returns | | | --- | --- | | Number | | diff --git a/api/pathspec/index.md b/api/pathspec/index.md index f967773..17e1a20 100644 --- a/api/pathspec/index.md +++ b/api/pathspec/index.md @@ -7,6 +7,11 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "matchListDiffEntry": "#matchListDiffEntry" + "matchListEntry": "#matchListEntry" + "matchListEntrycount": "#matchListEntrycount" + "matchListFailedEntry": "#matchListFailedEntry" + "matchListFailedEntrycount": "#matchListFailedEntrycount" "#matchDiff": "#matchDiff" "#matchIndex": "#matchIndex" "#matchTree": "#matchTree" @@ -15,6 +20,79 @@ sections: "FLAG": "#FLAG" --- +## Pathspec.matchListDiffEntry SyncExperimental + +```js +var diffDelta = Pathspec.matchListDiffEntry(m, pos); +``` + +| Parameters | Type | | +| --- | --- | --- | +| m | [PathspecMatchList](/api/pathspec_match_list/) | The git_pathspec_match_list object | +| pos | Number | The index into the list | + +| Returns | | +| --- | --- | +| [DiffDelta](/api/diff_delta/) | The filename of the match | + +## Pathspec.matchListEntry SyncExperimental + +```js +var string = Pathspec.matchListEntry(m, pos); +``` + +| Parameters | Type | | +| --- | --- | --- | +| m | [PathspecMatchList](/api/pathspec_match_list/) | The git_pathspec_match_list object | +| pos | Number | The index into the list | + +| Returns | | +| --- | --- | +| String | The filename of the match | + +## Pathspec.matchListEntrycount SyncExperimental + +```js +var result = Pathspec.matchListEntrycount(m); +``` + +| Parameters | Type | | +| --- | --- | --- | +| m | [PathspecMatchList](/api/pathspec_match_list/) | The git_pathspec_match_list object | + +| Returns | | +| --- | --- | +| Number | Number of items in match list | + +## Pathspec.matchListFailedEntry SyncExperimental + +```js +var string = Pathspec.matchListFailedEntry(m, pos); +``` + +| Parameters | Type | | +| --- | --- | --- | +| m | [PathspecMatchList](/api/pathspec_match_list/) | The git_pathspec_match_list object | +| pos | Number | The index into the failed items | + +| Returns | | +| --- | --- | +| String | The pathspec pattern that didn't match anything | + +## Pathspec.matchListFailedEntrycount SyncExperimental + +```js +var result = Pathspec.matchListFailedEntrycount(m); +``` + +| Parameters | Type | | +| --- | --- | --- | +| m | [PathspecMatchList](/api/pathspec_match_list/) | The git_pathspec_match_list object | + +| Returns | | +| --- | --- | +| Number | Number of items in original pathspec that had no matches | + ## Pathspec#matchDiff AsyncExperimental ```js diff --git a/api/push/index.md b/api/push/index.md new file mode 100644 index 0000000..80ab8e1 --- /dev/null +++ b/api/push/index.md @@ -0,0 +1,27 @@ +--- +layout: default +menu_item: api +title: Push +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "initOptions": "#initOptions" +--- + +## Push.initOptions SyncExperimental + +```js +var result = Push.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [PushOptions](/api/push_options/) | the `git_push_options` instance to initialize. | +| version | Number | the version of the struct; you should pass `GIT_PUSH_OPTIONS_VERSION` here. | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + diff --git a/api/rebase/index.md b/api/rebase/index.md index 1a94122..ee1d5e1 100644 --- a/api/rebase/index.md +++ b/api/rebase/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "init": "#init" + "initOptions": "#initOptions" "open": "#open" "#abort": "#abort" "#commit": "#commit" @@ -36,7 +37,22 @@ Rebase.init(repo, branch, upstream, onto, signature, opts).then(function(rebase) | Returns | | | --- | --- | -| [Rebase](/api/rebase/) | Pointer to store the rebase object | +| [Rebase](/api/rebase/) | | + +## Rebase.initOptions SyncExperimental + +```js +var result = Rebase.initOptions(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [RebaseOptions](/api/rebase_options/) | the `git_rebase_options` instance to initialize. | +| version | Number | the version of the struct; you should pass `GIT_REBASE_OPTIONS_VERSION` here. | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | ## Rebase.open AsyncExperimental @@ -52,7 +68,7 @@ Rebase.open(repo).then(function(rebase) { | Returns | | | --- | --- | -| [Rebase](/api/rebase/) | Pointer to store the rebase object | +| [Rebase](/api/rebase/) | | ## Rebase#abort SyncExperimental @@ -125,7 +141,6 @@ var rebaseOperation = rebase.operationByIndex(idx); var result = rebase.operationCurrent(); ``` - | Returns | | | --- | --- | | Number | The index of the rebase operation currently being applied. | @@ -136,7 +151,6 @@ var result = rebase.operationCurrent(); var result = rebase.operationEntrycount(); ``` - | Returns | | | --- | --- | | Number | The number of rebase operations in total | diff --git a/api/refdb/index.md b/api/refdb/index.md index 14a75a3..875ce1c 100644 --- a/api/refdb/index.md +++ b/api/refdb/index.md @@ -25,8 +25,7 @@ Refdb.open(repo).then(function(refdb) { | Returns | | | --- | --- | -| [Refdb](/api/refdb/) | location to store the database pointer, if opened. - Set to NULL if the open failed. | +| [Refdb](/api/refdb/) | | ## Refdb#compress SyncExperimental @@ -34,7 +33,6 @@ Refdb.open(repo).then(function(refdb) { var result = refdb.compress(); ``` - | Returns | | | --- | --- | | Number | | diff --git a/api/reference/index.md b/api/reference/index.md index 3ea76b1..11e2408 100644 --- a/api/reference/index.md +++ b/api/reference/index.md @@ -10,7 +10,14 @@ sections: "create": "#create" "createMatching": "#createMatching" "dwim": "#dwim" + "ensureLog": "#ensureLog" + "hasLog": "#hasLog" + "isValidName": "#isValidName" + "list": "#list" "lookup": "#lookup" + "nameToId": "#nameToId" + "normalizeName": "#normalizeName" + "remove": "#remove" "symbolicCreate": "#symbolicCreate" "symbolicCreateMatching": "#symbolicCreateMatching" "#cmp": "#cmp" @@ -59,7 +66,7 @@ Reference.create(repo, name, id, force, signature, log_message).then(function(re | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | ## Reference.createMatching AsyncExperimental @@ -81,12 +88,14 @@ Reference.createMatching(repo, name, id, force, current_id, signature, log_messa | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | -## Reference.dwim Sync +## Reference.dwim Async ```js -Reference.dwim(repo, id, callback); +Reference.dwim(repo, id, callback).then(function(reference) { + // Use reference +}); ``` Retrieves the reference by it's short name @@ -96,10 +105,78 @@ Retrieves the reference by it's short name | repo | [Repository](/api/repository/) | The repo that the reference lives in | | id | String, [Reference](/api/reference/) | The reference to lookup | | callback | Function | | -## Reference.lookup Sync + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Reference.ensureLog SyncExperimental ```js -Reference.lookup(repo, id, callback); +var result = Reference.ensureLog(repo, refname); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository | +| refname | String | the reference's name | + +| Returns | | +| --- | --- | +| Number | 0 or an error code. | + +## Reference.hasLog SyncExperimental + +```js +var result = Reference.hasLog(repo, refname); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository | +| refname | String | the reference's name | + +| Returns | | +| --- | --- | +| Number | 0 when no reflog can be found, 1 when it exists; + otherwise an error code. | + +## Reference.isValidName SyncExperimental + +```js +var result = Reference.isValidName(refname); +``` + +| Parameters | Type | | +| --- | --- | --- | +| refname | String | name to be checked. | + +| Returns | | +| --- | --- | +| Number | 1 if the reference name is acceptable; 0 if it isn't | + +## Reference.list AsyncExperimental + +```js +Reference.list(repo).then(function(array) { + // Use array +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to find the refs | + +| Returns | | +| --- | --- | +| Array | | + +## Reference.lookup Async + +```js +Reference.lookup(repo, id, callback).then(function(reference) { + // Use reference +}); ``` Retrieves the reference pointed to by the oid @@ -109,6 +186,61 @@ Retrieves the reference pointed to by the oid | repo | [Repository](/api/repository/) | The repo that the reference lives in | | id | String, [Reference](/api/reference/) | The reference to lookup | | callback | Function | | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Reference.nameToId AsyncExperimental + +```js +Reference.nameToId(repo, name).then(function(oid) { + // Use oid +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository in which to look up the reference | +| name | String | The long name for the reference (e.g. HEAD, refs/heads/master, refs/tags/v0.1.0, ...) | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | | + +## Reference.normalizeName SyncExperimental + +```js +var result = Reference.normalizeName(buffer_out, buffer_size, name, flags); +``` + +| Parameters | Type | | +| --- | --- | --- | +| buffer_out | String | User allocated buffer to store normalized name | +| buffer_size | Number | Size of buffer_out | +| name | String | Reference name to be checked. | +| flags | Number | Flags to constrain name validation rules - see the GIT_REF_FORMAT constants above. | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EBUFS if buffer is too small, GIT_EINVALIDSPEC + or an error code. | + +## Reference.remove SyncExperimental + +```js +var result = Reference.remove(repo, name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| name | String | The reference to remove | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + ## Reference.symbolicCreate AsyncExperimental ```js @@ -128,7 +260,7 @@ Reference.symbolicCreate(repo, name, target, force, signature, log_message).then | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | ## Reference.symbolicCreateMatching AsyncExperimental @@ -150,7 +282,7 @@ Reference.symbolicCreateMatching(repo, name, target, force, current_value, signa | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | ## Reference#cmp SyncExperimental @@ -158,7 +290,6 @@ Reference.symbolicCreateMatching(repo, name, target, force, current_value, signa var result = reference.cmp(); ``` - | Returns | | | --- | --- | | Number | 0 if the same, else a stable but meaningless ordering. | @@ -169,7 +300,6 @@ var result = reference.cmp(); var result = reference.delete(); ``` - | Returns | | | --- | --- | | Number | 0, GIT_EMODIFIED or an error code | @@ -180,7 +310,6 @@ var result = reference.delete(); var result = reference.isBranch(); ``` - | Returns | | | --- | --- | | Number | 1 when the reference lives in the refs/heads @@ -189,26 +318,33 @@ var result = reference.isBranch(); ## Reference#isConcrete Sync ```js -reference.isConcrete(); +var boolean = reference.isConcrete(); ``` Returns true if this reference is not symbolic +| Returns | | +| --- | --- | +| Boolean | | + ## Reference#isHead Sync ```js -reference.isHead(); +var bool = reference.isHead(); ``` Returns if the ref is pointed at by HEAD +| Returns | | +| --- | --- | +| bool | | + ## Reference#isNote SyncExperimental ```js var result = reference.isNote(); ``` - | Returns | | | --- | --- | | Number | 1 when the reference lives in the refs/notes @@ -220,7 +356,6 @@ var result = reference.isNote(); var result = reference.isRemote(); ``` - | Returns | | | --- | --- | | Number | 1 when the reference lives in the refs/remotes @@ -229,18 +364,21 @@ var result = reference.isRemote(); ## Reference#isSymbolic Sync ```js -reference.isSymbolic(); +var boolean = reference.isSymbolic(); ``` Returns true if this reference is symbolic +| Returns | | +| --- | --- | +| Boolean | | + ## Reference#isTag SyncExperimental ```js var result = reference.isTag(); ``` - | Returns | | | --- | --- | | Number | 1 when the reference lives in the refs/tags @@ -249,18 +387,21 @@ var result = reference.isTag(); ## Reference#isValid Sync ```js -reference.isValid(); +var boolean = reference.isValid(); ``` Returns true if this reference is valid +| Returns | | +| --- | --- | +| Boolean | | + ## Reference#name SyncExperimental ```js var string = reference.name(); ``` - | Returns | | | --- | --- | | String | the full name for the ref | @@ -271,7 +412,6 @@ var string = reference.name(); var repository = reference.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | the repo | @@ -290,7 +430,7 @@ reference.peel(type).then(function(object) { | Returns | | | --- | --- | -| [Object](/api/object/) | Pointer to the peeled git_object | +| [Object](/api/object/) | | ## Reference#rename AsyncExperimental @@ -319,10 +459,9 @@ reference.resolve().then(function(reference) { }); ``` - | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the peeled reference | +| [Reference](/api/reference/) | | ## Reference#setTarget AsyncExperimental @@ -340,7 +479,7 @@ reference.setTarget(id, signature, log_message).then(function(reference) { | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | ## Reference#shorthand SyncExperimental @@ -348,7 +487,6 @@ reference.setTarget(id, signature, log_message).then(function(reference) { var string = reference.shorthand(); ``` - | Returns | | | --- | --- | | String | the human-readable version of the name | @@ -369,7 +507,7 @@ reference.symbolicSetTarget(target, signature, log_message).then(function(refere | Returns | | | --- | --- | -| [Reference](/api/reference/) | Pointer to the newly created reference | +| [Reference](/api/reference/) | | ## Reference#symbolicTarget SyncExperimental @@ -377,7 +515,6 @@ reference.symbolicSetTarget(target, signature, log_message).then(function(refere var string = reference.symbolicTarget(); ``` - | Returns | | | --- | --- | | String | the name if available, NULL otherwise | @@ -388,7 +525,6 @@ var string = reference.symbolicTarget(); var oid = reference.target(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the oid if available, NULL otherwise | @@ -399,7 +535,6 @@ var oid = reference.target(); var oid = reference.targetPeel(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the oid if available, NULL otherwise | @@ -407,18 +542,21 @@ var oid = reference.targetPeel(); ## Reference#toString Sync ```js -reference.toString(); +var string = reference.toString(); ``` Returns the name of the reference. +| Returns | | +| --- | --- | +| String | | + ## Reference#type SyncExperimental ```js var result = reference.type(); ``` - | Returns | | | --- | --- | | Number | the type | diff --git a/api/reflog/index.md b/api/reflog/index.md index 3ea075b..5ac6b28 100644 --- a/api/reflog/index.md +++ b/api/reflog/index.md @@ -7,7 +7,13 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "delete": "#delete" + "entryCommitter": "#entryCommitter" + "entryIdNew": "#entryIdNew" + "entryIdOld": "#entryIdOld" + "entryMessage": "#entryMessage" "read": "#read" + "rename": "#rename" "#append": "#append" "#drop": "#drop" "#entryByIndex": "#entryByIndex" @@ -15,6 +21,77 @@ sections: "#write": "#write" --- +## Reflog.delete SyncExperimental + +```js +var result = Reflog.delete(repo, name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository | +| name | String | the reflog to delete | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Reflog.entryCommitter SyncExperimental + +```js +var signature = Reflog.entryCommitter(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [ReflogEntry](/api/reflog_entry/) | a reflog entry | + +| Returns | | +| --- | --- | +| [Signature](/api/signature/) | the committer | + +## Reflog.entryIdNew SyncExperimental + +```js +var oid = Reflog.entryIdNew(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [ReflogEntry](/api/reflog_entry/) | a reflog entry | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the new oid at this time | + +## Reflog.entryIdOld SyncExperimental + +```js +var oid = Reflog.entryIdOld(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [ReflogEntry](/api/reflog_entry/) | a reflog entry | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the old oid | + +## Reflog.entryMessage SyncExperimental + +```js +var string = Reflog.entryMessage(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [ReflogEntry](/api/reflog_entry/) | a reflog entry | + +| Returns | | +| --- | --- | +| String | the log msg | + ## Reflog.read AsyncExperimental ```js @@ -30,7 +107,23 @@ Reflog.read(repo, name).then(function(reflog) { | Returns | | | --- | --- | -| [Reflog](/api/reflog/) | pointer to reflog | +| [Reflog](/api/reflog/) | | + +## Reflog.rename SyncExperimental + +```js +var result = Reflog.rename(repo, old_name, name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository | +| old_name | String | the old name of the reference | +| name | String | the new name of the reference | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EINVALIDSPEC or an error code | ## Reflog#append SyncExperimental @@ -84,7 +177,6 @@ var reflogEntry = reflog.entryByIndex(idx); var result = reflog.entrycount(); ``` - | Returns | | | --- | --- | | Number | the number of log entries | @@ -95,7 +187,6 @@ var result = reflog.entrycount(); var result = reflog.write(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | diff --git a/api/refspec/index.md b/api/refspec/index.md index 7a2f014..d3407fd 100644 --- a/api/refspec/index.md +++ b/api/refspec/index.md @@ -21,7 +21,6 @@ sections: var result = refspec.direction(); ``` - | Returns | | | --- | --- | | Number | GIT_DIRECTION_FETCH or GIT_DIRECTION_PUSH | @@ -32,7 +31,6 @@ var result = refspec.direction(); var string = refspec.dst(); ``` - | Returns | | | --- | --- | | String | the refspec's destination specifier | @@ -57,7 +55,6 @@ var result = refspec.dstMatches(refname); var result = refspec.force(); ``` - | Returns | | | --- | --- | | Number | 1 if force update has been set, 0 otherwise | @@ -68,7 +65,6 @@ var result = refspec.force(); var string = refspec.src(); ``` - | Returns | | | --- | --- | | String | the refspec's source specifier | diff --git a/api/remote/index.md b/api/remote/index.md index c9d78e3..7b1ac31 100644 --- a/api/remote/index.md +++ b/api/remote/index.md @@ -10,6 +10,10 @@ sections: "create": "#create" "createAnonymous": "#createAnonymous" "createWithFetchspec": "#createWithFetchspec" + "delete": "#delete" + "initCallbacks": "#initCallbacks" + "isValidName": "#isValidName" + "list": "#list" "lookup": "#lookup" "#addFetch": "#addFetch" "#addPush": "#addPush" @@ -82,7 +86,7 @@ Remote.createAnonymous(repo, url, fetch).then(function(remote) { | Returns | | | --- | --- | -| [Remote](/api/remote/) | pointer to the new remote object | +| [Remote](/api/remote/) | | ## Remote.createWithFetchspec Async @@ -103,10 +107,72 @@ Remote.createWithFetchspec(repo, name, url, fetch).then(function(remote) { | --- | --- | | [Remote](/api/remote/) | the resulting remote | -## Remote.lookup Sync +## Remote.delete Sync ```js -Remote.lookup(repo, name, callback); +var result = Remote.delete(repo, name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository in which to act | +| name | String | the name of the remove to delete | + +| Returns | | +| --- | --- | +| Number | 0 on success, or an error code. | + +## Remote.initCallbacks Sync + +```js +var result = Remote.initCallbacks(opts, version); +``` + +| Parameters | Type | | +| --- | --- | --- | +| opts | [RemoteCallbacks](/api/remote_callbacks/) | the `git_remote_callbacks` struct to initialize | +| version | Number | Version of struct; pass `GIT_REMOTE_CALLBACKS_VERSION` | + +| Returns | | +| --- | --- | +| Number | Zero on success; -1 on failure. | + +## Remote.isValidName Sync + +```js +var result = Remote.isValidName(remote_name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| remote_name | String | name to be checked. | + +| Returns | | +| --- | --- | +| Number | 1 if the reference name is acceptable; 0 if it isn't | + +## Remote.list Async + +```js +Remote.list(repo).then(function(array) { + // Use array +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to query | + +| Returns | | +| --- | --- | +| Array | a string array which receives the names of the remotes | + +## Remote.lookup Async + +```js +Remote.lookup(repo, name, callback).then(function(remote) { + // Use remote +}); ``` Retrieves the remote by name @@ -116,6 +182,11 @@ Retrieves the remote by name | repo | [Repository](/api/repository/) | The repo that the remote lives in | | name | String, [Remote](/api/remote/) | The remote to lookup | | callback | Function | | + +| Returns | | +| --- | --- | +| [Remote](/api/remote/) | | + ## Remote#addFetch Sync ```js @@ -150,7 +221,6 @@ var result = remote.addPush(refspec); var result = remote.autotag(); ``` - | Returns | | | --- | --- | | Number | the auto-follow setting | @@ -183,7 +253,6 @@ remote.connect(direction).then(function(result) { var result = remote.connected(); ``` - | Returns | | | --- | --- | | Number | 1 if it's connected, 0 otherwise. | @@ -191,16 +260,10 @@ var result = remote.connected(); ## Remote#disconnect Async ```js -remote.disconnect().then(function(data) { - // Use data -}); +remote.disconnect().then(function() { + // method complete}); ``` - -| Returns | | -| --- | --- | -| Void | | - ## Remote#download Async ```js @@ -225,7 +288,6 @@ remote.dup().then(function(remote) { }); ``` - | Returns | | | --- | --- | | [Remote](/api/remote/) | the copy | @@ -254,7 +316,6 @@ remote.fetch(refspecs, signature, reflog_message).then(function(result) { var remoteCallbacks = remote.getCallbacks(); ``` - | Returns | | | --- | --- | | [RemoteCallbacks](/api/remote_callbacks/) | the callbacks structure | @@ -267,10 +328,9 @@ remote.getFetchRefspecs().then(function(array) { }); ``` - | Returns | | | --- | --- | -| Array | pointer to the array in which to store the strings | +| Array | | ## Remote#getPushRefspecs Async @@ -280,10 +340,9 @@ remote.getPushRefspecs().then(function(array) { }); ``` - | Returns | | | --- | --- | -| Array | pointer to the array in which to store the strings | +| Array | | ## Remote#getRefspec Sync @@ -305,7 +364,6 @@ var refspec = remote.getRefspec(n); var string = remote.name(); ``` - | Returns | | | --- | --- | | String | the name or NULL for in-memory remotes | @@ -316,7 +374,6 @@ var string = remote.name(); var repository = remote.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | the repository | @@ -327,7 +384,6 @@ var repository = remote.owner(); var result = remote.prune(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | @@ -338,7 +394,6 @@ var result = remote.prune(); var result = remote.pruneRefs(); ``` - | Returns | | | --- | --- | | Number | the ref-prune setting | @@ -366,7 +421,6 @@ var result = remote.push(refspecs, opts, signature, reflog_message); var string = remote.pushurl(); ``` - | Returns | | | --- | --- | | String | the url or NULL if no special url for pushing is set | @@ -377,7 +431,6 @@ var string = remote.pushurl(); var result = remote.refspecCount(); ``` - | Returns | | | --- | --- | | Number | the amount of refspecs configured in this remote | @@ -388,7 +441,6 @@ var result = remote.refspecCount(); var result = remote.save(); ``` - | Returns | | | --- | --- | | Number | 0, GIT_EINVALIDSPEC or an error code | @@ -402,6 +454,7 @@ remote.setAutotag(value); | Parameters | Type | | --- | --- | --- | | value | Number | a GIT_REMOTE_DOWNLOAD_TAGS value | + ## Remote#setCallbacks Sync ```js @@ -439,6 +492,7 @@ remote.setUpdateFetchhead(value); | Parameters | Type | | --- | --- | --- | | value | Number | 0 to disable updating FETCH_HEAD | + ## Remote#setUrl Sync ```js @@ -459,7 +513,6 @@ var result = remote.setUrl(url); var transferProgress = remote.stats(); ``` - | Returns | | | --- | --- | | [TransferProgress](/api/transfer_progress/) | | @@ -476,7 +529,6 @@ remote.stop(); var result = remote.updateFetchhead(); ``` - | Returns | | | --- | --- | | Number | the update FETCH_HEAD setting | @@ -517,7 +569,6 @@ var result = remote.upload(refspecs, opts); var string = remote.url(); ``` - | Returns | | | --- | --- | | String | the url | diff --git a/api/repository/index.md b/api/repository/index.md index c29f1be..b8c8828 100644 --- a/api/repository/index.md +++ b/api/repository/index.md @@ -25,6 +25,8 @@ sections: "#getNamespace": "#getNamespace" "#getReference": "#getReference" "#getReferenceCommit": "#getReferenceCommit" + "#getReferenceNames": "#getReferenceNames" + "#getReferences": "#getReferences" "#getTag": "#getTag" "#getTagByName": "#getTagByName" "#getTree": "#getTree" @@ -67,7 +69,7 @@ Repository.init(path, is_bare).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | pointer to the repo which will be created or reinitialized | +| [Repository](/api/repository/) | | ## Repository.initExt Async @@ -84,7 +86,7 @@ Repository.initExt(repo_path, opts).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | Pointer to the repo which will be created or reinitialized. | +| [Repository](/api/repository/) | | ## Repository.open Async @@ -100,7 +102,7 @@ Repository.open(path).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | pointer to the repo which will be opened | +| [Repository](/api/repository/) | | ## Repository.openBare Async @@ -116,7 +118,7 @@ Repository.openBare(bare_path).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | Pointer to the repo which will be opened. | +| [Repository](/api/repository/) | | ## Repository.openExt Async @@ -134,9 +136,7 @@ Repository.openExt(path, flags, ceiling_dirs).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | Pointer to the repo which will be opened. This can - actually be NULL if you only want to use the error code to - see if a repo at this path could be opened. | +| [Repository](/api/repository/) | | ## Repository.wrapOdb Async @@ -152,7 +152,7 @@ Repository.wrapOdb(odb).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | pointer to the repo | +| [Repository](/api/repository/) | | ## Repository#config Async @@ -162,10 +162,9 @@ repository.config().then(function(config) { }); ``` - | Returns | | | --- | --- | -| [Config](/api/config/) | Pointer to store the loaded configuration | +| [Config](/api/config/) | | ## Repository#configSnapshot Async @@ -175,15 +174,14 @@ repository.configSnapshot().then(function(config) { }); ``` - | Returns | | | --- | --- | -| [Config](/api/config/) | Pointer to store the loaded configuration | +| [Config](/api/config/) | | ## Repository#createRevWalk Sync ```js -repository.createRevWalk(String, callback); +var revWalk = repository.createRevWalk(String); ``` Instantiate a new revision walker for browsing the Repository"s history. @@ -193,7 +191,11 @@ See also `Commit.prototype.history()` | Parameters | Type | | --- | --- | --- | | String | String, [Oid](/api/oid/) | sha or Oid | -| callback | Function | | + +| Returns | | +| --- | --- | +| RevWalk | | + ## Repository#detachHead Sync ```js @@ -210,10 +212,12 @@ var result = repository.detachHead(signature, reflog_message); | Number | 0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing branch or an error code | -## Repository#getBlob Sync +## Repository#getBlob Async ```js -repository.getBlob(String, callback); +repository.getBlob(String).then(function(blob) { + // Use blob +}); ``` Retrieve the blob represented by the oid. @@ -222,11 +226,17 @@ Retrieve the blob represented by the oid. | Parameters | Type | | --- | --- | --- | | String | String, [Oid](/api/oid/) | sha or Oid | -| callback | Function | | -## Repository#getBranch Sync + +| Returns | | +| --- | --- | +| [Blob](/api/blob/) | | + +## Repository#getBranch Async ```js -repository.getBranch(name, callback); +repository.getBranch(name).then(function(ref) { + // Use ref +}); ``` Look up a branch. Alias for `getReference` @@ -235,11 +245,17 @@ Look up a branch. Alias for `getReference` | Parameters | Type | | --- | --- | --- | | name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | -| callback | Function | | -## Repository#getBranchCommit Sync + +| Returns | | +| --- | --- | +| Ref | | + +## Repository#getBranchCommit Async ```js -repository.getBranchCommit(name, callback); +repository.getBranchCommit(name).then(function(commit) { + // Use commit +}); ``` Look up a branch's most recent commit. Alias to `getReferenceCommit` @@ -248,11 +264,17 @@ Look up a branch's most recent commit. Alias to `getReferenceCommit` | Parameters | Type | | --- | --- | --- | | name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | -| callback | Function | | -## Repository#getCommit Sync + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | | + +## Repository#getCommit Async ```js -repository.getCommit(String, callback); +repository.getCommit(String).then(function(commit) { + // Use commit +}); ``` Retrieve the commit identified by oid. @@ -261,31 +283,42 @@ Retrieve the commit identified by oid. | Parameters | Type | | --- | --- | --- | | String | String, [Oid](/api/oid/) | sha or Oid | -| callback | Function | | -## Repository#getCurrentBranch Sync + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | | + +## Repository#getCurrentBranch Async ```js -repository.getCurrentBranch(); +repository.getCurrentBranch().then(function(reference) { + // Use reference +}); ``` Gets the branch that HEAD currently points to Is an alias to head() +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + ## Repository#getNamespace Sync ```js var string = repository.getNamespace(); ``` - | Returns | | | --- | --- | | String | the active namespace, or NULL if there isn't one | -## Repository#getReference Sync +## Repository#getReference Async ```js -repository.getReference(name, callback); +repository.getReference(name).then(function(reference) { + // Use reference +}); ``` Lookup the reference with the given name. @@ -294,11 +327,17 @@ Lookup the reference with the given name. | Parameters | Type | | --- | --- | --- | | name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | -| callback | Function | | -## Repository#getReferenceCommit Sync + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + +## Repository#getReferenceCommit Async ```js -repository.getReferenceCommit(name, callback); +repository.getReferenceCommit(name).then(function(commit) { + // Use commit +}); ``` Look up a refs's commit. @@ -307,11 +346,55 @@ Look up a refs's commit. | Parameters | Type | | --- | --- | --- | | name | String, Ref | Ref name, e.g. "master", "refs/heads/master" or Branch Ref | -| callback | Function | | -## Repository#getTag Sync + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | | + +## Repository#getReferenceNames Async + +```js +repository.getReferenceNames(type).then(function(arrayString) { + // Use arrayString +}); +``` + +Lookup reference names for a repository. + + +| Parameters | Type | +| --- | --- | --- | +| type | [Reference.TYPE](/api/reference/#TYPE) | Type of reference to look up | + +| Returns | | +| --- | --- | +| Array<String> | | + +## Repository#getReferences Async ```js -repository.getTag(String, callback); +repository.getReferences(type).then(function(arrayReference) { + // Use arrayReference +}); +``` + +Lookup references for a repository. + + +| Parameters | Type | +| --- | --- | --- | +| type | [Reference.TYPE](/api/reference/#TYPE) | Type of reference to look up | + +| Returns | | +| --- | --- | +| Array<[Reference](/api/reference/)> | | + +## Repository#getTag Async + +```js +repository.getTag(String).then(function(tag) { + // Use tag +}); ``` Retrieve the tag represented by the oid. @@ -320,11 +403,17 @@ Retrieve the tag represented by the oid. | Parameters | Type | | --- | --- | --- | | String | String, [Oid](/api/oid/) | sha or Oid | -| callback | Function | | -## Repository#getTagByName Sync + +| Returns | | +| --- | --- | +| [Tag](/api/tag/) | | + +## Repository#getTagByName Async ```js -repository.getTagByName(Short, callback); +repository.getTagByName(Short).then(function(tag) { + // Use tag +}); ``` Retrieve the tag represented by the tag name. @@ -333,11 +422,17 @@ Retrieve the tag represented by the tag name. | Parameters | Type | | --- | --- | --- | | Short | String | or full tag name | -| callback | Function | | -## Repository#getTree Sync + +| Returns | | +| --- | --- | +| [Tag](/api/tag/) | | + +## Repository#getTree Async ```js -repository.getTree(String, callback); +repository.getTree(String).then(function(tree) { + // Use tree +}); ``` Retrieve the tree represented by the oid. @@ -346,7 +441,11 @@ Retrieve the tree represented by the oid. | Parameters | Type | | --- | --- | --- | | String | String, [Oid](/api/oid/) | sha or Oid | -| callback | Function | | + +| Returns | | +| --- | --- | +| [Tree](/api/tree/) | | + ## Repository#head Async ```js @@ -355,10 +454,9 @@ repository.head().then(function(reference) { }); ``` - | Returns | | | --- | --- | -| [Reference](/api/reference/) | pointer to the reference which will be retrieved | +| [Reference](/api/reference/) | | ## Repository#headDetached Sync @@ -366,7 +464,6 @@ repository.head().then(function(reference) { var result = repository.headDetached(); ``` - | Returns | | | --- | --- | | Number | 1 if HEAD is detached, 0 if it's not; error code if there @@ -378,7 +475,6 @@ var result = repository.headDetached(); var result = repository.headUnborn(); ``` - | Returns | | | --- | --- | | Number | 1 if the current branch is unborn, 0 if it's not; error @@ -392,10 +488,9 @@ repository.index().then(function(index) { }); ``` - | Returns | | | --- | --- | -| [Index](/api/index/) | Pointer to store the loaded index | +| [Index](/api/index/) | | ## Repository#isBare Sync @@ -403,7 +498,6 @@ repository.index().then(function(index) { var result = repository.isBare(); ``` - | Returns | | | --- | --- | | Number | 1 if the repository is bare, 0 otherwise. | @@ -414,7 +508,6 @@ var result = repository.isBare(); var result = repository.isEmpty(); ``` - | Returns | | | --- | --- | | Number | 1 if the repository is empty, 0 if it isn't, error code @@ -426,7 +519,6 @@ var result = repository.isEmpty(); var result = repository.isShallow(); ``` - | Returns | | | --- | --- | | Number | 1 if shallow, zero if not | @@ -437,7 +529,6 @@ var result = repository.isShallow(); var result = repository.messageRemove(); ``` - | Returns | | | --- | --- | | Number | | @@ -450,10 +541,9 @@ repository.odb().then(function(odb) { }); ``` - | Returns | | | --- | --- | -| [Odb](/api/odb/) | Pointer to store the loaded ODB | +| [Odb](/api/odb/) | | ## Repository#path Sync @@ -461,7 +551,6 @@ repository.odb().then(function(odb) { var string = repository.path(); ``` - | Returns | | | --- | --- | | String | the path to the repository | @@ -474,10 +563,9 @@ repository.refdb().then(function(refdb) { }); ``` - | Returns | | | --- | --- | -| [Refdb](/api/refdb/) | Pointer to store the loaded refdb | +| [Refdb](/api/refdb/) | | ## Repository#setHead Sync @@ -546,7 +634,6 @@ var result = repository.setWorkdir(workdir, update_gitlink); var result = repository.state(); ``` - | Returns | | | --- | --- | | Number | The state of the repository | @@ -557,7 +644,6 @@ var result = repository.state(); var result = repository.stateCleanup(); ``` - | Returns | | | --- | --- | | Number | 0 on success, or error | @@ -568,7 +654,6 @@ var result = repository.stateCleanup(); var string = repository.workdir(); ``` - | Returns | | | --- | --- | | String | the path to the working dir, if it exists | diff --git a/api/reset/index.md b/api/reset/index.md index 1c10417..d5ed4cd 100644 --- a/api/reset/index.md +++ b/api/reset/index.md @@ -7,9 +7,28 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "default": "#default" "TYPE": "#TYPE" --- +## Reset.default SyncExperimental + +```js +var result = Reset.default(repo, target, pathspecs); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to perform the reset operation. | +| target | [Object](/api/object/) | The committish which content will be used to reset the content of the index. | +| pathspecs | [Strarray](/api/strarray/) | List of pathspecs to operate on. | + +| Returns | | +| --- | --- | +| Number | 0 on success or an error code +< + 0 | + ## Reset.TYPE ENUM | Flag | Value | diff --git a/api/revert/index.md b/api/revert/index.md new file mode 100644 index 0000000..f985788 --- /dev/null +++ b/api/revert/index.md @@ -0,0 +1,49 @@ +--- +layout: default +menu_item: api +title: Revert +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "commit": "#commit" + "revert": "#revert" +--- + +## Revert.commit AsyncExperimental + +```js +Revert.commit(repo, revert_commit, our_commit, mainline, merge_options).then(function(index) { + // Use index +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository that contains the given commits | +| revert_commit | [Commit](/api/commit/) | the commit to revert | +| our_commit | [Commit](/api/commit/) | the commit to revert against (eg, HEAD) | +| mainline | Number | the parent of the revert commit, if it is a merge | +| merge_options | [MergeOptions](/api/merge_options/) | the merge options (or null for defaults) | + +| Returns | | +| --- | --- | +| [Index](/api/index/) | | + +## Revert.revert SyncExperimental + +```js +var result = Revert.revert(repo, commit, given_opts); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to revert | +| commit | [Commit](/api/commit/) | the commit to revert | +| given_opts | [RevertOptions](/api/revert_options/) | merge flags | + +| Returns | | +| --- | --- | +| Number | zero on success, -1 on failure. | + diff --git a/api/revparse/index.md b/api/revparse/index.md index d2abb20..d6479c3 100644 --- a/api/revparse/index.md +++ b/api/revparse/index.md @@ -7,9 +7,46 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "ext": "#ext" + "single": "#single" "MODE": "#MODE" --- +## Revparse.ext SyncExperimental + +```js +var result = Revparse.ext(object_out, reference_out, repo, spec); +``` + +| Parameters | Type | | +| --- | --- | --- | +| object_out | [Object](/api/object/) | pointer to output object | +| reference_out | [Reference](/api/reference/) | pointer to output reference or NULL | +| repo | [Repository](/api/repository/) | the repository to search in | +| spec | String | the textual specification for an object | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC + or an error code | + +## Revparse.single AsyncExperimental + +```js +Revparse.single(repo, spec).then(function(object) { + // Use object +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | the repository to search in | +| spec | String | the textual specification for an object | + +| Returns | | +| --- | --- | +| [Object](/api/object/) | | + ## Revparse.MODE ENUM | Flag | Value | diff --git a/api/revwalk/index.md b/api/revwalk/index.md index 71c6d8b..ca824b0 100644 --- a/api/revwalk/index.md +++ b/api/revwalk/index.md @@ -40,24 +40,29 @@ var revwalk = Revwalk.create(repo); | Returns | | | --- | --- | -| [Revwalk](/api/revwalk/) | pointer to the new revision walker | +| [Revwalk](/api/revwalk/) | | ## Revwalk#getCommits Sync ```js -revwalk.getCommits(count); +var arrayCommit = revwalk.getCommits(count); ``` -Get some of commits. +Get a number of commits. | Parameters | Type | | --- | --- | --- | | count | Number | (default: 10) | + +| Returns | | +| --- | --- | +| Array<[Commit](/api/commit/)> | | + ## Revwalk#getCommitsUntil Sync ```js -revwalk.getCommitsUntil(checkFn); +var array = revwalk.getCommitsUntil(checkFn); ``` Walk the history grabbing commits until the checkFn called with the @@ -66,7 +71,12 @@ current commit returns false. | Parameters | Type | | --- | --- | --- | -| checkFn | Function | | +| checkFn | Function | function returns false to stop walking | + +| Returns | | +| --- | --- | +| Array | | + ## Revwalk#hide Sync ```js @@ -101,7 +111,6 @@ var result = revwalk.hideGlob(glob); var result = revwalk.hideHead(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | @@ -128,7 +137,6 @@ revwalk.next().then(function(oid) { }); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | the oid of the next commit | @@ -167,7 +175,6 @@ var result = revwalk.pushGlob(glob); var result = revwalk.pushHead(); ``` - | Returns | | | --- | --- | | Number | 0 or an error code | @@ -206,7 +213,6 @@ var result = revwalk.pushRef(refname); var repository = revwalk.repository(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | the repository being walked | @@ -236,10 +242,11 @@ like `revwalk.sorting(NodeGit.RevWalk.Topological, NodeGit.RevWalk.Reverse).` | Parameters | Type | | --- | --- | --- | | sort | Number | | + ## Revwalk#walk Sync ```js -revwalk.walk(oid, callback); +var commit = revwalk.walk(oid, callback); ``` Walk the history from the given oid. The callback is invoked for each commit; @@ -250,6 +257,11 @@ When the walk is over, the callback is invoked with `(null, null)`. | --- | --- | --- | | oid | [Oid](/api/oid/) | | | callback | Function | | + +| Returns | | +| --- | --- | +| [Commit](/api/commit/) | | + ## Revwalk.SORT ENUM | Flag | Value | diff --git a/api/signature/index.md b/api/signature/index.md index 11686f5..70c4209 100644 --- a/api/signature/index.md +++ b/api/signature/index.md @@ -69,7 +69,6 @@ signature.dup().then(function(signature) { }); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | the copy | @@ -77,12 +76,16 @@ signature.dup().then(function(signature) { ## Signature#toString Sync ```js -signature.toString(); +var string = signature.toString(); ``` Standard string representation of an author. +| Returns | | +| --- | --- | +| string | Representation of the author. | + ## Instance Variables | Variable | Type | diff --git a/api/stash/index.md b/api/stash/index.md index 85f1e2b..cddb970 100644 --- a/api/stash/index.md +++ b/api/stash/index.md @@ -7,9 +7,25 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "drop": "#drop" "FLAGS": "#FLAGS" --- +## Stash.drop SyncExperimental + +```js +var result = Stash.drop(repo, index); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The owning repository. | +| index | Number | The position within the stash list. 0 points to the most recent stashed state. | + +| Returns | | +| --- | --- | +| Number | 0 on success, or error code | + ## Stash.FLAGS ENUM | Flag | Value | diff --git a/api/status/index.md b/api/status/index.md index 69de60e..e3cab67 100644 --- a/api/status/index.md +++ b/api/status/index.md @@ -7,11 +7,89 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "file": "#file" + "foreach": "#foreach" + "foreachExt": "#foreachExt" + "shouldIgnore": "#shouldIgnore" "OPT": "#OPT" "SHOW": "#SHOW" "STATUS": "#STATUS" --- +## Status.file Sync + +```js +var result = Status.file(status_flags, repo, path); +``` + +| Parameters | Type | | +| --- | --- | --- | +| status_flags | Number | Output combination of git_status_t values for file | +| repo | [Repository](/api/repository/) | A repository object | +| path | String | The exact path to retrieve status for relative to the repository working directory | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_ENOTFOUND if the file is not found in the HEAD, + index, and work tree, GIT_EAMBIGUOUS if `path` matches multiple files + or if it refers to a folder, and -1 on other errors. | + +## Status.foreach Async + +```js +Status.foreach(repo, callback, payload).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | A repository object | +| callback | StatusCb | The function to call on each file | +| payload | Void | Pointer to pass through to callback function | + +| Returns | | +| --- | --- | +| Number | 0 on success, non-zero callback return value, or error code | + +## Status.foreachExt Async + +```js +Status.foreachExt(repo, opts, callback, payload).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository object | +| opts | [StatusOptions](/api/status_options/) | Status options structure | +| callback | StatusCb | The function to call on each file | +| payload | Void | Pointer to pass through to callback function | + +| Returns | | +| --- | --- | +| Number | 0 on success, non-zero callback return value, or error code | + +## Status.shouldIgnore Sync + +```js +var result = Status.shouldIgnore(ignored, repo, path); +``` + +| Parameters | Type | | +| --- | --- | --- | +| ignored | Number | Boolean returning 0 if the file is not ignored, 1 if it is | +| repo | [Repository](/api/repository/) | A repository object | +| path | String | The file to check ignores for, rooted at the repo's workdir. | + +| Returns | | +| --- | --- | +| Number | 0 if ignore rules could be processed for the file (regardless + of whether it exists or not), or an error +< + 0 if they could not. | + ## Status.OPT ENUM | Flag | Value | diff --git a/api/status_list/index.md b/api/status_list/index.md index e5df214..29f2db5 100644 --- a/api/status_list/index.md +++ b/api/status_list/index.md @@ -25,7 +25,7 @@ var statusList = StatusList.create(repo, opts); | Returns | | | --- | --- | -| [StatusList](/api/status_list/) | Pointer to store the status results in | +| [StatusList](/api/status_list/) | | ## StatusList#entrycount SyncExperimental @@ -33,7 +33,6 @@ var statusList = StatusList.create(repo, opts); var result = statusList.entrycount(); ``` - | Returns | | | --- | --- | | Number | the number of status entries | @@ -46,7 +45,6 @@ statusList.getPerfdata().then(function(diffPerfdata) { }); ``` - | Returns | | | --- | --- | | [DiffPerfdata](/api/diff_perfdata/) | | diff --git a/api/strarray/index.md b/api/strarray/index.md index 92625a9..f3b1831 100644 --- a/api/strarray/index.md +++ b/api/strarray/index.md @@ -17,7 +17,6 @@ sections: var result = strarray.copy(); ``` - | Returns | | | --- | --- | | Number | 0 on success, diff --git a/api/submodule/index.md b/api/submodule/index.md index d12dccf..13f0e1e 100644 --- a/api/submodule/index.md +++ b/api/submodule/index.md @@ -9,6 +9,8 @@ return_to: sections: "addSetup": "#addSetup" "lookup": "#lookup" + "reloadAll": "#reloadAll" + "resolveUrl": "#resolveUrl" "#addFinalize": "#addFinalize" "#addToIndex": "#addToIndex" "#branch": "#branch" @@ -75,13 +77,46 @@ Submodule.lookup(repo, name).then(function(submodule) { | --- | --- | | [Submodule](/api/submodule/) | Output ptr to submodule; pass NULL to just get return code | +## Submodule.reloadAll SyncExperimental + +```js +var result = Submodule.reloadAll(repo, force); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | The repository to reload submodule data for | +| force | Number | Force full reload even if the data doesn't seem out of date | + +| Returns | | +| --- | --- | +| Number | 0 on success, +< +0 on error | + +## Submodule.resolveUrl AsyncExperimental + +```js +Submodule.resolveUrl(repo, url).then(function(buf) { + // Use buf +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Pointer to repository object | +| url | String | Relative url | + +| Returns | | +| --- | --- | +| [Buf](/api/buf/) | buffer to store the absolute submodule url in | + ## Submodule#addFinalize SyncExperimental ```js var result = submodule.addFinalize(); ``` - | Returns | | | --- | --- | | Number | | @@ -108,10 +143,9 @@ var result = submodule.addToIndex(write_index); var string = submodule.branch(); ``` - | Returns | | | --- | --- | -| String | Pointer to the submodule branch | +| String | | ## Submodule#fetchRecurseSubmodules SyncExperimental @@ -119,7 +153,6 @@ var string = submodule.branch(); var result = submodule.fetchRecurseSubmodules(); ``` - | Returns | | | --- | --- | | Number | 0 if fetchRecurseSubmodules is false, 1 if true | @@ -130,10 +163,9 @@ var result = submodule.fetchRecurseSubmodules(); var oid = submodule.headId(); ``` - | Returns | | | --- | --- | -| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not in the HEAD. | +| [Oid](/api/oid/) | | ## Submodule#ignore SyncExperimental @@ -141,7 +173,6 @@ var oid = submodule.headId(); var result = submodule.ignore(); ``` - | Returns | | | --- | --- | | Number | The current git_submodule_ignore_t valyue what will be used for @@ -153,10 +184,9 @@ var result = submodule.ignore(); var oid = submodule.indexId(); ``` - | Returns | | | --- | --- | -| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not in index. | +| [Oid](/api/oid/) | | ## Submodule#init SyncExperimental @@ -180,10 +210,9 @@ var result = submodule.init(overwrite); var string = submodule.name(); ``` - | Returns | | | --- | --- | -| String | Pointer to the submodule name | +| String | | ## Submodule#open SyncExperimental @@ -207,10 +236,9 @@ var result = submodule.open(repo); var repository = submodule.owner(); ``` - | Returns | | | --- | --- | -| [Repository](/api/repository/) | Pointer to `git_repository` | +| [Repository](/api/repository/) | | ## Submodule#path SyncExperimental @@ -218,10 +246,9 @@ var repository = submodule.owner(); var string = submodule.path(); ``` - | Returns | | | --- | --- | -| String | Pointer to the submodule path | +| String | | ## Submodule#reload SyncExperimental @@ -253,7 +280,7 @@ submodule.repoInit(use_gitlink).then(function(repository) { | Returns | | | --- | --- | -| [Repository](/api/repository/) | Output pointer to the created git repository. | +| [Repository](/api/repository/) | | ## Submodule#save SyncExperimental @@ -261,7 +288,6 @@ submodule.repoInit(use_gitlink).then(function(repository) { var result = submodule.save(); ``` - | Returns | | | --- | --- | | Number | 0 on success, @@ -332,7 +358,6 @@ var result = submodule.setUrl(url); var result = submodule.sync(); ``` - | Returns | | | --- | --- | | Number | | @@ -360,7 +385,6 @@ var result = submodule.update(init, options); var result = submodule.updateStrategy(); ``` - | Returns | | | --- | --- | | Number | The current git_submodule_update_t value that will be used @@ -372,10 +396,9 @@ var result = submodule.updateStrategy(); var string = submodule.url(); ``` - | Returns | | | --- | --- | -| String | Pointer to the submodule url | +| String | | ## Submodule#wdId SyncExperimental @@ -383,10 +406,9 @@ var string = submodule.url(); var oid = submodule.wdId(); ``` - | Returns | | | --- | --- | -| [Oid](/api/oid/) | Pointer to git_oid or NULL if submodule is not checked out. | +| [Oid](/api/oid/) | | ## Submodule.IGNORE ENUM diff --git a/api/tag/index.md b/api/tag/index.md index 4528fc6..1b1933d 100644 --- a/api/tag/index.md +++ b/api/tag/index.md @@ -7,6 +7,13 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "annotationCreate": "#annotationCreate" + "create": "#create" + "createFromBuffer": "#createFromBuffer" + "createLightweight": "#createLightweight" + "delete": "#delete" + "list": "#list" + "listMatch": "#listMatch" "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" "#id": "#id" @@ -20,10 +27,137 @@ sections: "#targetType": "#targetType" --- -## Tag.lookup Sync +## Tag.annotationCreate Sync ```js -Tag.lookup(repo, id, callback); +var result = Tag.annotationCreate(oid, repo, tag_name, target, tagger, message); +``` + +| Parameters | Type | | +| --- | --- | --- | +| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag | +| repo | [Repository](/api/repository/) | Repository where to store the tag | +| tag_name | String | Name for the tag | +| target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | +| tagger | [Signature](/api/signature/) | Signature of the tagger for this tag, and of the tagging time | +| message | String | Full message for this tag | + +| Returns | | +| --- | --- | +| Number | 0 on success or an error code | + +## Tag.create Sync + +```js +var result = Tag.create(oid, repo, tag_name, target, tagger, message, force); +``` + +| Parameters | Type | | +| --- | --- | --- | +| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag. If the tag already exists, this parameter will be the oid of the existing tag, and the function will return a GIT_EEXISTS error code. | +| repo | [Repository](/api/repository/) | Repository where to store the tag | +| tag_name | String | Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name | +| target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | +| tagger | [Signature](/api/signature/) | Signature of the tagger for this tag, and of the tagging time | +| message | String | Full message for this tag | +| force | Number | Overwrite existing references | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EINVALIDSPEC or an error code + A tag object is written to the ODB, and a proper reference + is written in the /refs/tags folder, pointing to it | + +## Tag.createFromBuffer Sync + +```js +var result = Tag.createFromBuffer(oid, repo, buffer, force); +``` + +| Parameters | Type | | +| --- | --- | --- | +| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag | +| repo | [Repository](/api/repository/) | Repository where to store the tag | +| buffer | String | Raw tag data | +| force | Number | Overwrite existing tags | + +| Returns | | +| --- | --- | +| Number | 0 on success; error code otherwise | + +## Tag.createLightweight Sync + +```js +var result = Tag.createLightweight(oid, repo, tag_name, target, force); +``` + +| Parameters | Type | | +| --- | --- | --- | +| oid | [Oid](/api/oid/) | Pointer where to store the OID of the provided target object. If the tag already exists, this parameter will be filled with the oid of the existing pointed object and the function will return a GIT_EEXISTS error code. | +| repo | [Repository](/api/repository/) | Repository where to store the lightweight tag | +| tag_name | String | Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name | +| target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | +| force | Number | Overwrite existing references | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EINVALIDSPEC or an error code + A proper reference is written in the /refs/tags folder, + pointing to the provided target object | + +## Tag.delete Sync + +```js +var result = Tag.delete(repo, tag_name); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where lives the tag | +| tag_name | String | Name of the tag to be deleted; this name is validated for consistency. | + +| Returns | | +| --- | --- | +| Number | 0 on success, GIT_EINVALIDSPEC or an error code | + +## Tag.list Async + +```js +Tag.list(repo).then(function(array) { + // Use array +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | Repository where to find the tags | + +| Returns | | +| --- | --- | +| Array | | + +## Tag.listMatch Sync + +```js +var result = Tag.listMatch(tag_names, pattern, repo); +``` + +| Parameters | Type | | +| --- | --- | --- | +| tag_names | [Strarray](/api/strarray/) | Pointer to a git_strarray structure where the tag names will be stored | +| pattern | String | Standard fnmatch pattern | +| repo | [Repository](/api/repository/) | Repository where to find the tags | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Tag.lookup Async + +```js +Tag.lookup(repo, id).then(function(tag) { + // Use tag +}); ``` Retrieves the tag pointed to by the oid @@ -32,7 +166,11 @@ Retrieves the tag pointed to by the oid | --- | --- | --- | | repo | [Repository](/api/repository/) | The repo that the tag lives in | | id | String, [Oid](/api/oid/), [Tag](/api/tag/) | The tag to lookup | -| callback | Function | | + +| Returns | | +| --- | --- | +| [Tag](/api/tag/) | | + ## Tag.lookupPrefix Async ```js @@ -49,7 +187,7 @@ Tag.lookupPrefix(repo, id, len).then(function(tag) { | Returns | | | --- | --- | -| [Tag](/api/tag/) | pointer to the looked up tag | +| [Tag](/api/tag/) | | ## Tag#id Sync @@ -57,7 +195,6 @@ Tag.lookupPrefix(repo, id, len).then(function(tag) { var oid = tag.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | object identity for the tag. | @@ -68,7 +205,6 @@ var oid = tag.id(); var string = tag.message(); ``` - | Returns | | | --- | --- | | String | message of the tag or NULL when unspecified | @@ -79,7 +215,6 @@ var string = tag.message(); var string = tag.name(); ``` - | Returns | | | --- | --- | | String | name of the tag | @@ -90,7 +225,6 @@ var string = tag.name(); var repository = tag.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | Repository that contains this tag. | @@ -115,7 +249,6 @@ var result = tag.peel(tag_target_out); var signature = tag.tagger(); ``` - | Returns | | | --- | --- | | [Signature](/api/signature/) | reference to the tag's author or NULL when unspecified | @@ -126,7 +259,6 @@ var signature = tag.tagger(); var object = tag.target(); ``` - | Returns | | | --- | --- | | [Object](/api/object/) | the target | @@ -137,10 +269,9 @@ var object = tag.target(); var oid = tag.targetId(); ``` - | Returns | | | --- | --- | -| [Oid](/api/oid/) | pointer to the OID | +| [Oid](/api/oid/) | | ## Tag#targetType Sync @@ -148,7 +279,6 @@ var oid = tag.targetId(); var result = tag.targetType(); ``` - | Returns | | | --- | --- | | Number | type of the tagged object | diff --git a/api/transport/index.md b/api/transport/index.md index dbbd01e..5f38632 100644 --- a/api/transport/index.md +++ b/api/transport/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "sshWithPaths": "#sshWithPaths" + "unregister": "#unregister" "#init": "#init" "FLAGS": "#FLAGS" --- @@ -29,6 +30,20 @@ Transport.sshWithPaths(owner, payload).then(function(transport) { | --- | --- | | [Transport](/api/transport/) | the resulting transport | +## Transport.unregister SyncExperimental + +```js +var result = Transport.unregister(prefix); +``` + +| Parameters | Type | | +| --- | --- | --- | +| prefix | String | From the previous call to git_transport_register | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + ## Transport#init SyncExperimental ```js diff --git a/api/tree/index.md b/api/tree/index.md index 080571b..3545be9 100644 --- a/api/tree/index.md +++ b/api/tree/index.md @@ -7,6 +7,14 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "entryCmp": "#entryCmp" + "entryDup": "#entryDup" + "entryFilemode": "#entryFilemode" + "entryFilemodeRaw": "#entryFilemodeRaw" + "entryId": "#entryId" + "entryName": "#entryName" + "entryToObject": "#entryToObject" + "entryType": "#entryType" "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" "#_entryByIndex": "#_entryByIndex" @@ -26,10 +34,130 @@ sections: "WALK_MODE": "#WALK_MODE" --- -## Tree.lookup Sync +## Tree.entryCmp SyncExperimental ```js -Tree.lookup(repo, id, callback); +var result = Tree.entryCmp(e1, e2); +``` + +| Parameters | Type | | +| --- | --- | --- | +| e1 | [TreeEntry](/api/tree_entry/) | first tree entry | +| e2 | [TreeEntry](/api/tree_entry/) | second tree entry | + +| Returns | | +| --- | --- | +| Number | +< +0 if e1 is before e2, 0 if e1 == e2, >0 if e1 is after e2 | + +## Tree.entryDup SyncExperimental + +```js +var result = Tree.entryDup(dest, source); +``` + +| Parameters | Type | | +| --- | --- | --- | +| dest | [TreeEntry](/api/tree_entry/) | pointer where to store the copy | +| source | [TreeEntry](/api/tree_entry/) | tree entry to duplicate | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Tree.entryFilemode SyncExperimental + +```js +var result = Tree.entryFilemode(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| Number | filemode as an integer | + +## Tree.entryFilemodeRaw SyncExperimental + +```js +var result = Tree.entryFilemodeRaw(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| Number | filemode as an integer | + +## Tree.entryId SyncExperimental + +```js +var oid = Tree.entryId(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| [Oid](/api/oid/) | the oid of the object | + +## Tree.entryName SyncExperimental + +```js +var string = Tree.entryName(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| String | the name of the file | + +## Tree.entryToObject SyncExperimental + +```js +var result = Tree.entryToObject(object_out, repo, entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| object_out | [Object](/api/object/) | pointer to the converted object | +| repo | [Repository](/api/repository/) | repository where to lookup the pointed object | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| Number | 0 or an error code | + +## Tree.entryType SyncExperimental + +```js +var result = Tree.entryType(entry); +``` + +| Parameters | Type | | +| --- | --- | --- | +| entry | [TreeEntry](/api/tree_entry/) | a tree entry | + +| Returns | | +| --- | --- | +| Number | the type of the pointed object | + +## Tree.lookup Async + +```js +Tree.lookup(repo, id, callback).then(function(tree) { + // Use tree +}); ``` Retrieves the tree pointed to by the oid @@ -39,6 +167,11 @@ Retrieves the tree pointed to by the oid | repo | [Repository](/api/repository/) | The repo that the tree lives in | | id | String, [Oid](/api/oid/), [Tree](/api/tree/) | The tree to lookup | | callback | Function | | + +| Returns | | +| --- | --- | +| [Tree](/api/tree/) | | + ## Tree.lookupPrefix AsyncExperimental ```js @@ -55,7 +188,7 @@ Tree.lookupPrefix(repo, id, len).then(function(tree) { | Returns | | | --- | --- | -| [Tree](/api/tree/) | pointer to the looked up tree | +| [Tree](/api/tree/) | | ## Tree#_entryByIndex SyncExperimental @@ -74,15 +207,21 @@ var treeEntry = tree._entryByIndex(idx); ## Tree#builder Sync ```js -tree.builder(); +var treebuilder = tree.builder(); ``` Make builder. This is helpful for modifying trees. -## Tree#diff Sync +| Returns | | +| --- | --- | +| [Treebuilder](/api/treebuilder/) | | + +## Tree#diff Async ```js -tree.diff(tree, callback); +tree.diff(tree, callback).then(function(diffList) { + // Use diffList +}); ``` Diff two trees @@ -91,14 +230,23 @@ Diff two trees | --- | --- | --- | | tree | [Tree](/api/tree/) | to diff against | | callback | Function | | + +| Returns | | +| --- | --- | +| DiffList | | + ## Tree#entries Sync ```js -tree.entries(); +var treeEntry = tree.entries(); ``` Return an array of the entries in this tree (excluding its children). +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | an array of TreeEntrys | + ## Tree#entryById SyncExperimental ```js @@ -116,7 +264,7 @@ var treeEntry = tree.entryById(id); ## Tree#entryByIndex Sync ```js -tree.entryByIndex(i); +var treeEntry = tree.entryByIndex(i); ``` Get an entry at the ith position. @@ -125,10 +273,15 @@ Get an entry at the ith position. | Parameters | Type | | --- | --- | --- | | i | Number | | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | | + ## Tree#entryByName Sync ```js -tree.entryByName(name); +var treeEntry = tree.entryByName(name); ``` Get an entry by name; if the tree is a directory, the name is the filename. @@ -137,6 +290,11 @@ Get an entry by name; if the tree is a directory, the name is the filename. | Parameters | Type | | --- | --- | --- | | name | String | | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | | + ## Tree#entryByPath AsyncExperimental ```js @@ -159,7 +317,6 @@ tree.entryByPath(path).then(function(treeEntry) { var result = tree.entryCount(); ``` - | Returns | | | --- | --- | | Number | the number of entries in the tree | @@ -167,7 +324,7 @@ var result = tree.entryCount(); ## Tree#getEntry Sync ```js -tree.getEntry(path); +var treeEntry = tree.getEntry(path); ``` Get an entry at a path. Unlike by name, this takes a fully @@ -177,13 +334,17 @@ qualified path, like `/foo/bar/baz.javascript` | Parameters | Type | | --- | --- | --- | | path | String | | + +| Returns | | +| --- | --- | +| [TreeEntry](/api/tree_entry/) | | + ## Tree#id SyncExperimental ```js var oid = tree.id(); ``` - | Returns | | | --- | --- | | [Oid](/api/oid/) | object identity for the tree. | @@ -194,7 +355,6 @@ var oid = tree.id(); var repository = tree.owner(); ``` - | Returns | | | --- | --- | | [Repository](/api/repository/) | Repository that contains this tree. | @@ -202,15 +362,31 @@ var repository = tree.owner(); ## Tree#path Sync ```js -tree.path(); +var string = tree.path(); ``` Return the path of this tree, like `/lib/foo/bar` +| Returns | | +| --- | --- | +| String | | + ## Tree#walk Sync ```js -tree.walk([blobsOnly); +var eventEmitter = tree.walk([blobsOnly); + +eventEmitter.on('entry', function(tree) { + // Use tree +}); + +eventEmitter.on('end', function(trees) { + // Use trees +}); + +eventEmitter.on('error', function(error) { + // Use error +}); ``` Recursively walk the tree in breadth-first order. Fires an event for each @@ -220,6 +396,17 @@ entry. | Parameters | Type | | --- | --- | --- | | [blobsOnly | Boolean | = true] True to emit only blob & blob executable entries. | + +| Fires | Sends | +| --- | --- | +| entry | [Tree](/api/tree/) | +| end | Array<[Tree](/api/tree/)> | +| error | Error | + +| Returns | | +| --- | --- | +| EventEmitter | | + ## Tree.WALK_MODE ENUM | Flag | Value | diff --git a/api/tree_entry/index.md b/api/tree_entry/index.md index d240257..a65b7a5 100644 --- a/api/tree_entry/index.md +++ b/api/tree_entry/index.md @@ -20,70 +20,106 @@ sections: "Instance Variables": "#ivars" --- -## TreeEntry#getBlob Sync +## TreeEntry#getBlob Async ```js -treeEntry.getBlob(); +treeEntry.getBlob().then(function(blob) { + // Use blob +}); ``` Retrieve the tree for this entry. Make sure to call `isTree` first! -## TreeEntry#getTree Sync +| Returns | | +| --- | --- | +| [Blob](/api/blob/) | | + +## TreeEntry#getTree Async ```js -treeEntry.getTree(); +treeEntry.getTree().then(function(tree) { + // Use tree +}); ``` Retrieve the tree for this entry. Make sure to call `isTree` first! +| Returns | | +| --- | --- | +| [Tree](/api/tree/) | | + ## TreeEntry#isBlob Sync ```js -treeEntry.isBlob(); +var boolean = treeEntry.isBlob(); ``` Is this TreeEntry a blob? Alias for `isFile` +| Returns | | +| --- | --- | +| Boolean | | + ## TreeEntry#isDirectory Sync ```js -treeEntry.isDirectory(); +var boolean = treeEntry.isDirectory(); ``` Is this TreeEntry a directory? Alias for `isTree` +| Returns | | +| --- | --- | +| Boolean | | + ## TreeEntry#isFile Sync ```js -treeEntry.isFile(); +var boolean = treeEntry.isFile(); ``` Is this TreeEntry a blob? (i.e., a file) +| Returns | | +| --- | --- | +| Boolean | | + ## TreeEntry#isTree Sync ```js -treeEntry.isTree(); +var boolean = treeEntry.isTree(); ``` Is this TreeEntry a tree? (i.e., a directory) +| Returns | | +| --- | --- | +| Boolean | | + ## TreeEntry#path Sync ```js -treeEntry.path(); +var string = treeEntry.path(); ``` Returns the path for this entry. +| Returns | | +| --- | --- | +| String | | + ## TreeEntry#sha Sync ```js -treeEntry.sha(); +var string = treeEntry.sha(); ``` Retrieve the SHA for this TreeEntry. +| Returns | | +| --- | --- | +| String | | + ## TreeEntry#toString Sync ```js diff --git a/api/treebuilder/index.md b/api/treebuilder/index.md index 2361f68..7823215 100644 --- a/api/treebuilder/index.md +++ b/api/treebuilder/index.md @@ -45,7 +45,6 @@ treebuilder.clear(); var result = treebuilder.entrycount(); ``` - | Returns | | | --- | --- | | Number | the number of entries in the treebuilder | @@ -62,7 +61,7 @@ var treeEntry = treebuilder.get(filename); | Returns | | | --- | --- | -| [TreeEntry](/api/tree_entry/) | pointer to the entry; NULL if not found | +| [TreeEntry](/api/tree_entry/) | | ## Treebuilder#insert AsyncExperimental @@ -80,7 +79,7 @@ treebuilder.insert(filename, id, filemode).then(function(treeEntry) { | Returns | | | --- | --- | -| [TreeEntry](/api/tree_entry/) | Pointer to store the entry (optional) | +| [TreeEntry](/api/tree_entry/) | | ## Treebuilder#remove SyncExperimental diff --git a/generate/lib/add_convenience_methods.js b/generate/lib/add_convenience_methods.js index 0c31b01..c515a0b 100644 --- a/generate/lib/add_convenience_methods.js +++ b/generate/lib/add_convenience_methods.js @@ -16,6 +16,7 @@ var addConvenienceMethods = function(apiData) { var data = { params: [], + fires: [], return: null, isAsync: false, description: doc.description.full @@ -33,15 +34,26 @@ var addConvenienceMethods = function(apiData) { break; case 'return': data.return = { - name: tag.name, + name: changeCase.camelCase(tag.types[0]), type: tag.types[0], - description: tag.description || null + description: tag.description }; break; - case 'isAsync': - if (tag.value == 'true') { - data.isAsync = true; - } + case 'async': + data.isAsync = true; + break; + case 'fires': + matches = tag.string.match(/.+#(.+) (.+)/) + data.fires.push({ + name: matches[1], + sends: matches[2] + }); + break; + case 'start': + data.start = tag.string; + break; + case 'log': + console.log(JSON.stringify(doc, 0, 4)); break; } }); diff --git a/generate/lib/generated_data.js b/generate/lib/generated_data.js index 6243b32..47e4582 100644 --- a/generate/lib/generated_data.js +++ b/generate/lib/generated_data.js @@ -6,7 +6,8 @@ var removePointerReferences = function(text) { if (!text) return ''; text = text.replace(/a pointer to /ig, ''); text = text.replace(/pointer where to store /ig, ''); - return text + text = text.match(/pointer/i) ? '' : text; // Better to ignore pointer text + return text; } var sanitizeArgName = function(className, comment) { @@ -37,6 +38,7 @@ var generatedData = function(path, missingTestsPath) { item.functions.forEach(function(func) { data = { params: [], + fires: [], return: { type: func.return.jsClassName, name: sanitizeArgName(func.return.jsClassName, func.return.comment), @@ -44,11 +46,11 @@ var generatedData = function(path, missingTestsPath) { }, isAsync: func.isAsync, description: "", - experimental: false + experimental: false, } if (missingTests) { - if (missingTests[item.filename].testFileMissing === false) { + if (!missingTests[item.filename] || missingTests[item.filename].testFileMissing === false) { data.experimental = true; } else { if (missingTests[item.filename].functions.indexOf(item.jsClassName) != -1) { @@ -76,7 +78,7 @@ var generatedData = function(path, missingTestsPath) { if (func.isPrototypeMethod) { obj.prototypes[func.jsFunctionName] = data - } else if (func.isConstructorMethod) { + } else { obj.constructors[func.jsFunctionName] = data } }); diff --git a/generate/lib/write_api_docs.js b/generate/lib/write_api_docs.js index bb9eeb9..2f7c88d 100644 --- a/generate/lib/write_api_docs.js +++ b/generate/lib/write_api_docs.js @@ -22,13 +22,51 @@ var writeApiDocs = function(apiData, path) { } var crossLink = function(text) { - if (apiData[text]) { - return "[" + text + "](" + path + "api/" + changeCase.snakeCase(text) + "/)"; + var link = function(text) { + var matches = text.match(/(.+)\.(.+)/i), + className = text, + hash = ''; + + if (matches) { + className = matches[1]; + hash = matches[2]; + } + + if (apiData[className]) { + return "[" + text + "](" + path + "api/" + changeCase.snakeCase(className) + "/" + (hash ? "#" + hash : "") + ")"; + } else { + return text; + } + } + + var arrayMatches = text.match(/Array\.?<(.*)>/i); + + if (arrayMatches) { + return "Array<" + link(arrayMatches[1]) + ">"; } else { - return text; + return link(text); } } + var getReturnVariable = function(data) { + var returnName = ''; + if (data.return && data.return.type && + data.return.name != 'undefined' && data.return.name != 'void') { + returnName = convertReturnVariable(data.return.name); + } + + return returnName; + } + + var convertReturnVariable = function(text) { + var returnName = changeCase.camelCase(text.replace(/^\s+|\s+$/, '')), matches; + if (matches = text.match(/Array\.?<(.*)>/i)) { + returnName = changeCase.camelCase(matches[1]) + 's'; + } + + return returnName; + } + Object.keys(apiData).sort().forEach(function(item) { var data = apiData[item]; var pageBody = ""; @@ -71,17 +109,18 @@ var writeApiDocs = function(apiData, path) { pageBody += tags + "\n\n"; pageBody += "```js\n"; - var returnName = null; - if (fdata.return && fdata.return.type && - fdata.return.name != 'undefined' && fdata.return.name != 'void') { - returnName = fdata.return.name; - } + var returnName = getReturnVariable(fdata); if (fdata.isAsync) { - returnName = returnName || 'data'; pageBody += item + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) .join(", ") + ").then(function(" + returnName + ") {\n"; - pageBody += " // Use " + returnName + "\n"; + if (returnName) { + pageBody += " // Use " + returnName + "\n"; + } else if (fdata.return.description) { + pageBody += " // " + fdata.return.description + "\n"; + } else { + pageBody += " // method complete" + } pageBody += "});\n"; } else { if (returnName) { @@ -107,10 +146,20 @@ var writeApiDocs = function(apiData, path) { pageBody += "| " + param.name + " | " + types.join(', ') + " | " + (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; }); + pageBody += "\n"; + } + + if (fdata.fires.length) { + pageBody += "| Fires | Sends |\n"; + pageBody += "| --- | --- |\n"; + fdata.fires.forEach(function(fire) { + pageBody += "| " + fire.name + " | " + crossLink(fire.sends) + " |\n"; + }); + pageBody += "\n"; } - if (returnName) { - pageBody += "\n| Returns | |\n"; + if (returnName && fdata.return) { + pageBody += "| Returns | |\n"; pageBody += "| --- | --- |\n"; pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; } @@ -145,17 +194,18 @@ var writeApiDocs = function(apiData, path) { homeBody += "| " + linkToEntry(method, item, obj) + " | " + tags + " |\n"; - var returnName = null; - if (fdata.return && fdata.return.type && - fdata.return.name != 'undefined' && fdata.return.name != 'void') { - returnName = fdata.return.name; - } + var returnName = getReturnVariable(fdata); if (fdata.isAsync) { - returnName = returnName || 'data'; pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) .join(", ") + ").then(function(" + returnName + ") {\n"; - pageBody += " // Use " + returnName + "\n"; + if (returnName) { + pageBody += " // Use " + returnName + "\n"; + } else if (fdata.return.description) { + pageBody += " // " + fdata.return.description + "\n"; + } else { + pageBody += " // method complete" + } pageBody += "});\n"; } else { if (returnName) { @@ -163,6 +213,18 @@ var writeApiDocs = function(apiData, path) { } pageBody += changeCase.camelCase(item) + "." + obj + "(" + fdata.params.map(function(param) {return param.name}) .join(", ") + ");\n"; + + if (fdata.fires.length) { + fdata.fires.forEach(function(fire) { + pageBody += "\n" + returnName + ".on('" + fire.name + "', function(" + convertReturnVariable(fire.sends) + ") {\n"; + pageBody += " // Use " + convertReturnVariable(fire.sends) + "\n"; + pageBody += "});\n" + }); + + if (fdata.start) { + pageBody += "\n" + returnName + "." + fdata.start + "\n"; + } + } } pageBody += "```\n\n"; @@ -180,10 +242,20 @@ var writeApiDocs = function(apiData, path) { pageBody += "| " + param.name + " | " + types.join(', ') + " | " + (param.description || '').replace(/\n/g, '').replace(/\s+/g, ' ') + " |\n"; }); + pageBody += "\n"; + } + + if (fdata.fires.length) { + pageBody += "| Fires | Sends |\n"; + pageBody += "| --- | --- |\n"; + fdata.fires.forEach(function(fire) { + pageBody += "| " + fire.name + " | " + crossLink(fire.sends) + " |\n"; + }); + pageBody += "\n"; } - if (returnName) { - pageBody += "\n| Returns | |\n"; + if (returnName && fdata.return) { + pageBody += "| Returns | |\n"; pageBody += "| --- | --- |\n"; pageBody += "| " + crossLink(fdata.return.type) + " | " + fdata.return.description + " |\n\n"; } @@ -249,7 +321,6 @@ var writeApiDocs = function(apiData, path) { pageContent += "---\n\n"; pageContent += pageBody; - console.log("- Writing " + item); fs.outputFileSync('api/' + changeCase.snakeCase(item) + '/index.md', pageContent); } }); @@ -265,7 +336,6 @@ var writeApiDocs = function(apiData, path) { homeContent += "---\n\n"; homeContent += homeBody; - console.log("- Writing API Index") fs.outputFileSync('.' + path + 'api/index.md', homeContent); From 92497a37888f6f98613f5e3f60159bc569bec303 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Sun, 22 Feb 2015 21:57:26 -0500 Subject: [PATCH 11/24] Fix camel casing of struct fields --- api/blame_hunk/index.md | 16 +-- api/blame_options/index.md | 10 +- api/cert/index.md | 2 +- api/cert_hostkey/index.md | 6 +- api/cert_x509/index.md | 2 +- api/checkout_options/index.md | 28 ++-- api/cherrypick_options/index.md | 4 +- api/clone_options/index.md | 10 +- api/cvar_map/index.md | 6 +- api/describe_format_options/index.md | 6 +- api/describe_options/index.md | 8 +- api/diff_delta/index.md | 4 +- api/diff_hunk/index.md | 10 +- api/diff_line/index.md | 10 +- api/diff_options/index.md | 18 +-- api/diff_perfdata/index.md | 4 +- api/index.md | 200 +++++++++++++------------- api/index_entry/index.md | 4 +- api/merge_file_options/index.md | 6 +- api/merge_options/index.md | 6 +- api/push_options/index.md | 2 +- api/rebase_options/index.md | 2 +- api/remote_callbacks/index.md | 2 +- api/repository_init_options/index.md | 8 +- api/revert_options/index.md | 4 +- api/submodule_update_options/index.md | 6 +- api/transfer_progress/index.md | 14 +- api/tree_entry/index.md | 2 +- generate/lib/generated_data.js | 3 +- 29 files changed, 201 insertions(+), 202 deletions(-) diff --git a/api/blame_hunk/index.md b/api/blame_hunk/index.md index 21b9c1f..9e63dd8 100644 --- a/api/blame_hunk/index.md +++ b/api/blame_hunk/index.md @@ -14,12 +14,12 @@ sections: | Variable | Type | | --- | --- | -| final_commit_id | Oid | -| final_signature | Signature | -| final_start_line_number | Number | -| lines_in_hunk | Number | -| orig_commit_id | Oid | -| orig_path | String | -| orig_signature | Signature | -| orig_start_line_number | Number | +| finalCommitId | Oid | +| finalSignature | Signature | +| finalStartLineNumber | Number | +| linesInHunk | Number | +| origCommitId | Oid | +| origPath | String | +| origSignature | Signature | +| origStartLineNumber | Number | diff --git a/api/blame_options/index.md b/api/blame_options/index.md index c6019c6..207fb68 100644 --- a/api/blame_options/index.md +++ b/api/blame_options/index.md @@ -19,10 +19,10 @@ var blameOptions = new BlameOptions(); | Variable | Type | | --- | --- | | flags | Number | -| max_line | Number | -| min_line | Number | -| min_match_characters | Number | -| newest_commit | Oid | -| oldest_commit | Oid | +| maxLine | Number | +| minLine | Number | +| minMatchCharacters | Number | +| newestCommit | Oid | +| oldestCommit | Oid | | version | Number | diff --git a/api/cert/index.md b/api/cert/index.md index 2a974dd..c30e0e0 100644 --- a/api/cert/index.md +++ b/api/cert/index.md @@ -30,5 +30,5 @@ sections: | Variable | Type | | --- | --- | -| cert_type | Number | +| certType | Number | diff --git a/api/cert_hostkey/index.md b/api/cert_hostkey/index.md index 4f37bf7..bc94676 100644 --- a/api/cert_hostkey/index.md +++ b/api/cert_hostkey/index.md @@ -14,8 +14,8 @@ sections: | Variable | Type | | --- | --- | -| cert_type | Number | -| hash_md5 | Char [16] | -| hash_sha1 | Char [20] | +| certType | Number | +| hashMd5 | Char [16] | +| hashSha1 | Char [20] | | type | Number | diff --git a/api/cert_x509/index.md b/api/cert_x509/index.md index ab28564..1c7974a 100644 --- a/api/cert_x509/index.md +++ b/api/cert_x509/index.md @@ -14,7 +14,7 @@ sections: | Variable | Type | | --- | --- | -| cert_type | Number | +| certType | Number | | data | Buffer | | len | Number | diff --git a/api/checkout_options/index.md b/api/checkout_options/index.md index 7bd6894..c9c8b6b 100644 --- a/api/checkout_options/index.md +++ b/api/checkout_options/index.md @@ -18,21 +18,21 @@ var checkoutOptions = new CheckoutOptions(); | Variable | Type | | --- | --- | -| ancestor_label | String | +| ancestorLabel | String | | baseline | Tree | -| checkout_strategy | Number | -| dir_mode | Number | -| disable_filters | Number | -| file_mode | Number | -| file_open_flags | Number | -| notify_cb | CheckoutNotifyCb | -| notify_flags | Number | -| notify_payload | Void | -| our_label | String | +| checkoutStrategy | Number | +| dirMode | Number | +| disableFilters | Number | +| fileMode | Number | +| fileOpenFlags | Number | +| notifyCb | CheckoutNotifyCb | +| notifyFlags | Number | +| notifyPayload | Void | +| ourLabel | String | | paths | Strarray | -| progress_cb | CheckoutProgressCb | -| progress_payload | Void | -| target_directory | String | -| their_label | String | +| progressCb | CheckoutProgressCb | +| progressPayload | Void | +| targetDirectory | String | +| theirLabel | String | | version | Number | diff --git a/api/cherrypick_options/index.md b/api/cherrypick_options/index.md index 0ac11ec..0cf6e7f 100644 --- a/api/cherrypick_options/index.md +++ b/api/cherrypick_options/index.md @@ -18,8 +18,8 @@ var cherrypickOptions = new CherrypickOptions(); | Variable | Type | | --- | --- | -| checkout_opts | CheckoutOptions | +| checkoutOpts | CheckoutOptions | | mainline | Number | -| merge_opts | MergeOptions | +| mergeOpts | MergeOptions | | version | Number | diff --git a/api/clone_options/index.md b/api/clone_options/index.md index 9520341..165da6d 100644 --- a/api/clone_options/index.md +++ b/api/clone_options/index.md @@ -19,12 +19,12 @@ var cloneOptions = new CloneOptions(); | Variable | Type | | --- | --- | | bare | Number | -| checkout_branch | String | -| checkout_opts | CheckoutOptions | +| checkoutBranch | String | +| checkoutOpts | CheckoutOptions | | local | Number | -| remote_callbacks | RemoteCallbacks | -| remote_cb_payload | Void | -| repository_cb_payload | Void | +| remoteCallbacks | RemoteCallbacks | +| remoteCbPayload | Void | +| repositoryCbPayload | Void | | signature | Signature | | version | Number | diff --git a/api/cvar_map/index.md b/api/cvar_map/index.md index f95deac..017b356 100644 --- a/api/cvar_map/index.md +++ b/api/cvar_map/index.md @@ -14,7 +14,7 @@ sections: | Variable | Type | | --- | --- | -| cvar_type | Number | -| map_value | Number | -| str_match | String | +| cvarType | Number | +| mapValue | Number | +| strMatch | String | diff --git a/api/describe_format_options/index.md b/api/describe_format_options/index.md index 1c15835..0f57ba4 100644 --- a/api/describe_format_options/index.md +++ b/api/describe_format_options/index.md @@ -14,8 +14,8 @@ sections: | Variable | Type | | --- | --- | -| abbreviated_size | Number | -| always_use_long_format | Number | -| dirty_suffix | String | +| abbreviatedSize | Number | +| alwaysUseLongFormat | Number | +| dirtySuffix | String | | version | Number | diff --git a/api/describe_options/index.md b/api/describe_options/index.md index 660dd7e..361a229 100644 --- a/api/describe_options/index.md +++ b/api/describe_options/index.md @@ -14,10 +14,10 @@ sections: | Variable | Type | | --- | --- | -| describe_strategy | Number | -| max_candidates_tags | Number | -| only_follow_first_parent | Number | +| describeStrategy | Number | +| maxCandidatesTags | Number | +| onlyFollowFirstParent | Number | | pattern | String | -| show_commit_oid_as_fallback | Number | +| showCommitOidAsFallback | Number | | version | Number | diff --git a/api/diff_delta/index.md b/api/diff_delta/index.md index 1b51985..3a4990a 100644 --- a/api/diff_delta/index.md +++ b/api/diff_delta/index.md @@ -15,9 +15,9 @@ sections: | Variable | Type | | --- | --- | | flags | Number | -| new_file | DiffFile | +| newFile | DiffFile | | nfiles | Number | -| old_file | DiffFile | +| oldFile | DiffFile | | similarity | Number | | status | Number | diff --git a/api/diff_hunk/index.md b/api/diff_hunk/index.md index bd9efa6..5bc9c9b 100644 --- a/api/diff_hunk/index.md +++ b/api/diff_hunk/index.md @@ -15,9 +15,9 @@ sections: | Variable | Type | | --- | --- | | header | String | -| header_len | Number | -| new_lines | Number | -| new_start | Number | -| old_lines | Number | -| old_start | Number | +| headerLen | Number | +| newLines | Number | +| newStart | Number | +| oldLines | Number | +| oldStart | Number | diff --git a/api/diff_line/index.md b/api/diff_line/index.md index 8590157..9b9ca7e 100644 --- a/api/diff_line/index.md +++ b/api/diff_line/index.md @@ -15,10 +15,10 @@ sections: | Variable | Type | | --- | --- | | content | String | -| content_len | Number | -| content_offset | Number | -| new_lineno | Number | -| num_lines | Number | -| old_lineno | Number | +| contentLen | Number | +| contentOffset | Number | +| newLineno | Number | +| numLines | Number | +| oldLineno | Number | | origin | Number | diff --git a/api/diff_options/index.md b/api/diff_options/index.md index 5247a22..23e4dd3 100644 --- a/api/diff_options/index.md +++ b/api/diff_options/index.md @@ -18,16 +18,16 @@ var diffOptions = new DiffOptions(); | Variable | Type | | --- | --- | -| context_lines | Number | +| contextLines | Number | | flags | Number | -| id_abbrev | Number | -| ignore_submodules | Number | -| interhunk_lines | Number | -| max_size | Number | -| new_prefix | String | -| notify_cb | DiffNotifyCb | -| notify_payload | Void | -| old_prefix | String | +| idAbbrev | Number | +| ignoreSubmodules | Number | +| interhunkLines | Number | +| maxSize | Number | +| newPrefix | String | +| notifyCb | DiffNotifyCb | +| notifyPayload | Void | +| oldPrefix | String | | pathspec | Strarray | | version | Number | diff --git a/api/diff_perfdata/index.md b/api/diff_perfdata/index.md index b37e878..2a4decb 100644 --- a/api/diff_perfdata/index.md +++ b/api/diff_perfdata/index.md @@ -14,7 +14,7 @@ sections: | Variable | Type | | --- | --- | -| oid_calculations | Number | -| stat_calls | Number | +| oidCalculations | Number | +| statCalls | Number | | version | Number | diff --git a/api/index.md b/api/index.md index 82e5a33..fa290db 100644 --- a/api/index.md +++ b/api/index.md @@ -152,14 +152,14 @@ sections: | Instance Variables | | | --- | ---: | -| [BlameHunk#final_commit_id](/api/blame_hunk/#final_commit_id) | | -| [BlameHunk#final_signature](/api/blame_hunk/#final_signature) | | -| [BlameHunk#final_start_line_number](/api/blame_hunk/#final_start_line_number) | | -| [BlameHunk#lines_in_hunk](/api/blame_hunk/#lines_in_hunk) | | -| [BlameHunk#orig_commit_id](/api/blame_hunk/#orig_commit_id) | | -| [BlameHunk#orig_path](/api/blame_hunk/#orig_path) | | -| [BlameHunk#orig_signature](/api/blame_hunk/#orig_signature) | | -| [BlameHunk#orig_start_line_number](/api/blame_hunk/#orig_start_line_number) | | +| [BlameHunk#finalCommitId](/api/blame_hunk/#finalCommitId) | | +| [BlameHunk#finalSignature](/api/blame_hunk/#finalSignature) | | +| [BlameHunk#finalStartLineNumber](/api/blame_hunk/#finalStartLineNumber) | | +| [BlameHunk#linesInHunk](/api/blame_hunk/#linesInHunk) | | +| [BlameHunk#origCommitId](/api/blame_hunk/#origCommitId) | | +| [BlameHunk#origPath](/api/blame_hunk/#origPath) | | +| [BlameHunk#origSignature](/api/blame_hunk/#origSignature) | | +| [BlameHunk#origStartLineNumber](/api/blame_hunk/#origStartLineNumber) | | ## [BlameOptions](/api/blame_options/) @@ -167,11 +167,11 @@ sections: | Instance Variables | | | --- | ---: | | [BlameOptions#flags](/api/blame_options/#flags) | | -| [BlameOptions#max_line](/api/blame_options/#max_line) | | -| [BlameOptions#min_line](/api/blame_options/#min_line) | | -| [BlameOptions#min_match_characters](/api/blame_options/#min_match_characters) | | -| [BlameOptions#newest_commit](/api/blame_options/#newest_commit) | | -| [BlameOptions#oldest_commit](/api/blame_options/#oldest_commit) | | +| [BlameOptions#maxLine](/api/blame_options/#maxLine) | | +| [BlameOptions#minLine](/api/blame_options/#minLine) | | +| [BlameOptions#minMatchCharacters](/api/blame_options/#minMatchCharacters) | | +| [BlameOptions#newestCommit](/api/blame_options/#newestCommit) | | +| [BlameOptions#oldestCommit](/api/blame_options/#oldestCommit) | | | [BlameOptions#version](/api/blame_options/#version) | | @@ -242,16 +242,16 @@ sections: | Instance Variables | | | --- | ---: | -| [Cert#cert_type](/api/cert/#cert_type) | | +| [Cert#certType](/api/cert/#certType) | | ## [CertHostkey](/api/cert_hostkey/) | Instance Variables | | | --- | ---: | -| [CertHostkey#cert_type](/api/cert_hostkey/#cert_type) | | -| [CertHostkey#hash_md5](/api/cert_hostkey/#hash_md5) | | -| [CertHostkey#hash_sha1](/api/cert_hostkey/#hash_sha1) | | +| [CertHostkey#certType](/api/cert_hostkey/#certType) | | +| [CertHostkey#hashMd5](/api/cert_hostkey/#hashMd5) | | +| [CertHostkey#hashSha1](/api/cert_hostkey/#hashSha1) | | | [CertHostkey#type](/api/cert_hostkey/#type) | | @@ -259,7 +259,7 @@ sections: | Instance Variables | | | --- | ---: | -| [CertX509#cert_type](/api/cert_x509/#cert_type) | | +| [CertX509#certType](/api/cert_x509/#certType) | | | [CertX509#data](/api/cert_x509/#data) | | | [CertX509#len](/api/cert_x509/#len) | | @@ -282,22 +282,22 @@ sections: | Instance Variables | | | --- | ---: | -| [CheckoutOptions#ancestor_label](/api/checkout_options/#ancestor_label) | | +| [CheckoutOptions#ancestorLabel](/api/checkout_options/#ancestorLabel) | | | [CheckoutOptions#baseline](/api/checkout_options/#baseline) | | -| [CheckoutOptions#checkout_strategy](/api/checkout_options/#checkout_strategy) | | -| [CheckoutOptions#dir_mode](/api/checkout_options/#dir_mode) | | -| [CheckoutOptions#disable_filters](/api/checkout_options/#disable_filters) | | -| [CheckoutOptions#file_mode](/api/checkout_options/#file_mode) | | -| [CheckoutOptions#file_open_flags](/api/checkout_options/#file_open_flags) | | -| [CheckoutOptions#notify_cb](/api/checkout_options/#notify_cb) | | -| [CheckoutOptions#notify_flags](/api/checkout_options/#notify_flags) | | -| [CheckoutOptions#notify_payload](/api/checkout_options/#notify_payload) | | -| [CheckoutOptions#our_label](/api/checkout_options/#our_label) | | +| [CheckoutOptions#checkoutStrategy](/api/checkout_options/#checkoutStrategy) | | +| [CheckoutOptions#dirMode](/api/checkout_options/#dirMode) | | +| [CheckoutOptions#disableFilters](/api/checkout_options/#disableFilters) | | +| [CheckoutOptions#fileMode](/api/checkout_options/#fileMode) | | +| [CheckoutOptions#fileOpenFlags](/api/checkout_options/#fileOpenFlags) | | +| [CheckoutOptions#notifyCb](/api/checkout_options/#notifyCb) | | +| [CheckoutOptions#notifyFlags](/api/checkout_options/#notifyFlags) | | +| [CheckoutOptions#notifyPayload](/api/checkout_options/#notifyPayload) | | +| [CheckoutOptions#ourLabel](/api/checkout_options/#ourLabel) | | | [CheckoutOptions#paths](/api/checkout_options/#paths) | | -| [CheckoutOptions#progress_cb](/api/checkout_options/#progress_cb) | | -| [CheckoutOptions#progress_payload](/api/checkout_options/#progress_payload) | | -| [CheckoutOptions#target_directory](/api/checkout_options/#target_directory) | | -| [CheckoutOptions#their_label](/api/checkout_options/#their_label) | | +| [CheckoutOptions#progressCb](/api/checkout_options/#progressCb) | | +| [CheckoutOptions#progressPayload](/api/checkout_options/#progressPayload) | | +| [CheckoutOptions#targetDirectory](/api/checkout_options/#targetDirectory) | | +| [CheckoutOptions#theirLabel](/api/checkout_options/#theirLabel) | | | [CheckoutOptions#version](/api/checkout_options/#version) | | @@ -314,9 +314,9 @@ sections: | Instance Variables | | | --- | ---: | -| [CherrypickOptions#checkout_opts](/api/cherrypick_options/#checkout_opts) | | +| [CherrypickOptions#checkoutOpts](/api/cherrypick_options/#checkoutOpts) | | | [CherrypickOptions#mainline](/api/cherrypick_options/#mainline) | | -| [CherrypickOptions#merge_opts](/api/cherrypick_options/#merge_opts) | | +| [CherrypickOptions#mergeOpts](/api/cherrypick_options/#mergeOpts) | | | [CherrypickOptions#version](/api/cherrypick_options/#version) | | @@ -337,12 +337,12 @@ sections: | Instance Variables | | | --- | ---: | | [CloneOptions#bare](/api/clone_options/#bare) | | -| [CloneOptions#checkout_branch](/api/clone_options/#checkout_branch) | | -| [CloneOptions#checkout_opts](/api/clone_options/#checkout_opts) | | +| [CloneOptions#checkoutBranch](/api/clone_options/#checkoutBranch) | | +| [CloneOptions#checkoutOpts](/api/clone_options/#checkoutOpts) | | | [CloneOptions#local](/api/clone_options/#local) | | -| [CloneOptions#remote_callbacks](/api/clone_options/#remote_callbacks) | | -| [CloneOptions#remote_cb_payload](/api/clone_options/#remote_cb_payload) | | -| [CloneOptions#repository_cb_payload](/api/clone_options/#repository_cb_payload) | | +| [CloneOptions#remoteCallbacks](/api/clone_options/#remoteCallbacks) | | +| [CloneOptions#remoteCbPayload](/api/clone_options/#remoteCbPayload) | | +| [CloneOptions#repositoryCbPayload](/api/clone_options/#repositoryCbPayload) | | | [CloneOptions#signature](/api/clone_options/#signature) | | | [CloneOptions#version](/api/clone_options/#version) | | @@ -478,18 +478,18 @@ sections: | Instance Variables | | | --- | ---: | -| [CvarMap#cvar_type](/api/cvar_map/#cvar_type) | | -| [CvarMap#map_value](/api/cvar_map/#map_value) | | -| [CvarMap#str_match](/api/cvar_map/#str_match) | | +| [CvarMap#cvarType](/api/cvar_map/#cvarType) | | +| [CvarMap#mapValue](/api/cvar_map/#mapValue) | | +| [CvarMap#strMatch](/api/cvar_map/#strMatch) | | ## [DescribeFormatOptions](/api/describe_format_options/) | Instance Variables | | | --- | ---: | -| [DescribeFormatOptions#abbreviated_size](/api/describe_format_options/#abbreviated_size) | | -| [DescribeFormatOptions#always_use_long_format](/api/describe_format_options/#always_use_long_format) | | -| [DescribeFormatOptions#dirty_suffix](/api/describe_format_options/#dirty_suffix) | | +| [DescribeFormatOptions#abbreviatedSize](/api/describe_format_options/#abbreviatedSize) | | +| [DescribeFormatOptions#alwaysUseLongFormat](/api/describe_format_options/#alwaysUseLongFormat) | | +| [DescribeFormatOptions#dirtySuffix](/api/describe_format_options/#dirtySuffix) | | | [DescribeFormatOptions#version](/api/describe_format_options/#version) | | @@ -497,11 +497,11 @@ sections: | Instance Variables | | | --- | ---: | -| [DescribeOptions#describe_strategy](/api/describe_options/#describe_strategy) | | -| [DescribeOptions#max_candidates_tags](/api/describe_options/#max_candidates_tags) | | -| [DescribeOptions#only_follow_first_parent](/api/describe_options/#only_follow_first_parent) | | +| [DescribeOptions#describeStrategy](/api/describe_options/#describeStrategy) | | +| [DescribeOptions#maxCandidatesTags](/api/describe_options/#maxCandidatesTags) | | +| [DescribeOptions#onlyFollowFirstParent](/api/describe_options/#onlyFollowFirstParent) | | | [DescribeOptions#pattern](/api/describe_options/#pattern) | | -| [DescribeOptions#show_commit_oid_as_fallback](/api/describe_options/#show_commit_oid_as_fallback) | | +| [DescribeOptions#showCommitOidAsFallback](/api/describe_options/#showCommitOidAsFallback) | | | [DescribeOptions#version](/api/describe_options/#version) | | @@ -539,9 +539,9 @@ sections: | Instance Variables | | | --- | ---: | | [DiffDelta#flags](/api/diff_delta/#flags) | | -| [DiffDelta#new_file](/api/diff_delta/#new_file) | | +| [DiffDelta#newFile](/api/diff_delta/#newFile) | | | [DiffDelta#nfiles](/api/diff_delta/#nfiles) | | -| [DiffDelta#old_file](/api/diff_delta/#old_file) | | +| [DiffDelta#oldFile](/api/diff_delta/#oldFile) | | | [DiffDelta#similarity](/api/diff_delta/#similarity) | | | [DiffDelta#status](/api/diff_delta/#status) | | @@ -562,11 +562,11 @@ sections: | Instance Variables | | | --- | ---: | | [DiffHunk#header](/api/diff_hunk/#header) | | -| [DiffHunk#header_len](/api/diff_hunk/#header_len) | | -| [DiffHunk#new_lines](/api/diff_hunk/#new_lines) | | -| [DiffHunk#new_start](/api/diff_hunk/#new_start) | | -| [DiffHunk#old_lines](/api/diff_hunk/#old_lines) | | -| [DiffHunk#old_start](/api/diff_hunk/#old_start) | | +| [DiffHunk#headerLen](/api/diff_hunk/#headerLen) | | +| [DiffHunk#newLines](/api/diff_hunk/#newLines) | | +| [DiffHunk#newStart](/api/diff_hunk/#newStart) | | +| [DiffHunk#oldLines](/api/diff_hunk/#oldLines) | | +| [DiffHunk#oldStart](/api/diff_hunk/#oldStart) | | ## [DiffLine](/api/diff_line/) @@ -574,11 +574,11 @@ sections: | Instance Variables | | | --- | ---: | | [DiffLine#content](/api/diff_line/#content) | | -| [DiffLine#content_len](/api/diff_line/#content_len) | | -| [DiffLine#content_offset](/api/diff_line/#content_offset) | | -| [DiffLine#new_lineno](/api/diff_line/#new_lineno) | | -| [DiffLine#num_lines](/api/diff_line/#num_lines) | | -| [DiffLine#old_lineno](/api/diff_line/#old_lineno) | | +| [DiffLine#contentLen](/api/diff_line/#contentLen) | | +| [DiffLine#contentOffset](/api/diff_line/#contentOffset) | | +| [DiffLine#newLineno](/api/diff_line/#newLineno) | | +| [DiffLine#numLines](/api/diff_line/#numLines) | | +| [DiffLine#oldLineno](/api/diff_line/#oldLineno) | | | [DiffLine#origin](/api/diff_line/#origin) | | @@ -586,16 +586,16 @@ sections: | Instance Variables | | | --- | ---: | -| [DiffOptions#context_lines](/api/diff_options/#context_lines) | | +| [DiffOptions#contextLines](/api/diff_options/#contextLines) | | | [DiffOptions#flags](/api/diff_options/#flags) | | -| [DiffOptions#id_abbrev](/api/diff_options/#id_abbrev) | | -| [DiffOptions#ignore_submodules](/api/diff_options/#ignore_submodules) | | -| [DiffOptions#interhunk_lines](/api/diff_options/#interhunk_lines) | | -| [DiffOptions#max_size](/api/diff_options/#max_size) | | -| [DiffOptions#new_prefix](/api/diff_options/#new_prefix) | | -| [DiffOptions#notify_cb](/api/diff_options/#notify_cb) | | -| [DiffOptions#notify_payload](/api/diff_options/#notify_payload) | | -| [DiffOptions#old_prefix](/api/diff_options/#old_prefix) | | +| [DiffOptions#idAbbrev](/api/diff_options/#idAbbrev) | | +| [DiffOptions#ignoreSubmodules](/api/diff_options/#ignoreSubmodules) | | +| [DiffOptions#interhunkLines](/api/diff_options/#interhunkLines) | | +| [DiffOptions#maxSize](/api/diff_options/#maxSize) | | +| [DiffOptions#newPrefix](/api/diff_options/#newPrefix) | | +| [DiffOptions#notifyCb](/api/diff_options/#notifyCb) | | +| [DiffOptions#notifyPayload](/api/diff_options/#notifyPayload) | | +| [DiffOptions#oldPrefix](/api/diff_options/#oldPrefix) | | | [DiffOptions#pathspec](/api/diff_options/#pathspec) | | | [DiffOptions#version](/api/diff_options/#version) | | @@ -604,8 +604,8 @@ sections: | Instance Variables | | | --- | ---: | -| [DiffPerfdata#oid_calculations](/api/diff_perfdata/#oid_calculations) | | -| [DiffPerfdata#stat_calls](/api/diff_perfdata/#stat_calls) | | +| [DiffPerfdata#oidCalculations](/api/diff_perfdata/#oidCalculations) | | +| [DiffPerfdata#statCalls](/api/diff_perfdata/#statCalls) | | | [DiffPerfdata#version](/api/diff_perfdata/#version) | | @@ -747,9 +747,9 @@ sections: | --- | ---: | | [IndexEntry#ctime](/api/index_entry/#ctime) | | | [IndexEntry#dev](/api/index_entry/#dev) | | -| [IndexEntry#file_size](/api/index_entry/#file_size) | | +| [IndexEntry#fileSize](/api/index_entry/#fileSize) | | | [IndexEntry#flags](/api/index_entry/#flags) | | -| [IndexEntry#flags_extended](/api/index_entry/#flags_extended) | | +| [IndexEntry#flagsExtended](/api/index_entry/#flagsExtended) | | | [IndexEntry#gid](/api/index_entry/#gid) | | | [IndexEntry#id](/api/index_entry/#id) | | | [IndexEntry#ino](/api/index_entry/#ino) | | @@ -826,11 +826,11 @@ sections: | Instance Variables | | | --- | ---: | -| [MergeFileOptions#ancestor_label](/api/merge_file_options/#ancestor_label) | | +| [MergeFileOptions#ancestorLabel](/api/merge_file_options/#ancestorLabel) | | | [MergeFileOptions#favor](/api/merge_file_options/#favor) | | | [MergeFileOptions#flags](/api/merge_file_options/#flags) | | -| [MergeFileOptions#our_label](/api/merge_file_options/#our_label) | | -| [MergeFileOptions#their_label](/api/merge_file_options/#their_label) | | +| [MergeFileOptions#ourLabel](/api/merge_file_options/#ourLabel) | | +| [MergeFileOptions#theirLabel](/api/merge_file_options/#theirLabel) | | | [MergeFileOptions#version](/api/merge_file_options/#version) | | @@ -849,10 +849,10 @@ sections: | Instance Variables | | | --- | ---: | -| [MergeOptions#file_favor](/api/merge_options/#file_favor) | | +| [MergeOptions#fileFavor](/api/merge_options/#fileFavor) | | | [MergeOptions#flags](/api/merge_options/#flags) | | -| [MergeOptions#rename_threshold](/api/merge_options/#rename_threshold) | | -| [MergeOptions#target_limit](/api/merge_options/#target_limit) | | +| [MergeOptions#renameThreshold](/api/merge_options/#renameThreshold) | | +| [MergeOptions#targetLimit](/api/merge_options/#targetLimit) | | | [MergeOptions#version](/api/merge_options/#version) | | @@ -1035,7 +1035,7 @@ sections: | Instance Variables | | | --- | ---: | -| [PushOptions#pb_parallelism](/api/push_options/#pb_parallelism) | | +| [PushOptions#pbParallelism](/api/push_options/#pbParallelism) | | | [PushOptions#version](/api/push_options/#version) | | @@ -1075,7 +1075,7 @@ sections: | Instance Variables | | | --- | ---: | | [RebaseOptions#quiet](/api/rebase_options/#quiet) | | -| [RebaseOptions#rewrite_notes_ref](/api/rebase_options/#rewrite_notes_ref) | | +| [RebaseOptions#rewriteNotesRef](/api/rebase_options/#rewriteNotesRef) | | | [RebaseOptions#version](/api/rebase_options/#version) | | @@ -1233,7 +1233,7 @@ sections: | Instance Variables | | | --- | ---: | -| [RemoteCallbacks#certificate_check](/api/remote_callbacks/#certificate_check) | | +| [RemoteCallbacks#certificateCheck](/api/remote_callbacks/#certificateCheck) | | | [RemoteCallbacks#credentials](/api/remote_callbacks/#credentials) | | | [RemoteCallbacks#payload](/api/remote_callbacks/#payload) | | | [RemoteCallbacks#version](/api/remote_callbacks/#version) | | @@ -1302,12 +1302,12 @@ sections: | --- | ---: | | [RepositoryInitOptions#description](/api/repository_init_options/#description) | | | [RepositoryInitOptions#flags](/api/repository_init_options/#flags) | | -| [RepositoryInitOptions#initial_head](/api/repository_init_options/#initial_head) | | +| [RepositoryInitOptions#initialHead](/api/repository_init_options/#initialHead) | | | [RepositoryInitOptions#mode](/api/repository_init_options/#mode) | | -| [RepositoryInitOptions#origin_url](/api/repository_init_options/#origin_url) | | -| [RepositoryInitOptions#template_path](/api/repository_init_options/#template_path) | | +| [RepositoryInitOptions#originUrl](/api/repository_init_options/#originUrl) | | +| [RepositoryInitOptions#templatePath](/api/repository_init_options/#templatePath) | | | [RepositoryInitOptions#version](/api/repository_init_options/#version) | | -| [RepositoryInitOptions#workdir_path](/api/repository_init_options/#workdir_path) | | +| [RepositoryInitOptions#workdirPath](/api/repository_init_options/#workdirPath) | | ## [Reset](/api/reset/) @@ -1333,9 +1333,9 @@ sections: | Instance Variables | | | --- | ---: | -| [RevertOptions#checkout_opts](/api/revert_options/#checkout_opts) | | +| [RevertOptions#checkoutOpts](/api/revert_options/#checkoutOpts) | | | [RevertOptions#mainline](/api/revert_options/#mainline) | | -| [RevertOptions#merge_opts](/api/revert_options/#merge_opts) | | +| [RevertOptions#mergeOpts](/api/revert_options/#mergeOpts) | | | [RevertOptions#version](/api/revert_options/#version) | | @@ -1512,9 +1512,9 @@ sections: | Instance Variables | | | --- | ---: | -| [SubmoduleUpdateOptions#checkout_opts](/api/submodule_update_options/#checkout_opts) | | -| [SubmoduleUpdateOptions#clone_checkout_strategy](/api/submodule_update_options/#clone_checkout_strategy) | | -| [SubmoduleUpdateOptions#remote_callbacks](/api/submodule_update_options/#remote_callbacks) | | +| [SubmoduleUpdateOptions#checkoutOpts](/api/submodule_update_options/#checkoutOpts) | | +| [SubmoduleUpdateOptions#cloneCheckoutStrategy](/api/submodule_update_options/#cloneCheckoutStrategy) | | +| [SubmoduleUpdateOptions#remoteCallbacks](/api/submodule_update_options/#remoteCallbacks) | | | [SubmoduleUpdateOptions#signature](/api/submodule_update_options/#signature) | | | [SubmoduleUpdateOptions#version](/api/submodule_update_options/#version) | | @@ -1566,13 +1566,13 @@ sections: | Instance Variables | | | --- | ---: | -| [TransferProgress#indexed_deltas](/api/transfer_progress/#indexed_deltas) | | -| [TransferProgress#indexed_objects](/api/transfer_progress/#indexed_objects) | | -| [TransferProgress#local_objects](/api/transfer_progress/#local_objects) | | -| [TransferProgress#received_bytes](/api/transfer_progress/#received_bytes) | | -| [TransferProgress#received_objects](/api/transfer_progress/#received_objects) | | -| [TransferProgress#total_deltas](/api/transfer_progress/#total_deltas) | | -| [TransferProgress#total_objects](/api/transfer_progress/#total_objects) | | +| [TransferProgress#indexedDeltas](/api/transfer_progress/#indexedDeltas) | | +| [TransferProgress#indexedObjects](/api/transfer_progress/#indexedObjects) | | +| [TransferProgress#localObjects](/api/transfer_progress/#localObjects) | | +| [TransferProgress#receivedBytes](/api/transfer_progress/#receivedBytes) | | +| [TransferProgress#receivedObjects](/api/transfer_progress/#receivedObjects) | | +| [TransferProgress#totalDeltas](/api/transfer_progress/#totalDeltas) | | +| [TransferProgress#totalObjects](/api/transfer_progress/#totalObjects) | | ## [Transport](/api/transport/) @@ -1650,7 +1650,7 @@ sections: | --- | ---: | | [TreeEntry#attr](/api/tree_entry/#attr) | | | [TreeEntry#filename](/api/tree_entry/#filename) | | -| [TreeEntry#filename_len](/api/tree_entry/#filename_len) | | +| [TreeEntry#filenameLen](/api/tree_entry/#filenameLen) | | | [TreeEntry#oid](/api/tree_entry/#oid) | | diff --git a/api/index_entry/index.md b/api/index_entry/index.md index a67d6e1..56b3c84 100644 --- a/api/index_entry/index.md +++ b/api/index_entry/index.md @@ -16,9 +16,9 @@ sections: | --- | --- | | ctime | IndexTime | | dev | Number | -| file_size | Number | +| fileSize | Number | | flags | Number | -| flags_extended | Number | +| flagsExtended | Number | | gid | Number | | id | Oid | | ino | Number | diff --git a/api/merge_file_options/index.md b/api/merge_file_options/index.md index bf8fcb3..8cac6ef 100644 --- a/api/merge_file_options/index.md +++ b/api/merge_file_options/index.md @@ -18,10 +18,10 @@ var mergeFileOptions = new MergeFileOptions(); | Variable | Type | | --- | --- | -| ancestor_label | String | +| ancestorLabel | String | | favor | Number | | flags | Number | -| our_label | String | -| their_label | String | +| ourLabel | String | +| theirLabel | String | | version | Number | diff --git a/api/merge_options/index.md b/api/merge_options/index.md index 73867ca..8548ae0 100644 --- a/api/merge_options/index.md +++ b/api/merge_options/index.md @@ -18,9 +18,9 @@ var mergeOptions = new MergeOptions(); | Variable | Type | | --- | --- | -| file_favor | Number | +| fileFavor | Number | | flags | Number | -| rename_threshold | Number | -| target_limit | Number | +| renameThreshold | Number | +| targetLimit | Number | | version | Number | diff --git a/api/push_options/index.md b/api/push_options/index.md index 97050d9..e16c707 100644 --- a/api/push_options/index.md +++ b/api/push_options/index.md @@ -18,6 +18,6 @@ var pushOptions = new PushOptions(); | Variable | Type | | --- | --- | -| pb_parallelism | Number | +| pbParallelism | Number | | version | Number | diff --git a/api/rebase_options/index.md b/api/rebase_options/index.md index c1c5deb..9260bec 100644 --- a/api/rebase_options/index.md +++ b/api/rebase_options/index.md @@ -19,6 +19,6 @@ var rebaseOptions = new RebaseOptions(); | Variable | Type | | --- | --- | | quiet | Number | -| rewrite_notes_ref | String | +| rewriteNotesRef | String | | version | Number | diff --git a/api/remote_callbacks/index.md b/api/remote_callbacks/index.md index bc7c546..ebfff08 100644 --- a/api/remote_callbacks/index.md +++ b/api/remote_callbacks/index.md @@ -18,7 +18,7 @@ var remoteCallbacks = new RemoteCallbacks(); | Variable | Type | | --- | --- | -| certificate_check | TransportCertificateCheckCb | +| certificateCheck | TransportCertificateCheckCb | | credentials | CredAcquireCb | | payload | Void | | version | Number | diff --git a/api/repository_init_options/index.md b/api/repository_init_options/index.md index d07bbac..2b4b63e 100644 --- a/api/repository_init_options/index.md +++ b/api/repository_init_options/index.md @@ -20,10 +20,10 @@ var repositoryInitOptions = new RepositoryInitOptions(); | --- | --- | | description | String | | flags | Number | -| initial_head | String | +| initialHead | String | | mode | Number | -| origin_url | String | -| template_path | String | +| originUrl | String | +| templatePath | String | | version | Number | -| workdir_path | String | +| workdirPath | String | diff --git a/api/revert_options/index.md b/api/revert_options/index.md index 849ea77..8017a44 100644 --- a/api/revert_options/index.md +++ b/api/revert_options/index.md @@ -18,8 +18,8 @@ var revertOptions = new RevertOptions(); | Variable | Type | | --- | --- | -| checkout_opts | CheckoutOptions | +| checkoutOpts | CheckoutOptions | | mainline | Number | -| merge_opts | MergeOptions | +| mergeOpts | MergeOptions | | version | Number | diff --git a/api/submodule_update_options/index.md b/api/submodule_update_options/index.md index aac2d6a..114dd00 100644 --- a/api/submodule_update_options/index.md +++ b/api/submodule_update_options/index.md @@ -14,9 +14,9 @@ sections: | Variable | Type | | --- | --- | -| checkout_opts | CheckoutOptions | -| clone_checkout_strategy | Number | -| remote_callbacks | RemoteCallbacks | +| checkoutOpts | CheckoutOptions | +| cloneCheckoutStrategy | Number | +| remoteCallbacks | RemoteCallbacks | | signature | Signature | | version | Number | diff --git a/api/transfer_progress/index.md b/api/transfer_progress/index.md index 1b39165..8d69218 100644 --- a/api/transfer_progress/index.md +++ b/api/transfer_progress/index.md @@ -14,11 +14,11 @@ sections: | Variable | Type | | --- | --- | -| indexed_deltas | Number | -| indexed_objects | Number | -| local_objects | Number | -| received_bytes | Number | -| received_objects | Number | -| total_deltas | Number | -| total_objects | Number | +| indexedDeltas | Number | +| indexedObjects | Number | +| localObjects | Number | +| receivedBytes | Number | +| receivedObjects | Number | +| totalDeltas | Number | +| totalObjects | Number | diff --git a/api/tree_entry/index.md b/api/tree_entry/index.md index a65b7a5..206dbc7 100644 --- a/api/tree_entry/index.md +++ b/api/tree_entry/index.md @@ -145,6 +145,6 @@ Alias for `path` | --- | --- | | attr | Number | | filename | String | -| filename_len | Number | +| filenameLen | Number | | oid | Oid | diff --git a/generate/lib/generated_data.js b/generate/lib/generated_data.js index 47e4582..c02fc50 100644 --- a/generate/lib/generated_data.js +++ b/generate/lib/generated_data.js @@ -82,9 +82,8 @@ var generatedData = function(path, missingTestsPath) { obj.constructors[func.jsFunctionName] = data } }); - item.fields.forEach(function(field) { - obj.fields[field.name] = field.jsClassName; + obj.fields[field.jsFunctionName] = field.jsClassName; }); break; case 'enum': From e814a4c4df7e4b28bf3f7f18a982378773865a44 Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Sat, 28 Feb 2015 20:50:00 -0500 Subject: [PATCH 12/24] Integrating Guides --- generate/index.js | 16 +++ guides/cloning/gh-two-factor/index.js | 48 +++++++++ guides/cloning/gh-two-factor/index.md | 126 +++++++++++++++++++++++ guides/cloning/http/index.js | 38 +++++++ guides/cloning/http/index.md | 132 +++++++++++++++++++++++++ guides/cloning/index.md | 27 +++++ guides/cloning/ssh-with-agent/index.md | 0 guides/index.md | 9 ++ guides/install/index.md | 44 +++++++++ index.md | 2 + package.json | 1 + 11 files changed, 443 insertions(+) create mode 100644 guides/cloning/gh-two-factor/index.js create mode 100644 guides/cloning/gh-two-factor/index.md create mode 100644 guides/cloning/http/index.js create mode 100644 guides/cloning/http/index.md create mode 100644 guides/cloning/index.md create mode 100644 guides/cloning/ssh-with-agent/index.md create mode 100644 guides/index.md create mode 100644 guides/install/index.md diff --git a/generate/index.js b/generate/index.js index c4570de..139c0df 100644 --- a/generate/index.js +++ b/generate/index.js @@ -1,3 +1,7 @@ +var fs = require('fs'); +var path = require('path'); +var fse = require('fs-extra'); +var glob = require('glob').sync; var generatedData = require('./lib/generated_data'); var writeApiDocs = require('./lib/write_api_docs'); var addConvenienceMethods = require('./lib/add_convenience_methods.js'); @@ -11,3 +15,15 @@ var fullData; addConvenienceMethods(baseData).then(function(fullData) { writeApiDocs(fullData); }); + +// Copy convenience methods in. +fse.removeSync('guides'); +fse.copySync('generate/nodegit/guides/', 'guides'); + +glob('guides/**/README.md').forEach(function(file) { + var dir = path.dirname(file); + var filename = path.basename(file); + + // Rename README.md => index.md + fs.renameSync(file, dir + "/" + 'index.md'); +}); diff --git a/guides/cloning/gh-two-factor/index.js b/guides/cloning/gh-two-factor/index.js new file mode 100644 index 0000000..52ae8b2 --- /dev/null +++ b/guides/cloning/gh-two-factor/index.js @@ -0,0 +1,48 @@ +// Require in NodeGit, since we want to use the local copy, we're using a +// relative path. In your project, you will use: +// +// var NodeGit = require('nodegit'); +var Git = require('../../../'); + +// To clone with two factor auth enabled, you have to use a GitHub OAuth token +// over HTTPS. +var GITHUB_TOKEN = ''; + +// Using the `clone` method from the `Git.Clone` module, bring down the NodeGit +// test repository from GitHub. +var cloneURL = 'https://github.com/nodegit/private'; + +// Ensure that the `tmp` directory is local to this file and not the CWD. +var localPath = require('path').join(__dirname, 'tmp'); + +// Simple object to store clone options. +var cloneOptions = {}; + +// This is a required callback for OS X machines. There is a known issue +// with libgit2 being able to verify certificates from GitHub. +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; }, + credentials: function() { + return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, 'x-oauth-basic'); + } +}; + +// Invoke the clone operation and store the returned Promise. +var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); + +// If the repository already exists, the clone above will fail. You can simply +// open the repository in this case to continue execution. +var errorAndAttemptOpen = function() { + return Git.Repository.open(localPath); +}; + +// Once the repository has been cloned or opened, you can work with a returned +// `Git.Repository` instance. +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log('Is the repository bare? %s', Boolean(repository.isBare())); + }) + .catch(function(ex) { + console.log(ex, ex.stack); + }); diff --git a/guides/cloning/gh-two-factor/index.md b/guides/cloning/gh-two-factor/index.md new file mode 100644 index 0000000..2fa926b --- /dev/null +++ b/guides/cloning/gh-two-factor/index.md @@ -0,0 +1,126 @@ +Cloning +======= + +**In order to run examples, you will need to [Install NodeGit](../../install) +first.** + +[Return to cloning examples](../) + +HTTP/HTTPS clone +---------------- + +This guide explains how to clone a repository, and in the case of failure, +attempt to open the existing path. + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var Git = require('../../../'); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var Git = require('nodegit'); +``` + +### Clone URL + +The first argument to the `clone` method is a URL. + +In this example we're going to clone one of our test repositories from GitHub. +You could easily substitute this with any valid http or https Git repository +URL. + +``` javascript +var cloneURL = 'https://github.com/nodegit/test'; +``` + +### Clone path + +The second argument to the `clone` method is a path. + +Ideally your application will clone a repository into the same folder path +regardless of how or where you execute it from. Paths are relative to the +current working directory in NodeGit, so you will need to normalize it first. + +This is very simple in Node: + +``` javascript +var localPath = require('path').join(__dirname, 'tmp'); +``` + +Now this `tmp` directory will be created along side your script, no matter how +or where you execute it from. + +### Clone options + +The third argument to the `clone` method is an optional simple object. + +``` javascript +var cloneOptions = {}; +``` + +#### GitHub certificate issue in OS X + +Unfortunately in OS X there is a problem where libgit2 is unable to look up +GitHub certificates correctly. In order to bypass this problem, we're going +to bypass the certificate check. + +*Note: this is not a problem with Windows or Linux* + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; } +}; +``` + +### Invoking the clone method + +The way NodeGit is structured is that all [libgit2](http://libgit2.org) C +methods are dynamically generated into C++. Since we're taking a +class-oriented approach, we make a top level class named `Clone`. This class +has a static method `clone` that we can use to bring down a repository. + +While it may look a bit verbose, it is symptomatic of a rigid convention. + +``` javascript +var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +``` + +Notice how we store the return value from `Clone.clone`. This is a [Promise]() +to represent the asynchronous operation. It offers finer control flow by +allowing us to capture errors and fallback if there is a clone failure. + +### Handling clone failure + +A naive way to handle a clone failure is to try opening the same path. Clones +will most commonly fail when the directory already exists. We can define +a function to attempt opening in this case. + +``` javascript +var errorAndAttemptOpen = function() { + return Git.Repository.open(local); +}; +``` + +This will be called as part of the Promise resolution in the final step. + +### The Promise chain + +Lastly in our clone operation, we'll assemble a Promise chain to handle errors +and work with the `Git.Repository` instance result. + +``` javascript +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log('Is the repository bare? %s', Boolean(repository.isBare())); + }); +``` + diff --git a/guides/cloning/http/index.js b/guides/cloning/http/index.js new file mode 100644 index 0000000..4545ef8 --- /dev/null +++ b/guides/cloning/http/index.js @@ -0,0 +1,38 @@ +// Require in NodeGit, since we want to use the local copy, we're using a +// relative path. In your project, you will use: +// +// var NodeGit = require('nodegit'); +var Git = require('../../../'); + +// Using the `clone` method from the `Git.Clone` module, bring down the NodeGit +// test repository from GitHub. +var cloneURL = 'https://github.com/nodegit/test'; + +// Ensure that the `tmp` directory is local to this file and not the CWD. +var localPath = require('path').join(__dirname, 'tmp'); + +// Simple object to store clone options. +var cloneOptions = {}; + +// This is a required callback for OS X machines. There is a known issue +// with libgit2 being able to verify certificates from GitHub. +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; } +}; + +// Invoke the clone operation and store the returned Promise. +var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); + +// If the repository already exists, the clone above will fail. You can simply +// open the repository in this case to continue execution. +var errorAndAttemptOpen = function() { + return Git.Repository.open(localPath); +}; + +// Once the repository has been cloned or opened, you can work with a returned +// `Git.Repository` instance. +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log('Is the repository bare? %s', Boolean(repository.isBare())); + }); diff --git a/guides/cloning/http/index.md b/guides/cloning/http/index.md new file mode 100644 index 0000000..dd9b6b9 --- /dev/null +++ b/guides/cloning/http/index.md @@ -0,0 +1,132 @@ +--- +layout: default +menu_item: guides +return_to: + "Clone": ../ + "All Guides": ../../ +title: HTTP Clone Guide +description: How to clone with HTTP +--- + +**In order to run examples, you will need to [Install NodeGit](../../install) +first.** + +[Return to cloning examples](../) + +HTTP/HTTPS clone +---------------- + +This guide explains how to clone a repository, and in the case of failure, +attempt to open the existing path. + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var Git = require('../../../'); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var Git = require('nodegit'); +``` + +### Clone URL + +The first argument to the `clone` method is a URL. + +In this example we're going to clone one of our test repositories from GitHub. +You could easily substitute this with any valid http or https Git repository +URL. + +``` javascript +var cloneURL = 'https://github.com/nodegit/test'; +``` + +### Clone path + +The second argument to the `clone` method is a path. + +Ideally your application will clone a repository into the same folder path +regardless of how or where you execute it from. Paths are relative to the +current working directory in NodeGit, so you will need to normalize it first. + +This is very simple in Node: + +``` javascript +var localPath = require('path').join(__dirname, 'tmp'); +``` + +Now this `tmp` directory will be created along side your script, no matter how +or where you execute it from. + +### Clone options + +The third argument to the `clone` method is an optional simple object. + +``` javascript +var cloneOptions = {}; +``` + +#### GitHub certificate issue in OS X + +Unfortunately in OS X there is a problem where libgit2 is unable to look up +GitHub certificates correctly. In order to bypass this problem, we're going +to bypass the certificate check. + +*Note: this is not a problem with Windows or Linux* + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; } +}; +``` + +### Invoking the clone method + +The way NodeGit is structured is that all [libgit2](http://libgit2.org) C +methods are dynamically generated into C++. Since we're taking a +class-oriented approach, we make a top level class named `Clone`. This class +has a static method `clone` that we can use to bring down a repository. + +While it may look a bit verbose, it is symptomatic of a rigid convention. + +``` javascript +var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +``` + +Notice how we store the return value from `Clone.clone`. This is a [Promise]() +to represent the asynchronous operation. It offers finer control flow by +allowing us to capture errors and fallback if there is a clone failure. + +### Handling clone failure + +A naive way to handle a clone failure is to try opening the same path. Clones +will most commonly fail when the directory already exists. We can define +a function to attempt opening in this case. + +``` javascript +var errorAndAttemptOpen = function() { + return Git.Repository.open(local); +}; +``` + +This will be called as part of the Promise resolution in the final step. + +### The Promise chain + +Lastly in our clone operation, we'll assemble a Promise chain to handle errors +and work with the `Git.Repository` instance result. + +``` javascript +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log('Is the repository bare? %s', Boolean(repository.isBare())); + }); +``` diff --git a/guides/cloning/index.md b/guides/cloning/index.md new file mode 100644 index 0000000..f788d59 --- /dev/null +++ b/guides/cloning/index.md @@ -0,0 +1,27 @@ +--- +layout: default +menu_item: guides +return_to: + "All Guides": ../ +title: Cloning Guides +description: How to clone repositories +--- + +### [HTTP/HTTPS clone](http/) + + > Emulates `git clone https://github.com/nodegit/test` + + For cloning HTTP or HTTPS repositories from servers like GitHub. + +### [SSH w/ Agent](ssh-with-agent/) + + > Emulates `git clone git@github.com:nodegit/test` + + For cloning SSH repositories using an SSH agent. + +### [GitHub Two Factor Auth](gh-two-factor/) + + > Emulates `git clone https://gh-token:-oauth-basic@github.com/nodegit/test` + + For cloning repositories from GitHub when two-factor authorization is + enabled. diff --git a/guides/cloning/ssh-with-agent/index.md b/guides/cloning/ssh-with-agent/index.md new file mode 100644 index 0000000..e69de29 diff --git a/guides/index.md b/guides/index.md new file mode 100644 index 0000000..46221d1 --- /dev/null +++ b/guides/index.md @@ -0,0 +1,9 @@ +--- +layout: default +menu_item: guides +title: Guides +description: Learning NodeGit +--- + +## [Install](install/) +## [Cloning](cloning/) diff --git a/guides/install/index.md b/guides/install/index.md new file mode 100644 index 0000000..8874521 --- /dev/null +++ b/guides/install/index.md @@ -0,0 +1,44 @@ +--- +layout: default +menu_item: guides +return_to: + "All Guides": /guides/ +title: Install Guide +description: How to install NodeGit +--- + +Install +======= + +From NPM +-------- + +To install from NPM you can issue the following command: + +``` bash +npm install nodegit +``` + +From GitHub +----------- + +This is required to contribute or run the examples. + +Start by cloning the repository, chances are you will only need the latest +commit, so you can pass the `--depth` flag to make a shallow clone: + +``` bash +git clone --depth=1 https://github.com/nodegit/nodegit +``` + +Change your directory into the newly created nodegit folder. + +``` bash +cd nodegit +``` + +Now you can issue the local installation command: + +``` bash +npm install +``` diff --git a/index.md b/index.md index 1226b8a..f1b7535 100644 --- a/index.md +++ b/index.md @@ -2,8 +2,10 @@ layout: default menu_item: getting_started sections: + "About": "#about" "Installing NodeGit": "#installing-nodegit" "Cloning a Repository": "#cloning-a-repository" + "Used by...": "#used-by" --- diff --git a/package.json b/package.json index d910543..777da5f 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "dive": "^0.4.0", "dox": "^0.6.1", "fs-extra": "^0.16.3", + "glob": "^4.4.1", "lodash": "^3.3.0" }, "devDependencies": {}, From 59dff1ba74ea030ec807adad55cb5ee6b9d74e48 Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Sat, 28 Feb 2015 21:33:57 -0500 Subject: [PATCH 13/24] Styled blockquote and updated guides --- api/blame/index.md | 7 ++++ api/blob/index.md | 12 ++++-- api/buf/index.md | 7 ++++ api/commit/index.md | 7 ++++ api/hashsig/index.md | 7 ++++ api/index.md | 48 ++++++++++++++++++++---- api/index/index.md | 58 +++++++++++++++++++++++++++++ api/index_entry/index.md | 4 ++ api/indexer/index.md | 7 ++++ api/note/index.md | 7 ++++ api/object/index.md | 7 ++++ api/odb/index.md | 7 ++++ api/odb_object/index.md | 7 ++++ api/oidarray/index.md | 7 ++++ api/packbuilder/index.md | 7 ++++ api/pathspec/index.md | 7 ++++ api/rebase/index.md | 7 ++++ api/refdb/index.md | 7 ++++ api/reflog/index.md | 7 ++++ api/remote/index.md | 13 ++++++- api/remote_callbacks/index.md | 1 + api/repository/index.md | 7 ++++ api/reset/index.md | 28 +++++++++++++- api/signature/index.md | 7 ++++ api/status_list/index.md | 7 ++++ api/strarray/index.md | 7 ++++ api/submodule/index.md | 7 ++++ api/tag/index.md | 69 +++++++++++++++++------------------ api/tree/index.md | 7 ++++ api/treebuilder/index.md | 7 ++++ css/main.scss | 6 +++ guides/cloning/http/index.md | 5 +-- guides/committing/index.md | 0 guides/index.md | 33 +++++++++++++++++ guides/install/index.md | 5 +-- 35 files changed, 377 insertions(+), 59 deletions(-) create mode 100644 guides/committing/index.md diff --git a/api/blame/index.md b/api/blame/index.md index 7642ef3..52defa5 100644 --- a/api/blame/index.md +++ b/api/blame/index.md @@ -10,6 +10,7 @@ sections: "file": "#file" "initOptions": "#initOptions" "#buffer": "#buffer" + "#free": "#free" "#getHunkByIndex": "#getHunkByIndex" "#getHunkByLine": "#getHunkByLine" "#getHunkCount": "#getHunkCount" @@ -66,6 +67,12 @@ blame.buffer(buffer, buffer_len).then(function(blame) { | --- | --- | | [Blame](/api/blame/) | | +## Blame#free SyncExperimental + +```js +blame.free(); +``` + ## Blame#getHunkByIndex SyncExperimental ```js diff --git a/api/blob/index.md b/api/blob/index.md index 193f028..4d3c01f 100644 --- a/api/blob/index.md +++ b/api/blob/index.md @@ -14,6 +14,7 @@ sections: "lookupPrefix": "#lookupPrefix" "#content": "#content" "#filemode": "#filemode" + "#free": "#free" "#id": "#id" "#isBinary": "#isBinary" "#owner": "#owner" @@ -25,19 +26,18 @@ sections: ## Blob.createFromBuffer Sync ```js -var result = Blob.createFromBuffer(id, repo, buffer, len); +var oid = Blob.createFromBuffer(repo, buffer, len); ``` | Parameters | Type | | | --- | --- | --- | -| id | [Oid](/api/oid/) | return the id of the written blob | | repo | [Repository](/api/repository/) | repository where to blob will be written | | buffer | Buffer | data to be written into the blob | | len | Number | length of the data | | Returns | | | --- | --- | -| Number | 0 or an error code | +| [Oid](/api/oid/) | return the id of the written blob | ## Blob.createFromDisk Sync @@ -134,6 +134,12 @@ Retrieve the Blob's type. | --- | --- | | Number | The filemode of the blob. | +## Blob#free Sync + +```js +blob.free(); +``` + ## Blob#id Sync ```js diff --git a/api/buf/index.md b/api/buf/index.md index efa4851..df7817d 100644 --- a/api/buf/index.md +++ b/api/buf/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "#containsNul": "#containsNul" + "#free": "#free" "#grow": "#grow" "#isBinary": "#isBinary" "#set": "#set" @@ -24,6 +25,12 @@ var result = buf.containsNul(); | --- | --- | | Number | 1 if buffer contains a NUL byte | +## Buf#free SyncExperimental + +```js +buf.free(); +``` + ## Buf#grow AsyncExperimental ```js diff --git a/api/commit/index.md b/api/commit/index.md index 19c0b31..428e261 100644 --- a/api/commit/index.md +++ b/api/commit/index.md @@ -15,6 +15,7 @@ sections: "#author": "#author" "#committer": "#committer" "#date": "#date" + "#free": "#free" "#getEntry": "#getEntry" "#getParents": "#getParents" "#getTree": "#getTree" @@ -172,6 +173,12 @@ Retrieve the commit time as a Date object. | --- | --- | | Date | | +## Commit#free Sync + +```js +commit.free(); +``` + ## Commit#getEntry Async ```js diff --git a/api/hashsig/index.md b/api/hashsig/index.md index 21e0032..b1a32d4 100644 --- a/api/hashsig/index.md +++ b/api/hashsig/index.md @@ -10,6 +10,7 @@ sections: "create": "#create" "createFromFile": "#createFromFile" "#compare": "#compare" + "#free": "#free" "OPTION": "#OPTION" --- @@ -60,6 +61,12 @@ var result = hashsig.compare(); < 0 for error, [0 to 100] as similarity score | +## Hashsig#free SyncExperimental + +```js +hashsig.free(); +``` + ## Hashsig.OPTION ENUM | Flag | Value | diff --git a/api/index.md b/api/index.md index fa290db..2488cc1 100644 --- a/api/index.md +++ b/api/index.md @@ -139,6 +139,7 @@ sections: | Instance Methods | | | --- | ---: | | [Blame#buffer (buffer, buffer_len)](/api/blame/#buffer) | AsyncExperimental | +| [Blame#free ()](/api/blame/#free) | SyncExperimental | | [Blame#getHunkByIndex (index)](/api/blame/#getHunkByIndex) | SyncExperimental | | [Blame#getHunkByLine (lineno)](/api/blame/#getHunkByLine) | SyncExperimental | | [Blame#getHunkCount ()](/api/blame/#getHunkCount) | SyncExperimental | @@ -179,7 +180,7 @@ sections: | Class Methods | | | --- | ---: | -| [Blob.createFromBuffer (id, repo, buffer, len)](/api/blob/#createFromBuffer) | Sync | +| [Blob.createFromBuffer (repo, buffer, len)](/api/blob/#createFromBuffer) | Sync | | [Blob.createFromDisk (id, repo, path)](/api/blob/#createFromDisk) | Sync | | [Blob.createFromWorkdir (id, repo, relative_path)](/api/blob/#createFromWorkdir) | Sync | | [Blob.lookup (repo, id)](/api/blob/#lookup) | Async | @@ -189,6 +190,7 @@ sections: | --- | ---: | | [Blob#content ()](/api/blob/#content) | Sync | | [Blob#filemode ()](/api/blob/#filemode) | Sync | +| [Blob#free ()](/api/blob/#free) | Sync | | [Blob#id ()](/api/blob/#id) | Sync | | [Blob#isBinary ()](/api/blob/#isBinary) | Sync | | [Blob#owner ()](/api/blob/#owner) | Sync | @@ -222,6 +224,7 @@ sections: | Instance Methods | | | --- | ---: | | [Buf#containsNul ()](/api/buf/#containsNul) | SyncExperimental | +| [Buf#free ()](/api/buf/#free) | SyncExperimental | | [Buf#grow (target_size)](/api/buf/#grow) | AsyncExperimental | | [Buf#isBinary ()](/api/buf/#isBinary) | SyncExperimental | | [Buf#set (data, datalen)](/api/buf/#set) | AsyncExperimental | @@ -362,6 +365,7 @@ sections: | [Commit#author ()](/api/commit/#author) | Sync | | [Commit#committer ()](/api/commit/#committer) | Sync | | [Commit#date ()](/api/commit/#date) | Sync | +| [Commit#free ()](/api/commit/#free) | Sync | | [Commit#getEntry (path)](/api/commit/#getEntry) | Async | | [Commit#getParents (limit, callback)](/api/commit/#getParents) | Async | | [Commit#getTree ()](/api/commit/#getTree) | Async | @@ -687,6 +691,7 @@ sections: | Instance Methods | | | --- | ---: | | [Hashsig#compare ()](/api/hashsig/#compare) | SyncExperimental | +| [Hashsig#free ()](/api/hashsig/#free) | SyncExperimental | | ENUMS | | | --- | ---: | @@ -711,6 +716,7 @@ sections: | Instance Methods | | | --- | ---: | | [Index#add (source_entry)](/api/index/#add) | Sync | +| [Index#addAll (pathspec, flags, callback, payload)](/api/index/#addAll) | Async | | [Index#addByPath (path)](/api/index/#addByPath) | Sync | | [Index#caps ()](/api/index/#caps) | Sync | | [Index#clear ()](/api/index/#clear) | Sync | @@ -727,9 +733,11 @@ sections: | [Index#read (force)](/api/index/#read) | Sync | | [Index#readTree (tree)](/api/index/#readTree) | Sync | | [Index#remove (path, stage)](/api/index/#remove) | Sync | +| [Index#removeAll (pathspec, callback, payload)](/api/index/#removeAll) | Async | | [Index#removeByPath (path)](/api/index/#removeByPath) | Sync | | [Index#removeDirectory (dir, stage)](/api/index/#removeDirectory) | Sync | | [Index#setCaps (caps)](/api/index/#setCaps) | Sync | +| [Index#updateAll (pathspec, callback, payload)](/api/index/#updateAll) | Async | | [Index#write ()](/api/index/#write) | Sync | | [Index#writeTree ()](/api/index/#writeTree) | Async | | [Index#writeTreeTo (repo)](/api/index/#writeTreeTo) | Async | @@ -772,6 +780,7 @@ sections: | Instance Methods | | | --- | ---: | | [Indexer#commit (stats)](/api/indexer/#commit) | SyncExperimental | +| [Indexer#free ()](/api/indexer/#free) | SyncExperimental | | [Indexer#hash ()](/api/indexer/#hash) | SyncExperimental | @@ -873,6 +882,7 @@ sections: | --- | ---: | | [Note#author ()](/api/note/#author) | SyncExperimental | | [Note#committer ()](/api/note/#committer) | SyncExperimental | +| [Note#free ()](/api/note/#free) | SyncExperimental | | [Note#id ()](/api/note/#id) | SyncExperimental | | [Note#message ()](/api/note/#message) | SyncExperimental | @@ -892,6 +902,7 @@ sections: | Instance Methods | | | --- | ---: | | [Object#dup ()](/api/object/#dup) | AsyncExperimental | +| [Object#free ()](/api/object/#free) | SyncExperimental | | [Object#id ()](/api/object/#id) | SyncExperimental | | [Object#lookupByPath (path, type)](/api/object/#lookupByPath) | AsyncExperimental | | [Object#owner ()](/api/object/#owner) | SyncExperimental | @@ -913,6 +924,7 @@ sections: | Instance Methods | | | --- | ---: | | [Odb#addDiskAlternate (path)](/api/odb/#addDiskAlternate) | Sync | +| [Odb#free ()](/api/odb/#free) | Sync | | [Odb#read (id)](/api/odb/#read) | Async | | [Odb#write (data, len, type)](/api/odb/#write) | Async | @@ -927,6 +939,7 @@ sections: | --- | ---: | | [OdbObject#data ()](/api/odb_object/#data) | SyncExperimental | | [OdbObject#dup ()](/api/odb_object/#dup) | AsyncExperimental | +| [OdbObject#free ()](/api/odb_object/#free) | SyncExperimental | | [OdbObject#id ()](/api/odb_object/#id) | SyncExperimental | | [OdbObject#size ()](/api/odb_object/#size) | SyncExperimental | | [OdbObject#type ()](/api/odb_object/#type) | SyncExperimental | @@ -952,6 +965,10 @@ sections: ## [Oidarray](/api/oidarray/) +| Instance Methods | | +| --- | ---: | +| [Oidarray#free ()](/api/oidarray/#free) | SyncExperimental | + | Instance Variables | | | --- | ---: | | [Oidarray#count](/api/oidarray/#count) | | @@ -969,6 +986,7 @@ sections: | Instance Methods | | | --- | ---: | +| [Packbuilder#free ()](/api/packbuilder/#free) | SyncExperimental | | [Packbuilder#hash ()](/api/packbuilder/#hash) | SyncExperimental | | [Packbuilder#insert (id, name)](/api/packbuilder/#insert) | SyncExperimental | | [Packbuilder#insertCommit (id)](/api/packbuilder/#insertCommit) | SyncExperimental | @@ -1012,6 +1030,7 @@ sections: | Instance Methods | | | --- | ---: | +| [Pathspec#free ()](/api/pathspec/#free) | SyncExperimental | | [Pathspec#matchDiff (diff, flags)](/api/pathspec/#matchDiff) | AsyncExperimental | | [Pathspec#matchIndex (index, flags)](/api/pathspec/#matchIndex) | AsyncExperimental | | [Pathspec#matchTree (tree, flags)](/api/pathspec/#matchTree) | AsyncExperimental | @@ -1052,6 +1071,7 @@ sections: | [Rebase#abort (signature)](/api/rebase/#abort) | SyncExperimental | | [Rebase#commit (id, author, committer, message_encoding, message)](/api/rebase/#commit) | SyncExperimental | | [Rebase#finish (signature, opts)](/api/rebase/#finish) | SyncExperimental | +| [Rebase#free ()](/api/rebase/#free) | SyncExperimental | | [Rebase#operationByIndex (idx)](/api/rebase/#operationByIndex) | SyncExperimental | | [Rebase#operationCurrent ()](/api/rebase/#operationCurrent) | SyncExperimental | | [Rebase#operationEntrycount ()](/api/rebase/#operationEntrycount) | SyncExperimental | @@ -1088,6 +1108,7 @@ sections: | Instance Methods | | | --- | ---: | | [Refdb#compress ()](/api/refdb/#compress) | SyncExperimental | +| [Refdb#free ()](/api/refdb/#free) | SyncExperimental | ## [Reference](/api/reference/) @@ -1158,6 +1179,7 @@ sections: | [Reflog#drop (idx, rewrite_previous_entry)](/api/reflog/#drop) | SyncExperimental | | [Reflog#entryByIndex (idx)](/api/reflog/#entryByIndex) | SyncExperimental | | [Reflog#entrycount ()](/api/reflog/#entrycount) | SyncExperimental | +| [Reflog#free ()](/api/reflog/#free) | SyncExperimental | | [Reflog#write ()](/api/reflog/#write) | SyncExperimental | @@ -1199,6 +1221,7 @@ sections: | [Remote#download (refspecs)](/api/remote/#download) | Async | | [Remote#dup ()](/api/remote/#dup) | Async | | [Remote#fetch (refspecs, signature, reflog_message)](/api/remote/#fetch) | Async | +| [Remote#free ()](/api/remote/#free) | Sync | | [Remote#getCallbacks ()](/api/remote/#getCallbacks) | Sync | | [Remote#getFetchRefspecs ()](/api/remote/#getFetchRefspecs) | Async | | [Remote#getPushRefspecs ()](/api/remote/#getPushRefspecs) | Async | @@ -1207,7 +1230,7 @@ sections: | [Remote#owner ()](/api/remote/#owner) | Sync | | [Remote#prune ()](/api/remote/#prune) | Sync | | [Remote#pruneRefs ()](/api/remote/#pruneRefs) | Sync | -| [Remote#push (refspecs, opts, signature, reflog_message)](/api/remote/#push) | Sync | +| [Remote#push (refspecs, opts, signature, reflog_message)](/api/remote/#push) | Async | | [Remote#pushurl ()](/api/remote/#pushurl) | Sync | | [Remote#refspecCount ()](/api/remote/#refspecCount) | Sync | | [Remote#save ()](/api/remote/#save) | Sync | @@ -1236,6 +1259,7 @@ sections: | [RemoteCallbacks#certificateCheck](/api/remote_callbacks/#certificateCheck) | | | [RemoteCallbacks#credentials](/api/remote_callbacks/#credentials) | | | [RemoteCallbacks#payload](/api/remote_callbacks/#payload) | | +| [RemoteCallbacks#transferProgress](/api/remote_callbacks/#transferProgress) | | | [RemoteCallbacks#version](/api/remote_callbacks/#version) | | @@ -1256,6 +1280,7 @@ sections: | [Repository#configSnapshot ()](/api/repository/#configSnapshot) | Async | | [Repository#createRevWalk (String)](/api/repository/#createRevWalk) | Sync | | [Repository#detachHead (signature, reflog_message)](/api/repository/#detachHead) | Sync | +| [Repository#free ()](/api/repository/#free) | Sync | | [Repository#getBlob (String)](/api/repository/#getBlob) | Async | | [Repository#getBranch (name)](/api/repository/#getBranch) | Async | | [Repository#getBranchCommit (name)](/api/repository/#getBranchCommit) | Async | @@ -1314,7 +1339,8 @@ sections: | Class Methods | | | --- | ---: | -| [Reset.default (repo, target, pathspecs)](/api/reset/#default) | SyncExperimental | +| [Reset.default (repo, target, pathspecs)](/api/reset/#default) | Async | +| [Reset.reset (repo, target, reset_type, checkout_opts, signature, log_message)](/api/reset/#reset) | Async | | ENUMS | | | --- | ---: | @@ -1393,6 +1419,7 @@ sections: | Instance Methods | | | --- | ---: | | [Signature#dup ()](/api/signature/#dup) | Async | +| [Signature#free ()](/api/signature/#free) | Sync | | [Signature#toString ()](/api/signature/#toString) | Sync | | Instance Variables | | @@ -1439,6 +1466,7 @@ sections: | Instance Methods | | | --- | ---: | | [StatusList#entrycount ()](/api/status_list/#entrycount) | SyncExperimental | +| [StatusList#free ()](/api/status_list/#free) | SyncExperimental | | [StatusList#getPerfdata ()](/api/status_list/#getPerfdata) | AsyncExperimental | @@ -1457,6 +1485,7 @@ sections: | Instance Methods | | | --- | ---: | | [Strarray#copy ()](/api/strarray/#copy) | SyncExperimental | +| [Strarray#free ()](/api/strarray/#free) | SyncExperimental | | Instance Variables | | | --- | ---: | @@ -1479,6 +1508,7 @@ sections: | [Submodule#addToIndex (write_index)](/api/submodule/#addToIndex) | SyncExperimental | | [Submodule#branch ()](/api/submodule/#branch) | SyncExperimental | | [Submodule#fetchRecurseSubmodules ()](/api/submodule/#fetchRecurseSubmodules) | SyncExperimental | +| [Submodule#free ()](/api/submodule/#free) | SyncExperimental | | [Submodule#headId ()](/api/submodule/#headId) | SyncExperimental | | [Submodule#ignore ()](/api/submodule/#ignore) | SyncExperimental | | [Submodule#indexId ()](/api/submodule/#indexId) | SyncExperimental | @@ -1523,11 +1553,10 @@ sections: | Class Methods | | | --- | ---: | -| [Tag.annotationCreate (oid, repo, tag_name, target, tagger, message)](/api/tag/#annotationCreate) | Sync | -| [Tag.create (oid, repo, tag_name, target, tagger, message, force)](/api/tag/#create) | Sync | -| [Tag.createFromBuffer (oid, repo, buffer, force)](/api/tag/#createFromBuffer) | Sync | -| [Tag.createLightweight (oid, repo, tag_name, target, force)](/api/tag/#createLightweight) | Sync | -| [Tag.delete (repo, tag_name)](/api/tag/#delete) | Sync | +| [Tag.annotationCreate (repo, tag_name, target, tagger, message)](/api/tag/#annotationCreate) | Async | +| [Tag.create (repo, tag_name, target, tagger, message, force)](/api/tag/#create) | Async | +| [Tag.createLightweight (repo, tag_name, target, force)](/api/tag/#createLightweight) | Async | +| [Tag.delete (repo, tag_name)](/api/tag/#delete) | Async | | [Tag.list (repo)](/api/tag/#list) | Async | | [Tag.listMatch (tag_names, pattern, repo)](/api/tag/#listMatch) | Sync | | [Tag.lookup (repo, id)](/api/tag/#lookup) | Async | @@ -1535,6 +1564,7 @@ sections: | Instance Methods | | | --- | ---: | +| [Tag#free ()](/api/tag/#free) | Sync | | [Tag#id ()](/api/tag/#id) | Sync | | [Tag#message ()](/api/tag/#message) | Sync | | [Tag#name ()](/api/tag/#name) | Sync | @@ -1617,6 +1647,7 @@ sections: | [Tree#entryByName (name)](/api/tree/#entryByName) | Sync | | [Tree#entryByPath (path)](/api/tree/#entryByPath) | AsyncExperimental | | [Tree#entryCount ()](/api/tree/#entryCount) | SyncExperimental | +| [Tree#free ()](/api/tree/#free) | SyncExperimental | | [Tree#getEntry (path)](/api/tree/#getEntry) | Sync | | [Tree#id ()](/api/tree/#id) | SyncExperimental | | [Tree#owner ()](/api/tree/#owner) | SyncExperimental | @@ -1664,6 +1695,7 @@ sections: | --- | ---: | | [Treebuilder#clear ()](/api/treebuilder/#clear) | SyncExperimental | | [Treebuilder#entrycount ()](/api/treebuilder/#entrycount) | SyncExperimental | +| [Treebuilder#free ()](/api/treebuilder/#free) | SyncExperimental | | [Treebuilder#get (filename)](/api/treebuilder/#get) | SyncExperimental | | [Treebuilder#insert (filename, id, filemode)](/api/treebuilder/#insert) | AsyncExperimental | | [Treebuilder#remove (filename)](/api/treebuilder/#remove) | SyncExperimental | diff --git a/api/index/index.md b/api/index/index.md index fb6435a..132c657 100644 --- a/api/index/index.md +++ b/api/index/index.md @@ -10,6 +10,7 @@ sections: "entryStage": "#entryStage" "open": "#open" "#add": "#add" + "#addAll": "#addAll" "#addByPath": "#addByPath" "#caps": "#caps" "#clear": "#clear" @@ -26,9 +27,11 @@ sections: "#read": "#read" "#readTree": "#readTree" "#remove": "#remove" + "#removeAll": "#removeAll" "#removeByPath": "#removeByPath" "#removeDirectory": "#removeDirectory" "#setCaps": "#setCaps" + "#updateAll": "#updateAll" "#write": "#write" "#writeTree": "#writeTree" "#writeTreeTo": "#writeTreeTo" @@ -80,6 +83,25 @@ var result = index.add(source_entry); | --- | --- | | Number | 0 or an error code | +## Index#addAll Async + +```js +index.addAll(pathspec, flags, callback, payload).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| pathspec | [Strarray](/api/strarray/) | array of path patterns | +| flags | Number | combination of git_index_add_option_t flags | +| callback | IndexMatchedPathCb | notification callback for each added/updated path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan. | +| payload | Void | payload passed through to callback function | + +| Returns | | +| --- | --- | +| Number | 0 on success, negative callback return value, or error code | + ## Index#addByPath Sync ```js @@ -280,6 +302,24 @@ var result = index.remove(path, stage); | --- | --- | | Number | 0 or an error code | +## Index#removeAll Async + +```js +index.removeAll(pathspec, callback, payload).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| pathspec | [Strarray](/api/strarray/) | array of path patterns | +| callback | IndexMatchedPathCb | notification callback for each removed path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan. | +| payload | Void | payload passed through to callback function | + +| Returns | | +| --- | --- | +| Number | 0 on success, negative callback return value, or error code | + ## Index#removeByPath Sync ```js @@ -323,6 +363,24 @@ var result = index.setCaps(caps); | --- | --- | | Number | 0 on success, -1 on failure | +## Index#updateAll Async + +```js +index.updateAll(pathspec, callback, payload).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| pathspec | [Strarray](/api/strarray/) | array of path patterns | +| callback | IndexMatchedPathCb | notification callback for each updated path (also gets index of matching pathspec entry); can be NULL; return 0 to add, >0 to skip, <0 to abort scan. | +| payload | Void | payload passed through to callback function | + +| Returns | | +| --- | --- | +| Number | 0 on success, negative callback return value, or error code | + ## Index#write Sync ```js diff --git a/api/index_entry/index.md b/api/index_entry/index.md index 56b3c84..acfe000 100644 --- a/api/index_entry/index.md +++ b/api/index_entry/index.md @@ -10,6 +10,10 @@ sections: "Instance Variables": "#ivars" --- +```js +var indexEntry = new IndexEntry(); +``` + ## Instance Variables | Variable | Type | diff --git a/api/indexer/index.md b/api/indexer/index.md index 1733be6..28c7f0b 100644 --- a/api/indexer/index.md +++ b/api/indexer/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "#commit": "#commit" + "#free": "#free" "#hash": "#hash" --- @@ -25,6 +26,12 @@ var result = indexer.commit(stats); | --- | --- | | Number | | +## Indexer#free SyncExperimental + +```js +indexer.free(); +``` + ## Indexer#hash SyncExperimental ```js diff --git a/api/note/index.md b/api/note/index.md index 2589448..95e3b34 100644 --- a/api/note/index.md +++ b/api/note/index.md @@ -15,6 +15,7 @@ sections: "remove": "#remove" "#author": "#author" "#committer": "#committer" + "#free": "#free" "#id": "#id" "#message": "#message" --- @@ -147,6 +148,12 @@ var signature = note.committer(); | --- | --- | | [Signature](/api/signature/) | the committer | +## Note#free SyncExperimental + +```js +note.free(); +``` + ## Note#id SyncExperimental ```js diff --git a/api/object/index.md b/api/object/index.md index 8892514..ab2e922 100644 --- a/api/object/index.md +++ b/api/object/index.md @@ -14,6 +14,7 @@ sections: "type2string": "#type2string" "typeisloose": "#typeisloose" "#dup": "#dup" + "#free": "#free" "#id": "#id" "#lookupByPath": "#lookupByPath" "#owner": "#owner" @@ -129,6 +130,12 @@ object.dup().then(function(object) { | --- | --- | | [Object](/api/object/) | | +## Object#free SyncExperimental + +```js +object.free(); +``` + ## Object#id SyncExperimental ```js diff --git a/api/odb/index.md b/api/odb/index.md index 63d6e75..83187d8 100644 --- a/api/odb/index.md +++ b/api/odb/index.md @@ -9,6 +9,7 @@ return_to: sections: "open": "#open" "#addDiskAlternate": "#addDiskAlternate" + "#free": "#free" "#read": "#read" "#write": "#write" "STREAM": "#STREAM" @@ -44,6 +45,12 @@ var result = odb.addDiskAlternate(path); | --- | --- | | Number | 0 on success; error code otherwise | +## Odb#free Sync + +```js +odb.free(); +``` + ## Odb#read Async ```js diff --git a/api/odb_object/index.md b/api/odb_object/index.md index 7dc1c79..ba8ae1d 100644 --- a/api/odb_object/index.md +++ b/api/odb_object/index.md @@ -9,6 +9,7 @@ return_to: sections: "#data": "#data" "#dup": "#dup" + "#free": "#free" "#id": "#id" "#size": "#size" "#type": "#type" @@ -36,6 +37,12 @@ odbObject.dup().then(function(odbObject) { | --- | --- | | [OdbObject](/api/odb_object/) | the copy | +## OdbObject#free SyncExperimental + +```js +odbObject.free(); +``` + ## OdbObject#id SyncExperimental ```js diff --git a/api/oidarray/index.md b/api/oidarray/index.md index 39e8aa6..752cec9 100644 --- a/api/oidarray/index.md +++ b/api/oidarray/index.md @@ -7,9 +7,16 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "#free": "#free" "Instance Variables": "#ivars" --- +## Oidarray#free SyncExperimental + +```js +oidarray.free(); +``` + ## Instance Variables | Variable | Type | diff --git a/api/packbuilder/index.md b/api/packbuilder/index.md index 45985fc..caad5e7 100644 --- a/api/packbuilder/index.md +++ b/api/packbuilder/index.md @@ -7,6 +7,7 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "#free": "#free" "#hash": "#hash" "#insert": "#insert" "#insertCommit": "#insertCommit" @@ -17,6 +18,12 @@ sections: "STAGE": "#STAGE" --- +## Packbuilder#free SyncExperimental + +```js +packbuilder.free(); +``` + ## Packbuilder#hash SyncExperimental ```js diff --git a/api/pathspec/index.md b/api/pathspec/index.md index 17e1a20..acd6b53 100644 --- a/api/pathspec/index.md +++ b/api/pathspec/index.md @@ -12,6 +12,7 @@ sections: "matchListEntrycount": "#matchListEntrycount" "matchListFailedEntry": "#matchListFailedEntry" "matchListFailedEntrycount": "#matchListFailedEntrycount" + "#free": "#free" "#matchDiff": "#matchDiff" "#matchIndex": "#matchIndex" "#matchTree": "#matchTree" @@ -93,6 +94,12 @@ var result = Pathspec.matchListFailedEntrycount(m); | --- | --- | | Number | Number of items in original pathspec that had no matches | +## Pathspec#free SyncExperimental + +```js +pathspec.free(); +``` + ## Pathspec#matchDiff AsyncExperimental ```js diff --git a/api/rebase/index.md b/api/rebase/index.md index ee1d5e1..6cecfe9 100644 --- a/api/rebase/index.md +++ b/api/rebase/index.md @@ -13,6 +13,7 @@ sections: "#abort": "#abort" "#commit": "#commit" "#finish": "#finish" + "#free": "#free" "#operationByIndex": "#operationByIndex" "#operationCurrent": "#operationCurrent" "#operationEntrycount": "#operationEntrycount" @@ -121,6 +122,12 @@ var result = rebase.finish(signature, opts); | --- | --- | | Number | | +## Rebase#free SyncExperimental + +```js +rebase.free(); +``` + ## Rebase#operationByIndex SyncExperimental ```js diff --git a/api/refdb/index.md b/api/refdb/index.md index 875ce1c..f65d777 100644 --- a/api/refdb/index.md +++ b/api/refdb/index.md @@ -9,6 +9,7 @@ return_to: sections: "open": "#open" "#compress": "#compress" + "#free": "#free" --- ## Refdb.open AsyncExperimental @@ -37,3 +38,9 @@ var result = refdb.compress(); | --- | --- | | Number | | +## Refdb#free SyncExperimental + +```js +refdb.free(); +``` + diff --git a/api/reflog/index.md b/api/reflog/index.md index 5ac6b28..528fc8e 100644 --- a/api/reflog/index.md +++ b/api/reflog/index.md @@ -18,6 +18,7 @@ sections: "#drop": "#drop" "#entryByIndex": "#entryByIndex" "#entrycount": "#entrycount" + "#free": "#free" "#write": "#write" --- @@ -181,6 +182,12 @@ var result = reflog.entrycount(); | --- | --- | | Number | the number of log entries | +## Reflog#free SyncExperimental + +```js +reflog.free(); +``` + ## Reflog#write SyncExperimental ```js diff --git a/api/remote/index.md b/api/remote/index.md index 7b1ac31..922c2a9 100644 --- a/api/remote/index.md +++ b/api/remote/index.md @@ -25,6 +25,7 @@ sections: "#download": "#download" "#dup": "#dup" "#fetch": "#fetch" + "#free": "#free" "#getCallbacks": "#getCallbacks" "#getFetchRefspecs": "#getFetchRefspecs" "#getPushRefspecs": "#getPushRefspecs" @@ -310,6 +311,12 @@ remote.fetch(refspecs, signature, reflog_message).then(function(result) { | --- | --- | | Number | 0 or an error code | +## Remote#free Sync + +```js +remote.free(); +``` + ## Remote#getCallbacks Sync ```js @@ -398,10 +405,12 @@ var result = remote.pruneRefs(); | --- | --- | | Number | the ref-prune setting | -## Remote#push Sync +## Remote#push Async ```js -var result = remote.push(refspecs, opts, signature, reflog_message); +remote.push(refspecs, opts, signature, reflog_message).then(function(result) { + // Use result +}); ``` | Parameters | Type | diff --git a/api/remote_callbacks/index.md b/api/remote_callbacks/index.md index ebfff08..46e40e1 100644 --- a/api/remote_callbacks/index.md +++ b/api/remote_callbacks/index.md @@ -21,5 +21,6 @@ var remoteCallbacks = new RemoteCallbacks(); | certificateCheck | TransportCertificateCheckCb | | credentials | CredAcquireCb | | payload | Void | +| transferProgress | TransferProgressCb | | version | Number | diff --git a/api/repository/index.md b/api/repository/index.md index b8c8828..d54e3c9 100644 --- a/api/repository/index.md +++ b/api/repository/index.md @@ -17,6 +17,7 @@ sections: "#configSnapshot": "#configSnapshot" "#createRevWalk": "#createRevWalk" "#detachHead": "#detachHead" + "#free": "#free" "#getBlob": "#getBlob" "#getBranch": "#getBranch" "#getBranchCommit": "#getBranchCommit" @@ -212,6 +213,12 @@ var result = repository.detachHead(signature, reflog_message); | Number | 0 on success, GIT_EUNBORNBRANCH when HEAD points to a non existing branch or an error code | +## Repository#free Sync + +```js +repository.free(); +``` + ## Repository#getBlob Async ```js diff --git a/api/reset/index.md b/api/reset/index.md index d5ed4cd..f54c270 100644 --- a/api/reset/index.md +++ b/api/reset/index.md @@ -8,13 +8,16 @@ return_to: "API Documentation Index": /api/ sections: "default": "#default" + "reset": "#reset" "TYPE": "#TYPE" --- -## Reset.default SyncExperimental +## Reset.default Async ```js -var result = Reset.default(repo, target, pathspecs); +Reset.default(repo, target, pathspecs).then(function(result) { + // Use result +}); ``` | Parameters | Type | | @@ -29,6 +32,27 @@ var result = Reset.default(repo, target, pathspecs); < 0 | +## Reset.reset Async + +```js +Reset.reset(repo, target, reset_type, checkout_opts, signature, log_message).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| repo | [Repository](/api/repository/) | | +| target | [Object](/api/object/) | | +| reset_type | Number | | +| checkout_opts | [CheckoutOptions](/api/checkout_options/) | | +| signature | [Signature](/api/signature/) | | +| log_message | String | | + +| Returns | | +| --- | --- | +| Number | | + ## Reset.TYPE ENUM | Flag | Value | diff --git a/api/signature/index.md b/api/signature/index.md index 70c4209..6baf803 100644 --- a/api/signature/index.md +++ b/api/signature/index.md @@ -11,6 +11,7 @@ sections: "default": "#default" "now": "#now" "#dup": "#dup" + "#free": "#free" "#toString": "#toString" "Instance Variables": "#ivars" --- @@ -73,6 +74,12 @@ signature.dup().then(function(signature) { | --- | --- | | [Signature](/api/signature/) | the copy | +## Signature#free Sync + +```js +signature.free(); +``` + ## Signature#toString Sync ```js diff --git a/api/status_list/index.md b/api/status_list/index.md index 29f2db5..2af8c82 100644 --- a/api/status_list/index.md +++ b/api/status_list/index.md @@ -9,6 +9,7 @@ return_to: sections: "create": "#create" "#entrycount": "#entrycount" + "#free": "#free" "#getPerfdata": "#getPerfdata" --- @@ -37,6 +38,12 @@ var result = statusList.entrycount(); | --- | --- | | Number | the number of status entries | +## StatusList#free SyncExperimental + +```js +statusList.free(); +``` + ## StatusList#getPerfdata AsyncExperimental ```js diff --git a/api/strarray/index.md b/api/strarray/index.md index f3b1831..4cda5f4 100644 --- a/api/strarray/index.md +++ b/api/strarray/index.md @@ -8,6 +8,7 @@ return_to: "API Documentation Index": /api/ sections: "#copy": "#copy" + "#free": "#free" "Instance Variables": "#ivars" --- @@ -23,6 +24,12 @@ var result = strarray.copy(); < 0 on allocation failure | +## Strarray#free SyncExperimental + +```js +strarray.free(); +``` + ## Instance Variables | Variable | Type | diff --git a/api/submodule/index.md b/api/submodule/index.md index 13f0e1e..d197330 100644 --- a/api/submodule/index.md +++ b/api/submodule/index.md @@ -15,6 +15,7 @@ sections: "#addToIndex": "#addToIndex" "#branch": "#branch" "#fetchRecurseSubmodules": "#fetchRecurseSubmodules" + "#free": "#free" "#headId": "#headId" "#ignore": "#ignore" "#indexId": "#indexId" @@ -157,6 +158,12 @@ var result = submodule.fetchRecurseSubmodules(); | --- | --- | | Number | 0 if fetchRecurseSubmodules is false, 1 if true | +## Submodule#free SyncExperimental + +```js +submodule.free(); +``` + ## Submodule#headId SyncExperimental ```js diff --git a/api/tag/index.md b/api/tag/index.md index 1b1933d..ef04ee9 100644 --- a/api/tag/index.md +++ b/api/tag/index.md @@ -9,13 +9,13 @@ return_to: sections: "annotationCreate": "#annotationCreate" "create": "#create" - "createFromBuffer": "#createFromBuffer" "createLightweight": "#createLightweight" "delete": "#delete" "list": "#list" "listMatch": "#listMatch" "lookup": "#lookup" "lookupPrefix": "#lookupPrefix" + "#free": "#free" "#id": "#id" "#message": "#message" "#name": "#name" @@ -27,15 +27,16 @@ sections: "#targetType": "#targetType" --- -## Tag.annotationCreate Sync +## Tag.annotationCreate Async ```js -var result = Tag.annotationCreate(oid, repo, tag_name, target, tagger, message); +Tag.annotationCreate(repo, tag_name, target, tagger, message).then(function(oid) { + // Use oid +}); ``` | Parameters | Type | | | --- | --- | --- | -| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag | | repo | [Repository](/api/repository/) | Repository where to store the tag | | tag_name | String | Name for the tag | | target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | @@ -44,17 +45,19 @@ var result = Tag.annotationCreate(oid, repo, tag_name, target, tagger, message); | Returns | | | --- | --- | -| Number | 0 on success or an error code | +| [Oid](/api/oid/) | the OID of the + newly created tag | -## Tag.create Sync +## Tag.create Async ```js -var result = Tag.create(oid, repo, tag_name, target, tagger, message, force); +Tag.create(repo, tag_name, target, tagger, message, force).then(function(oid) { + // Use oid +}); ``` | Parameters | Type | | | --- | --- | --- | -| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag. If the tag already exists, this parameter will be the oid of the existing tag, and the function will return a GIT_EEXISTS error code. | | repo | [Repository](/api/repository/) | Repository where to store the tag | | tag_name | String | Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name | | target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | @@ -64,36 +67,21 @@ var result = Tag.create(oid, repo, tag_name, target, tagger, message, force); | Returns | | | --- | --- | -| Number | 0 on success, GIT_EINVALIDSPEC or an error code - A tag object is written to the ODB, and a proper reference - is written in the /refs/tags folder, pointing to it | +| [Oid](/api/oid/) | the OID of the + newly created tag. If the tag already exists, this parameter + will be the oid of the existing tag, and the function will + return a GIT_EEXISTS error code. | -## Tag.createFromBuffer Sync +## Tag.createLightweight Async ```js -var result = Tag.createFromBuffer(oid, repo, buffer, force); -``` - -| Parameters | Type | | -| --- | --- | --- | -| oid | [Oid](/api/oid/) | Pointer where to store the OID of the newly created tag | -| repo | [Repository](/api/repository/) | Repository where to store the tag | -| buffer | String | Raw tag data | -| force | Number | Overwrite existing tags | - -| Returns | | -| --- | --- | -| Number | 0 on success; error code otherwise | - -## Tag.createLightweight Sync - -```js -var result = Tag.createLightweight(oid, repo, tag_name, target, force); +Tag.createLightweight(repo, tag_name, target, force).then(function(oid) { + // Use oid +}); ``` | Parameters | Type | | | --- | --- | --- | -| oid | [Oid](/api/oid/) | Pointer where to store the OID of the provided target object. If the tag already exists, this parameter will be filled with the oid of the existing pointed object and the function will return a GIT_EEXISTS error code. | | repo | [Repository](/api/repository/) | Repository where to store the lightweight tag | | tag_name | String | Name for the tag; this name is validated for consistency. It should also not conflict with an already existing tag name | | target | [Object](/api/object/) | Object to which this tag points. This object must belong to the given `repo`. | @@ -101,14 +89,17 @@ var result = Tag.createLightweight(oid, repo, tag_name, target, force); | Returns | | | --- | --- | -| Number | 0 on success, GIT_EINVALIDSPEC or an error code - A proper reference is written in the /refs/tags folder, - pointing to the provided target object | +| [Oid](/api/oid/) | the OID of the provided + target object. If the tag already exists, this parameter + will be filled with the oid of the existing pointed object + and the function will return a GIT_EEXISTS error code. | -## Tag.delete Sync +## Tag.delete Async ```js -var result = Tag.delete(repo, tag_name); +Tag.delete(repo, tag_name).then(function(result) { + // Use result +}); ``` | Parameters | Type | | @@ -189,6 +180,12 @@ Tag.lookupPrefix(repo, id, len).then(function(tag) { | --- | --- | | [Tag](/api/tag/) | | +## Tag#free Sync + +```js +tag.free(); +``` + ## Tag#id Sync ```js diff --git a/api/tree/index.md b/api/tree/index.md index 3545be9..84ef041 100644 --- a/api/tree/index.md +++ b/api/tree/index.md @@ -26,6 +26,7 @@ sections: "#entryByName": "#entryByName" "#entryByPath": "#entryByPath" "#entryCount": "#entryCount" + "#free": "#free" "#getEntry": "#getEntry" "#id": "#id" "#owner": "#owner" @@ -321,6 +322,12 @@ var result = tree.entryCount(); | --- | --- | | Number | the number of entries in the tree | +## Tree#free SyncExperimental + +```js +tree.free(); +``` + ## Tree#getEntry Sync ```js diff --git a/api/treebuilder/index.md b/api/treebuilder/index.md index 7823215..97a8717 100644 --- a/api/treebuilder/index.md +++ b/api/treebuilder/index.md @@ -10,6 +10,7 @@ sections: "create": "#create" "#clear": "#clear" "#entrycount": "#entrycount" + "#free": "#free" "#get": "#get" "#insert": "#insert" "#remove": "#remove" @@ -49,6 +50,12 @@ var result = treebuilder.entrycount(); | --- | --- | | Number | the number of entries in the treebuilder | +## Treebuilder#free SyncExperimental + +```js +treebuilder.free(); +``` + ## Treebuilder#get SyncExperimental ```js diff --git a/css/main.scss b/css/main.scss index 2901040..b39cc33 100755 --- a/css/main.scss +++ b/css/main.scss @@ -18,3 +18,9 @@ $key-color: #F1595F; "layout", "syntax-highlighting" ; + +// Give quotes a GH-like appearance +blockquote { + border-left: 3px solid #EDEDED; + padding-left: 12px; +} diff --git a/guides/cloning/http/index.md b/guides/cloning/http/index.md index dd9b6b9..1629629 100644 --- a/guides/cloning/http/index.md +++ b/guides/cloning/http/index.md @@ -1,9 +1,6 @@ --- layout: default menu_item: guides -return_to: - "Clone": ../ - "All Guides": ../../ title: HTTP Clone Guide description: How to clone with HTTP --- @@ -11,7 +8,7 @@ description: How to clone with HTTP **In order to run examples, you will need to [Install NodeGit](../../install) first.** -[Return to cloning examples](../) +[Return to cloning guides](../) HTTP/HTTPS clone ---------------- diff --git a/guides/committing/index.md b/guides/committing/index.md new file mode 100644 index 0000000..e69de29 diff --git a/guides/index.md b/guides/index.md index 46221d1..d8e9d63 100644 --- a/guides/index.md +++ b/guides/index.md @@ -6,4 +6,37 @@ description: Learning NodeGit --- ## [Install](install/) + +> How to install NodeGit + +- [To run guides](install/guides/) +- [Windows users](install/windows-users/) +- [Atom Shell](install/atom-shell/) +- [NW.js](install/nw-js/) + +## [Repository](repositories/) + +> How to work with repositories + +- [Initializing](repositories/initializing) +- [Opening](repositories/opening) +- [Freeing](repositories/freeing) + ## [Cloning](cloning/) + +> How to clone repositories + +- [HTTP/HTTPS clone](cloning/http/) +- [SSH w/ Agent](cloning/ssh-with-agent/) +- [GitHub Two Factor Auth](cloning/gh-two-factor/) + +## [Commits](commits/) + +> How to work with commits + +- [Push commits]() +- [Diff commits]() + +## [Merging](merging/) + +> How to merge commits diff --git a/guides/install/index.md b/guides/install/index.md index 8874521..cc6c2e6 100644 --- a/guides/install/index.md +++ b/guides/install/index.md @@ -1,14 +1,11 @@ --- layout: default menu_item: guides -return_to: - "All Guides": /guides/ title: Install Guide description: How to install NodeGit --- -Install -======= +[Return to all guides](../) From NPM -------- From 74ad7b1ca63b7b7dc9409c1b2f17c3e6e3fd800b Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Mon, 2 Mar 2015 15:15:59 -0500 Subject: [PATCH 14/24] Added wip blog placeholder --- blog/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 blog/index.md diff --git a/blog/index.md b/blog/index.md new file mode 100644 index 0000000..948a61f --- /dev/null +++ b/blog/index.md @@ -0,0 +1,13 @@ +--- +layout: default +menu_item: blog +title: Blog +description: NodeGit talk +--- + +##### [New release, new site!](blog/new-release/) + +v0.3.0 brings with it: a new site (docs are better now we promise!), more +stable Windows support, a ton of libgit2 API coverage, and more... + +--- From 9d67b0f0f8edb8d873a71206d69e321acccf38c6 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 2 Mar 2015 18:20:49 -0500 Subject: [PATCH 15/24] Added a full layout and some guides changes Changed up the clone guides to be more consistent with the new API. I also added a full layout to remove the right hand column. Totally fine with reverting if we find that it's not ideal. --- _layouts/full.html | 23 +++++++++++++++++++++++ blog/index.md | 2 +- guides/cloning/gh-two-factor/index.js | 21 +++++++++------------ guides/cloning/gh-two-factor/index.md | 12 ++++++------ guides/cloning/http/index.js | 14 +++++++------- guides/cloning/http/index.md | 14 +++++++------- guides/index.md | 2 +- 7 files changed, 54 insertions(+), 34 deletions(-) create mode 100644 _layouts/full.html diff --git a/_layouts/full.html b/_layouts/full.html new file mode 100644 index 0000000..e3f68b6 --- /dev/null +++ b/_layouts/full.html @@ -0,0 +1,23 @@ + + + + {% include head.html %} + + + + {% include header.html %} + +
          +
          +
          + {{ content }} +
          +
          +
          + + {% include footer.html %} + + + + + diff --git a/blog/index.md b/blog/index.md index 948a61f..04e94c6 100644 --- a/blog/index.md +++ b/blog/index.md @@ -1,5 +1,5 @@ --- -layout: default +layout: full menu_item: blog title: Blog description: NodeGit talk diff --git a/guides/cloning/gh-two-factor/index.js b/guides/cloning/gh-two-factor/index.js index 52ae8b2..b03322c 100644 --- a/guides/cloning/gh-two-factor/index.js +++ b/guides/cloning/gh-two-factor/index.js @@ -1,19 +1,19 @@ -// Require in NodeGit, since we want to use the local copy, we're using a +// Require in NodeGit, since we want to use the local copy, we"re using a // relative path. In your project, you will use: // -// var NodeGit = require('nodegit'); -var Git = require('../../../'); +// var NodeGit = require("nodegit"); +var Git = require("../../../"); // To clone with two factor auth enabled, you have to use a GitHub OAuth token // over HTTPS. -var GITHUB_TOKEN = ''; +var GITHUB_TOKEN = ""; // Using the `clone` method from the `Git.Clone` module, bring down the NodeGit // test repository from GitHub. -var cloneURL = 'https://github.com/nodegit/private'; +var cloneURL = "https://github.com/nodegit/private"; // Ensure that the `tmp` directory is local to this file and not the CWD. -var localPath = require('path').join(__dirname, 'tmp'); +var localPath = require("path").join(__dirname, "tmp"); // Simple object to store clone options. var cloneOptions = {}; @@ -23,12 +23,12 @@ var cloneOptions = {}; cloneOptions.remoteCallbacks = { certificateCheck: function() { return 1; }, credentials: function() { - return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, 'x-oauth-basic'); + return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); } }; // Invoke the clone operation and store the returned Promise. -var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); // If the repository already exists, the clone above will fail. You can simply // open the repository in this case to continue execution. @@ -41,8 +41,5 @@ var errorAndAttemptOpen = function() { cloneRepository.catch(errorAndAttemptOpen) .then(function(repository) { // Access any repository methods here. - console.log('Is the repository bare? %s', Boolean(repository.isBare())); - }) - .catch(function(ex) { - console.log(ex, ex.stack); + console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); diff --git a/guides/cloning/gh-two-factor/index.md b/guides/cloning/gh-two-factor/index.md index 2fa926b..51c66f6 100644 --- a/guides/cloning/gh-two-factor/index.md +++ b/guides/cloning/gh-two-factor/index.md @@ -20,13 +20,13 @@ In the guides directory, we like to keep our NodeGit relative to the project root. ``` javascript -var Git = require('../../../'); +var Git = require("../../../"); ``` However, in your project you will most likely be using the following command: ``` javascript -var Git = require('nodegit'); +var Git = require("nodegit"); ``` ### Clone URL @@ -38,7 +38,7 @@ You could easily substitute this with any valid http or https Git repository URL. ``` javascript -var cloneURL = 'https://github.com/nodegit/test'; +var cloneURL = "https://github.com/nodegit/test"; ``` ### Clone path @@ -52,7 +52,7 @@ current working directory in NodeGit, so you will need to normalize it first. This is very simple in Node: ``` javascript -var localPath = require('path').join(__dirname, 'tmp'); +var localPath = require("path").join(__dirname, "tmp"); ``` Now this `tmp` directory will be created along side your script, no matter how @@ -90,7 +90,7 @@ has a static method `clone` that we can use to bring down a repository. While it may look a bit verbose, it is symptomatic of a rigid convention. ``` javascript -var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); ``` Notice how we store the return value from `Clone.clone`. This is a [Promise]() @@ -120,7 +120,7 @@ and work with the `Git.Repository` instance result. cloneRepository.catch(errorAndAttemptOpen) .then(function(repository) { // Access any repository methods here. - console.log('Is the repository bare? %s', Boolean(repository.isBare())); + console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); ``` diff --git a/guides/cloning/http/index.js b/guides/cloning/http/index.js index 4545ef8..fa68e73 100644 --- a/guides/cloning/http/index.js +++ b/guides/cloning/http/index.js @@ -1,15 +1,15 @@ -// Require in NodeGit, since we want to use the local copy, we're using a +// Require in NodeGit, since we want to use the local copy, we"re using a // relative path. In your project, you will use: // -// var NodeGit = require('nodegit'); -var Git = require('../../../'); +// var NodeGit = require("nodegit"); +var Git = require("../../../"); // Using the `clone` method from the `Git.Clone` module, bring down the NodeGit // test repository from GitHub. -var cloneURL = 'https://github.com/nodegit/test'; +var cloneURL = "https://github.com/nodegit/test"; // Ensure that the `tmp` directory is local to this file and not the CWD. -var localPath = require('path').join(__dirname, 'tmp'); +var localPath = require("path").join(__dirname, "tmp"); // Simple object to store clone options. var cloneOptions = {}; @@ -21,7 +21,7 @@ cloneOptions.remoteCallbacks = { }; // Invoke the clone operation and store the returned Promise. -var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); // If the repository already exists, the clone above will fail. You can simply // open the repository in this case to continue execution. @@ -34,5 +34,5 @@ var errorAndAttemptOpen = function() { cloneRepository.catch(errorAndAttemptOpen) .then(function(repository) { // Access any repository methods here. - console.log('Is the repository bare? %s', Boolean(repository.isBare())); + console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); diff --git a/guides/cloning/http/index.md b/guides/cloning/http/index.md index 1629629..2b2b115 100644 --- a/guides/cloning/http/index.md +++ b/guides/cloning/http/index.md @@ -1,5 +1,5 @@ --- -layout: default +layout: full menu_item: guides title: HTTP Clone Guide description: How to clone with HTTP @@ -24,13 +24,13 @@ In the guides directory, we like to keep our NodeGit relative to the project root. ``` javascript -var Git = require('../../../'); +var Git = require("../../../"); ``` However, in your project you will most likely be using the following command: ``` javascript -var Git = require('nodegit'); +var Git = require("nodegit"); ``` ### Clone URL @@ -42,7 +42,7 @@ You could easily substitute this with any valid http or https Git repository URL. ``` javascript -var cloneURL = 'https://github.com/nodegit/test'; +var cloneURL = "https://github.com/nodegit/test"; ``` ### Clone path @@ -56,7 +56,7 @@ current working directory in NodeGit, so you will need to normalize it first. This is very simple in Node: ``` javascript -var localPath = require('path').join(__dirname, 'tmp'); +var localPath = require("path").join(__dirname, "tmp"); ``` Now this `tmp` directory will be created along side your script, no matter how @@ -94,7 +94,7 @@ has a static method `clone` that we can use to bring down a repository. While it may look a bit verbose, it is symptomatic of a rigid convention. ``` javascript -var cloneRepository = Git.Clone.clone(cloneURL, localPath, cloneOptions); +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); ``` Notice how we store the return value from `Clone.clone`. This is a [Promise]() @@ -124,6 +124,6 @@ and work with the `Git.Repository` instance result. cloneRepository.catch(errorAndAttemptOpen) .then(function(repository) { // Access any repository methods here. - console.log('Is the repository bare? %s', Boolean(repository.isBare())); + console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); ``` diff --git a/guides/index.md b/guides/index.md index d8e9d63..6653b9e 100644 --- a/guides/index.md +++ b/guides/index.md @@ -1,5 +1,5 @@ --- -layout: default +layout: full menu_item: guides title: Guides description: Learning NodeGit From 717ede0e9a097aa1c96d5b5abbffd480c177bb75 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 2 Mar 2015 19:19:08 -0500 Subject: [PATCH 16/24] Bringing site up-to-date with latest --- api/index.md | 19 ++- api/status/index.md | 16 +++ api/status_entry/index.md | 20 ++++ api/status_list/index.md | 12 +- css/main.scss | 13 ++- guides/cloning/gh-two-factor/index.md | 79 ++++++++++--- guides/cloning/http/index.js | 2 +- guides/cloning/http/index.md | 29 ++--- guides/cloning/index.md | 10 +- guides/cloning/ssh-with-agent/index.js | 44 +++++++ guides/cloning/ssh-with-agent/index.md | 153 +++++++++++++++++++++++++ guides/index.md | 4 +- guides/install/index.md | 4 +- 13 files changed, 354 insertions(+), 51 deletions(-) create mode 100644 api/status_entry/index.md create mode 100644 guides/cloning/ssh-with-agent/index.js diff --git a/api/index.md b/api/index.md index 2488cc1..2e9264d 100644 --- a/api/index.md +++ b/api/index.md @@ -88,6 +88,7 @@ sections: "Signature": "#Signature" "Stash": "#Stash" "Status": "#Status" + "StatusEntry": "#StatusEntry" "StatusList": "#StatusList" "StatusOptions": "#StatusOptions" "Strarray": "#Strarray" @@ -1445,6 +1446,7 @@ sections: | Class Methods | | | --- | ---: | +| [Status.byIndex (statuslist, idx)](/api/status/#byIndex) | Sync | | [Status.file (status_flags, repo, path)](/api/status/#file) | Sync | | [Status.foreach (repo, callback, payload)](/api/status/#foreach) | Async | | [Status.foreachExt (repo, opts, callback, payload)](/api/status/#foreachExt) | Async | @@ -1457,17 +1459,26 @@ sections: | [Status.STATUS](/api/status/#STATUS)| | +## [StatusEntry](/api/status_entry/) + +| Instance Variables | | +| --- | ---: | +| [StatusEntry#headToIndex](/api/status_entry/#headToIndex) | | +| [StatusEntry#indexToWorkdir](/api/status_entry/#indexToWorkdir) | | +| [StatusEntry#status](/api/status_entry/#status) | | + + ## [StatusList](/api/status_list/) | Class Methods | | | --- | ---: | -| [StatusList.create (repo, opts)](/api/status_list/#create) | SyncExperimental | +| [StatusList.create (repo, opts)](/api/status_list/#create) | Async | | Instance Methods | | | --- | ---: | -| [StatusList#entrycount ()](/api/status_list/#entrycount) | SyncExperimental | -| [StatusList#free ()](/api/status_list/#free) | SyncExperimental | -| [StatusList#getPerfdata ()](/api/status_list/#getPerfdata) | AsyncExperimental | +| [StatusList#entrycount ()](/api/status_list/#entrycount) | Sync | +| [StatusList#free ()](/api/status_list/#free) | Sync | +| [StatusList#getPerfdata ()](/api/status_list/#getPerfdata) | Async | ## [StatusOptions](/api/status_options/) diff --git a/api/status/index.md b/api/status/index.md index e3cab67..fe27e66 100644 --- a/api/status/index.md +++ b/api/status/index.md @@ -7,6 +7,7 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "byIndex": "#byIndex" "file": "#file" "foreach": "#foreach" "foreachExt": "#foreachExt" @@ -16,6 +17,21 @@ sections: "STATUS": "#STATUS" --- +## Status.byIndex Sync + +```js +var statusEntry = Status.byIndex(statuslist, idx); +``` + +| Parameters | Type | | +| --- | --- | --- | +| statuslist | [StatusList](/api/status_list/) | Existing status list object | +| idx | Number | Position of the entry | + +| Returns | | +| --- | --- | +| [StatusEntry](/api/status_entry/) | | + ## Status.file Sync ```js diff --git a/api/status_entry/index.md b/api/status_entry/index.md new file mode 100644 index 0000000..102cc87 --- /dev/null +++ b/api/status_entry/index.md @@ -0,0 +1,20 @@ +--- +layout: default +menu_item: api +title: StatusEntry +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +## Instance Variables + +| Variable | Type | +| --- | --- | +| headToIndex | DiffDelta | +| indexToWorkdir | DiffDelta | +| status | Number | + diff --git a/api/status_list/index.md b/api/status_list/index.md index 2af8c82..83a7552 100644 --- a/api/status_list/index.md +++ b/api/status_list/index.md @@ -13,10 +13,12 @@ sections: "#getPerfdata": "#getPerfdata" --- -## StatusList.create SyncExperimental +## StatusList.create Async ```js -var statusList = StatusList.create(repo, opts); +StatusList.create(repo, opts).then(function(statusList) { + // Use statusList +}); ``` | Parameters | Type | | @@ -28,7 +30,7 @@ var statusList = StatusList.create(repo, opts); | --- | --- | | [StatusList](/api/status_list/) | | -## StatusList#entrycount SyncExperimental +## StatusList#entrycount Sync ```js var result = statusList.entrycount(); @@ -38,13 +40,13 @@ var result = statusList.entrycount(); | --- | --- | | Number | the number of status entries | -## StatusList#free SyncExperimental +## StatusList#free Sync ```js statusList.free(); ``` -## StatusList#getPerfdata AsyncExperimental +## StatusList#getPerfdata Async ```js statusList.getPerfdata().then(function(diffPerfdata) { diff --git a/css/main.scss b/css/main.scss index b39cc33..d897665 100755 --- a/css/main.scss +++ b/css/main.scss @@ -19,8 +19,19 @@ $key-color: #F1595F; "syntax-highlighting" ; -// Give quotes a GH-like appearance +// Give quotes a GH-like appearance. blockquote { border-left: 3px solid #EDEDED; padding-left: 12px; } + +// Thin gray line. +hr { + border: none; + border-bottom: 1px solid #EDEDED; +} + +// Better separation from HR in Guides. +.main h3 { + margin-top: 15px; +} diff --git a/guides/cloning/gh-two-factor/index.md b/guides/cloning/gh-two-factor/index.md index 51c66f6..dc414f5 100644 --- a/guides/cloning/gh-two-factor/index.md +++ b/guides/cloning/gh-two-factor/index.md @@ -1,13 +1,19 @@ -Cloning -======= +--- +layout: full +menu_item: guides +title: GitHub Two Factor Auth Guide +description: How to clone with GitHub Two Factor Authorization +--- **In order to run examples, you will need to [Install NodeGit](../../install) first.** -[Return to cloning examples](../) +[Return to cloning guides](../) -HTTP/HTTPS clone ----------------- +* * * + +GitHub Two Factor Auth +---------------------- This guide explains how to clone a repository, and in the case of failure, attempt to open the existing path. @@ -29,16 +35,35 @@ However, in your project you will most likely be using the following command: var Git = require("nodegit"); ``` +### GitHub Personal OAuth Token + +Before you can clone a repository, you'll need a GitHub OAuth application +token. You can find more information on generating one here: + +[Creating an access token for command-line use]( +https://help.github.com/articles/creating-an-access-token-for-command-line-use/ +) + +Once you have this token you'll assign it to a variable in your project, for +this example, we'll call it `GITHUB_TOKEN`. + +``` javascript +var GITHUB_TOKEN = ""; +``` + +Keep this variable a secret. If you accidentally commit this key to a public +GitHub repository they will immediately revoke it. + ### Clone URL The first argument to the `clone` method is a URL. -In this example we're going to clone one of our test repositories from GitHub. -You could easily substitute this with any valid http or https Git repository -URL. +In this example we're going to clone one of our private test repositories from +GitHub. You could easily substitute this with any valid http or https Git +repository URL. ``` javascript -var cloneURL = "https://github.com/nodegit/test"; +var cloneURL = "https://github.com/nodegit/private"; ``` ### Clone path @@ -70,7 +95,7 @@ var cloneOptions = {}; Unfortunately in OS X there is a problem where libgit2 is unable to look up GitHub certificates correctly. In order to bypass this problem, we're going -to bypass the certificate check. +to passthrough the certificate check. *Note: this is not a problem with Windows or Linux* @@ -80,22 +105,38 @@ cloneOptions.remoteCallbacks = { }; ``` -### Invoking the clone method +#### GitHub credentials for Two Factor Auth -The way NodeGit is structured is that all [libgit2](http://libgit2.org) C -methods are dynamically generated into C++. Since we're taking a -class-oriented approach, we make a top level class named `Clone`. This class -has a static method `clone` that we can use to bring down a repository. +In order to authorize the clone operation, we'll need to respond to a low-level +callback that expects credentials to be passed. + +This function will be attached below the above `certificateCheck`, and will +respond back with the OAuth token. + +The `remoteCallbacks` object now looks like this: + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; }, + credentials: function() { + return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); + } +}; +``` + +### Invoking the clone method -While it may look a bit verbose, it is symptomatic of a rigid convention. +You can easily invoke our top-level Clone as a function passing along the three +aforementioned arguments. ``` javascript var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); ``` -Notice how we store the return value from `Clone.clone`. This is a [Promise]() -to represent the asynchronous operation. It offers finer control flow by -allowing us to capture errors and fallback if there is a clone failure. +Notice how we store the return value from `Git.Clone`. This is a +[Promise](https://www.promisejs.org/) to represent the asynchronous operation. +It offers finer control flow by allowing us to capture errors and fallback if +there is a clone failure. ### Handling clone failure diff --git a/guides/cloning/http/index.js b/guides/cloning/http/index.js index fa68e73..36eecfa 100644 --- a/guides/cloning/http/index.js +++ b/guides/cloning/http/index.js @@ -1,4 +1,4 @@ -// Require in NodeGit, since we want to use the local copy, we"re using a +// Require in NodeGit, since we want to use the local copy, we're using a // relative path. In your project, you will use: // // var NodeGit = require("nodegit"); diff --git a/guides/cloning/http/index.md b/guides/cloning/http/index.md index 2b2b115..dfd52af 100644 --- a/guides/cloning/http/index.md +++ b/guides/cloning/http/index.md @@ -1,8 +1,8 @@ --- layout: full menu_item: guides -title: HTTP Clone Guide -description: How to clone with HTTP +title: HTTP/HTTPS Guide +description: How to clone with HTTP/HTTPS --- **In order to run examples, you will need to [Install NodeGit](../../install) @@ -10,8 +10,10 @@ first.** [Return to cloning guides](../) -HTTP/HTTPS clone ----------------- +* * * + +HTTP/HTTPS +---------- This guide explains how to clone a repository, and in the case of failure, attempt to open the existing path. @@ -70,11 +72,13 @@ The third argument to the `clone` method is an optional simple object. var cloneOptions = {}; ``` +**If you are using HTTP the OS X issue below does not affect you.** + #### GitHub certificate issue in OS X Unfortunately in OS X there is a problem where libgit2 is unable to look up GitHub certificates correctly. In order to bypass this problem, we're going -to bypass the certificate check. +to passthrough the certificate check. *Note: this is not a problem with Windows or Linux* @@ -86,20 +90,17 @@ cloneOptions.remoteCallbacks = { ### Invoking the clone method -The way NodeGit is structured is that all [libgit2](http://libgit2.org) C -methods are dynamically generated into C++. Since we're taking a -class-oriented approach, we make a top level class named `Clone`. This class -has a static method `clone` that we can use to bring down a repository. - -While it may look a bit verbose, it is symptomatic of a rigid convention. +You can easily invoke our top-level Clone as a function passing along the three +aforementioned arguments. ``` javascript var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); ``` -Notice how we store the return value from `Clone.clone`. This is a [Promise]() -to represent the asynchronous operation. It offers finer control flow by -allowing us to capture errors and fallback if there is a clone failure. +Notice how we store the return value from `Git.Clone`. This is a +[Promise](https://www.promisejs.org/) to represent the asynchronous operation. +It offers finer control flow by allowing us to capture errors and fallback if +there is a clone failure. ### Handling clone failure diff --git a/guides/cloning/index.md b/guides/cloning/index.md index f788d59..6bb35af 100644 --- a/guides/cloning/index.md +++ b/guides/cloning/index.md @@ -1,13 +1,15 @@ --- -layout: default +layout: full menu_item: guides -return_to: - "All Guides": ../ title: Cloning Guides description: How to clone repositories --- -### [HTTP/HTTPS clone](http/) +[Return to all guides](../) + +* * * + +### [HTTP/HTTPS](http/) > Emulates `git clone https://github.com/nodegit/test` diff --git a/guides/cloning/ssh-with-agent/index.js b/guides/cloning/ssh-with-agent/index.js new file mode 100644 index 0000000..fbb2849 --- /dev/null +++ b/guides/cloning/ssh-with-agent/index.js @@ -0,0 +1,44 @@ +// Require in NodeGit, since we want to use the local copy, we're using a +// relative path. In your project, you will use: +// +// var NodeGit = require("nodegit"); +var Git = require("../../../"); + +// Set the URL that NodeGit will connect to clone. +var cloneURL = "git@github.com:nodegit/test"; + +// Ensure that the `tmp` directory is local to this file and not the CWD. +var localPath = require("path").join(__dirname, "tmp"); + +// Simple object to store clone options. +var cloneOptions = {}; + +// This is a required callback for OS X machines. There is a known issue +// with libgit2 being able to verify certificates from GitHub. +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; }, + + // Credentials are passed two arguments, url and username. We forward the + // `userName` argument to the `sshKeyFromAgent` function to validate + // authentication. + credentials: function(url, userName) { + return Git.Cred.sshKeyFromAgent(userName); + } +}; + +// Invoke the clone operation and store the returned Promise. +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); + +// If the repository already exists, the clone above will fail. You can simply +// open the repository in this case to continue execution. +var errorAndAttemptOpen = function() { + return Git.Repository.open(localPath); +}; + +// Once the repository has been cloned or opened, you can work with a returned +// `Git.Repository` instance. +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log("Is the repository bare? %s", Boolean(repository.isBare())); + }); diff --git a/guides/cloning/ssh-with-agent/index.md b/guides/cloning/ssh-with-agent/index.md index e69de29..bd8c805 100644 --- a/guides/cloning/ssh-with-agent/index.md +++ b/guides/cloning/ssh-with-agent/index.md @@ -0,0 +1,153 @@ +--- +layout: full +menu_item: guides +title: SSH w/ Agent Guide +description: How to clone with SSH using an agent +--- + +**In order to run examples, you will need to [Install NodeGit](../../install) +first.** + +[Return to cloning guides](../) + +* * * + +SSH w/ Agent +------------ + +This guide explains how to clone a repository, and in the case of failure, +attempt to open the existing path. + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var Git = require("../../../"); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var Git = require("nodegit"); +``` + +### Clone URL + +The first argument to the `clone` method is a URL. + +In this example we're going to clone one of our test repositories from GitHub. +You could easily substitute this with any valid Git repository that is +accessible by SSH. + +``` javascript +var cloneURL = "git@github.com:nodegit/test"; +``` + +### Clone path + +The second argument to the `clone` method is a path. + +Ideally your application will clone a repository into the same folder path +regardless of how or where you execute it from. Paths are relative to the +current working directory in NodeGit, so you will need to normalize it first. + +This is very simple in Node: + +``` javascript +var localPath = require("path").join(__dirname, "tmp"); +``` + +Now this `tmp` directory will be created along side your script, no matter how +or where you execute it from. + +### Clone options + +The third argument to the `clone` method is an optional simple object. + +``` javascript +var cloneOptions = {}; +``` + +#### GitHub certificate issue in OS X + +Unfortunately in OS X there is a problem where libgit2 is unable to look up +GitHub certificates correctly. In order to bypass this problem, we're going +to passthrough the certificate check. + +*Note: this is not a problem with Windows or Linux* + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; } +}; +``` + +#### SSH credentials via agent + +In order to authorize the clone operation, we'll need to respond to a low-level +callback that expects credentials to be passed. + +This function will be attached below the above `certificateCheck`, and will +respond back with the credentials from the agent. You'll notice we handle +the second argument passed to credentials, `userName`. + +The `remoteCallbacks` object now looks like this: + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; }, + credentials: function(url, userName) { + return Git.Cred.sshKeyFromAgent(userName); + } +}; +``` + +There are many other methods you can use to authorize the SSH connection without +using an agent. For now they are documented in the [unit tests]( +https://github.com/nodegit/nodegit/blob/master/test/tests/clone.js +). + +### Invoking the clone method + +You can easily invoke our top-level Clone as a function passing along the three +aforementioned arguments. + +``` javascript +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +``` + +Notice how we store the return value from `Git.Clone`. This is a +[Promise](https://www.promisejs.org/) to represent the asynchronous operation. +It offers finer control flow by allowing us to capture errors and fallback if +there is a clone failure. + +### Handling clone failure + +A naive way to handle a clone failure is to try opening the same path. Clones +will most commonly fail when the directory already exists. We can define +a function to attempt opening in this case. + +``` javascript +var errorAndAttemptOpen = function() { + return Git.Repository.open(local); +}; +``` + +This will be called as part of the Promise resolution in the final step. + +### The Promise chain + +Lastly in our clone operation, we'll assemble a Promise chain to handle errors +and work with the `Git.Repository` instance result. + +``` javascript +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log("Is the repository bare? %s", Boolean(repository.isBare())); + }); +``` diff --git a/guides/index.md b/guides/index.md index 6653b9e..591e91e 100644 --- a/guides/index.md +++ b/guides/index.md @@ -1,5 +1,5 @@ --- -layout: full +layout: default menu_item: guides title: Guides description: Learning NodeGit @@ -26,7 +26,7 @@ description: Learning NodeGit > How to clone repositories -- [HTTP/HTTPS clone](cloning/http/) +- [HTTP/HTTPS](cloning/http/) - [SSH w/ Agent](cloning/ssh-with-agent/) - [GitHub Two Factor Auth](cloning/gh-two-factor/) diff --git a/guides/install/index.md b/guides/install/index.md index cc6c2e6..db13fab 100644 --- a/guides/install/index.md +++ b/guides/install/index.md @@ -1,5 +1,5 @@ --- -layout: default +layout: full menu_item: guides title: Install Guide description: How to install NodeGit @@ -7,6 +7,8 @@ description: How to install NodeGit [Return to all guides](../) +* * * + From NPM -------- From 328edfb59c8d8f0709f5ddf92501f6148039a446 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 2 Mar 2015 19:50:11 -0500 Subject: [PATCH 17/24] Added logos, played with homepage a bit, not happy --- img/Axosoft-Logo-Revision_crop.png | Bin 0 -> 16031 bytes img/GitHub_Logo.png | Bin 0 -> 13001 bytes img/bocoup-horizontal-100.png | Bin 0 -> 35647 bytes index.md | 123 ++++++++++++++++++----------- 4 files changed, 78 insertions(+), 45 deletions(-) create mode 100644 img/Axosoft-Logo-Revision_crop.png create mode 100644 img/GitHub_Logo.png create mode 100644 img/bocoup-horizontal-100.png diff --git a/img/Axosoft-Logo-Revision_crop.png b/img/Axosoft-Logo-Revision_crop.png new file mode 100644 index 0000000000000000000000000000000000000000..543236ba31474f83477970cceb8a7b03f34d47bd GIT binary patch literal 16031 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 Dq_KSN literal 0 HcmV?d00001 diff --git a/img/bocoup-horizontal-100.png b/img/bocoup-horizontal-100.png new file mode 100644 index 0000000000000000000000000000000000000000..741603060f3efa327e7cdb42b464c0262aeb3331 GIT binary patch literal 35647 zcmX{7V_;=X*ENjBM#o0S9ox2Tr(@erI>wG|+qP{x>Dbt@zrNo4Ip;^MpS5bP8gtAs zN7af@l$St+!-WF@0YQ|K6jcTR0sS{XOkkk?J(mL8EkK!oJYD`{wbv=J8tk;lS^ChV>f7q6*IlurJ*)!^B)xB&-Y&o9 zi?IjZSZOscjuG2G;7-&;^G7rad;`m9gkhTaAP8y!neHGUN!pC+j*m`m-~sfoEhtaV$h`g4jK}V;07u?$ za2}q{4{KR-^I8ADz0QIDu;2A5?iO*m&P%yr-;7jMycI~kwvZ?iz>5D+5a?w%gtj5Wf#59z0Bi1w(dr|5stgEEYM7dkZv zeD_?(uIKtfql|oSoB3ma;Ha&Y&VFrUsv-(Tv4T_uecPdx1*XEc*v7jfB1gRN5S|wa zgOdm%S%82WLh1$(g@Z^D!zTsc&Ot%-VQYfu?1AV8V%>&maG?$bLBt^}^s~hwM+)JT zfj#EoY=P?Sfu2Gu^sz94n)UH&f>j!#*#z_5;sp`Yioz+0ApF1^0*4h!h~q5+vlJ=) z$ufrN6vUekLWLh0LN9cth@^_3CWxqr=Yo75CY~>Kir9o;E4Z6y07Di8Arx#VbW1Yy z0|?{#=jQ;JBhudp7;#b3gdgeQ!lLB+m<4F_0FTf#A=;npD4mi4Wa6lC_>w3^yvk^n z(M=*=#3FHyW2`2i4XEoumqJLSrExN2vtzkb2$8tMv8Y17@*fmas5Dd=sgaTcsl}HI zxs`&;el0Ou;ko{y5MwC}nTxdWZ9?2YBZ!a}$I7#wCpi82fZ&DE9oBCMgUug}FOF;+ zb=N;+$jr#W*vjOaCN%|Th7~o;Y#35Ep=n&j!j6y`O*gPJ@buf@w?_Rt=Wl#GdDPP2 z#zDwER7c1*@h#FVnJwIFjvTPrV2vTXgY8?T7g`^-9%zABgW+$A0*)C*~yx$pV2N!>VF`X_ywFylS*2{f4I>PU9ZV>@w zx2O-Wet&2O2nJ~XViCY+b7%ADQR~5P%XAPu$Uay-Tt8Sow4Rxt`ZLwBSg^b>o3OYr z(J~icL*mHckmA@gBQg1z6&NZ1b~2SV?igepjW)zIVK3V(=|CTQ80-*q&x&n zJ7S>;REt>-V*@;*TtMNmWx{20=n(2KY*M;uyScgvJPAJuJ=r3eA@RjJ#KOg5;rDXA za?)|3aoIc5JE1s^J9|1DIU+jPIyXAvIgUDUIL_Yfc^-OpdDPq^+<)vH9W)=y{k_`P zJ1IO_Jc&BC-q+cqJkmHqKCV5?#q5I_gMWeB`jPfS6lMa(3pNEN7XIfSlaQ_uI~X~* z!Vru<;D2aB3?kyf%c4ZXStDqpP(>A@C?ee={7?=s8_^~)@i2K%Q&FDLYB6(D^AZ^2 zB$H0#UnqW2ol$F%aM6iT7n5QzEYm%zX-jVCy_Gyz<5=O4rlY5Wri*BCt^ZiZTu0=x z^0x5tvKvFmhNW>725NJ373{#9j^cyO>UlCNV)NIt%x%)gveid&^k<6tH zjZPuJ1h~$~MCta41nRJgMyuj;Z#H^1j%MvwhknDk zxS_eNy0zO+%l^fmrQXp$#G%C7#o^68W+1Z8n4w1AM%qWBD10dTDW2t+N+?RmONge) zrhZR{PM1#;Oyf;I)3VYw&>qvh(hbr0N#lXBxG<3Go1 zm6MbwYVvA43_RnhleLq)l8#fJSoL_ji9d-4*$&RsA}T{P04#jW1}5WX+g+jUm=3n= zI&7W%Va$}==H#nXttXV97KdGPT{q^#7=C#Ikv=l?iBg@`2ZPoa6NevbiCp9zm zy*05ETUG7V1=fgH=jO(?(w6^Nz}auKnfhB7XjQg%iWL>_v;TGTqOm}<|6Dp=V)q`s zoe}Kx@t)Mn=`1E#BCyO>G*>-wOVwCaZnb?rP@TkR1EX8t4i#6wxWuVs@GO>AcGCZC{bE7l%!1PtNXU_U0Nm>aBnL zc>8O}c1C(O8pPJp9O^p$2#v>$hn73zr@f7^@$t#^N;Kgw-Fxfb-dWu8=(B0&{b)V5 zdSH*kgTUjuTilC$nQ_^(eZTwuNot#G)caNXG5gnGrFX?og3u5d4jB^3I~Dls@%yAFpy9a-ysQ%e1Ob93`O51x6h zYt6#nnuGAgu6rzvv6zwU-Gijkh}2H^q*=9H>0bHoQc!#FUdTd`Q<0E?q`_HHPBEw) z0AM1VKC(Q*wtJ3Xl}NzJk=BUW@ohnNVe07Ya6GA=hP3?C@_AvC`Mf5@Ona*jV6yWA~b&su?`{9PxHOWnld)H~#rrMV8U5+>4ukRi7A82UgT>;!P z+q20F0Iq{i6&n?&C{xqBiC>$2ks0fwWgko9iIcIc@hF4(NUkiayjd4Q7IS7wdVc0B z7ti;3|3#+#{z=ve8)h5Ue3Z3)Zck^ki!Ikj_jcqPbfDV#av>mh6?2u6J;&#K+voQ6 zufV5)c&pjo_JecSdFNWqo&G6c|1&?Ar?(xM7Fh-G1^^g+!v_jc5gA1liTMd87m6^k zYeM3a62|P3Wsv5O;ZP6|d&}|*GKq4Dvx#*JH;QUz|q& zTV3m&`7bQ|ueZ3My(PR$ooA5fV{2yY=&uP0`E&gAg?9e(EA?P~pnfKTGlSJa9zkP; zY{68+R3g>JScKc~?xHWFZ(}cF>-gtW)R26Q3>W;_8mdgCrySNpl6jJI?D?H+6<3l# zAK&kr92YV9k^XqLq5EVp)4kQv_3=>@w0D6N5-R32tV@1K-Yc_eC%b(~XHCmcCRz1R z+fcny6JKUpPFnG<^qp_iP~Teqs&475Ewf~MqrS=h$pd#K?4Hguwg=O)*u28$Z(m@3 z`t=EIi;PF8_JH|(^kj}$Bp{C?OW5&2=E-SF=F56v+25Esdogm|bxJ^#shRb`9FkU& ziITnSdGx{kBzL#f{n{Q9+-h^fn%b4Zvb(F7ZV8BrcFL)U<<1fhOG$T2oRdkFxS7ry8S87C zW*yM&M;)~4rx=JeGB`f{JM|ZMuySN{uzo;rP`M94WyCy0-9p2~pvSyJQ9~b$m=4#F ze36-u0WCK=lf{A8f?5}Ack<+bBn$yWHcRI?#5PpuR`0`|klifVm2FxxT6L{-)tHvc z74j7)R$A9cRC81t7#bRnnY4Ly42&H_@1@fn$S1;=Xq%Clu^gLX?xZNENT@4R!`p1x zkY5FCM>TR>fzOn4D{^+ZUph!T@?Ve~M>=IYTRZpe|2_P5BX-t&_Bm9##j!FwV!$21 zY)IokTlR~SZiq*fA({antp}G0Tg&%LIZ38T8$oBv=#m#-4R|0zpCk1{c8HALz$;GG zfs0B@AcW>sPr-v=$>2g35=<#^C#d>3Nj(6zurE^ql zKr_qVV$14dw~71J(k$^}>EiG?^zHBZCy@n|6u$4#2E?WVv`!V8I2beKhar3@35cvD zXq_TR_!V`)DK?1W=XLK4@+tC3(H|U2tRKPYCHzy2-9iXs5XpIX(ZOsmg3)mZQ;6XC zvSpCCVLc=kC~za-j1t8MOhYL3LoWn6}V`jt!M)!<%l7n#m z!3Kc_xijEk1aklS;LZcj2mC8wEU7F9n}lCxOH7zJg4k1}LRMQ&To_ZTMc7XKD@{11 zAR-~L;ZLMsvW%Qqwv0&Lul%DTTavLKP^YqIDQ6-$bqK}L3(>~1`coFiR+w}tfGSIy zeVf{KG)_^@W6s64q_&neYmb?`g**BCBcKipBTN^X%?~)N71W>MK9~gPG-!ZChlHhg z)I_tCpYf0l?@m0xU351L|J(tp#j@K9>T<1$FpEPAH_PtDp9^Yp_lvcxnw-;yCf>)P zcNOJn>yY=3GIo`k7ppB!Zer$uSx>GhPD?KL&d82sPY3T6kNfwnr^II>xF&=Rm2lBxU49=$aC9E%W=MkBLm$HnlYMOC2jOmHMpO zgqn;ZOf_WOemYfnN1APdolao3c}KTb0--7&?xl{mEH4?q4IA!#l}(kuk0;O}!%qFM zc_OPn=u9Vyyzv=|NR>abYS9+omi}|GQw_-GbMip{zSH^{Z$J*+BLU~X4-NJtz*M!% z2(GVbtr*M(MX9OPhENGxZHT>s=qJ=vCv1pd4W^|?!wUH+$T(O(0v#Xa5xy3nKpzc<9AqZ6Ie_m2B@$IXl4O`t=d&hggNzj1*r#^zbPM$Y_n|=IT%i8j zX`gui7b;`|oHFVH)q*QCPlKZq0Z<=~Jd#kFd_q61Hdbk~Z;LexQ$$BLjyQUueIERc z8A>hmIr^6@iEQH(mewDwW5e9s-N#s$ z8-(etDl%w)r}P6Y#Yt&6Ydviztd1@HR#8n&ZMSWr>YceZ{bMJ84m(b+uN*~WMtf&d zCTheY*V{)5P!s=x!OJ3)#!yG?$6F^XM&ZM_aQsWm&mly0CzT+>Ecr`8O~yMnKI>N+ zTMj|aWY%+AUu#^+sZqozA~19NXeL=y?TYQm_4Msnyt1V5IAc@1diN%2Yx#8TbfSZD zv+;%aEZ*V9$OrzWpt=+41~%;a=X|_F2En8>aE~LIisofV*-r6bMxp+T5wC2p`%f5e|bIwwxzZ zH@o|j3T30NWHI&y`d9daI6FyiUeVthA8ffOHwkwmNv7*GeOh>Sq<6wnfc2>JzdUCY zy%X(?Fb)SuDNC0BtOjEBLt%;?HH{VPLc15}th8?hVY^XDL~F`f#$ zGgTB_C6vz_qjQ`i38%lK@5#>b`tj#T>!?3fI7R`=F={;KGMY2G07E>br-YTXmqv<| zyvmM2zNDk3rGb{@u+(G6#viDNl0fy0r!@NHoNB-1{uN8L!b=t+IaS%HsVBNiTJP#t zTj154dEr$r7sNmhyfc@J%)KGd=AQjQ>sbc=2eJ=Z7AiH-6Ia1omk6u#)Idms$1}v= zq3)uu!zr34%Ym~njnPJGquR5hMsy!Kd}?}n#I|yMd6m0=GMA!wrXjG<@m}3q#-vhr z^ZDr*>4YA5eVx{;o+ouYx&R^$g~9Cd{-9%9RHh&w-}Do zq1B_YUu(KEHWe{@&%j8JO6TX_d0XRN{+sK%`zrDUdMZq#@{wq8m38Irf`J2$f8CbZ zp5BN4bMzSgD)p|KX7haW-N4@8c{6|4^NY_;MDkVwTZIf`-d2(6)ePjRB71o%!ZNjlG+V#!y&h_5nnd^C+p1%7&HN`U9 zrd*!Hh24MT)GkF+-o(%6bgouydprOQ=4#GSWneJNf;Ia#B+1?#-0x2xlLg^~IwqAz z3ESrFHJAImD44!8ZnP9VBn@SH4c+U5p6RAWU4JY(Y8=gFoYe=tD-h^% zEuF}Ssb3;=;w9Ff=x;Uv^$=sNwpg=GuK$Jo-^}=|u=tF`$?RT*6n}IFDe?7mUHaF6 zU5A^^bQB59nV58I*vGH>=I0m^LdFFWQ)xVJ#^Vj%4ERcXein|5E#>8WFLut2mOu)B zddq3^oU=SBx>UvgEjf-n&=*P>G|O??T?TEcAeD=6HOu-&0UnAzT~ALxjupG6Qr7ox-MU7!_VUXdTcOvkXysE|l&3 zbjbfc^PZuMVQzpbF=YTtIbNc0M~&>oYtT{+K^jv}nP6gYukJRSvp2yV*A3Bipzr)At@# z-6yF&sd#} z3;D*F-Fg0dHBuLZS22NEV<4^-Lof4r8WBN`#*2so>ub58jDsR~?9~iUr|$t!EU%ST+jgho49Z`*I_m~>68w1;+H z!rDz!VZYS%B}^us-+!UebASHfKM}e)`ah)28K9n`!MLvd$ygdIh#yt+=vwX8TeZM7 zzLP9tOgdpCbLg6vXI4YN%_QO$+QW&Z-12K3RYQHCFjq@OBub@ziQAveWF6%seA&^P0Fw~k8Xq3ZYG8Ll#F5BUWPYiTJ&{SkxqMO7demq z-_{zC1oFFGoi(9}V}Dy-7eULh#3q+XRqu3UYZb-rxm-xR!^!h^b(L+LxRP&f#PFOt zr%(9wrfX){^Iuhbh0+LopQ&13V4m<1oSjqN-&@CWvMIhk&k}I^IH=`w%;U>>V)NI{ z^R7L0axuVoOlPEo%b^7?6(QU$vKJAYJ7FqW_GqQHFaBRX?~>0^66+aWHyg))6?t1} z^%=J`m*^tid02Z>t)Dwk7%sl9DfYjHC1IsgEsB5*Xfj(;Bw@A*H6IoQ4LE*lu^si_ zLlJP#w&|oAA!+mH)p_h~Zn~-Yk*Ru4vY~|~t75$#Owa#W1y!0y&uXDe9A6Ao@6gem z$J4EuxN)@hq;Ad=o9#rj7<*p$G)U2p>_E2$3#9+aQL|Cq=fvUsAG_9~p0dRSNf0E; znwkz{L4_hAzVeoE;c`?nn^#C{6K5J9Gv*Jy9N!wxm^^CP@&%+5@_>{WpOrbp@(*j*AQ1kOEJZeD_`&DQMw+T z8kqwSj&qxv@~>hNWhi#;HFXw^DOQ@&&#LN}HZiu%D=JudHzQNBbix=S{>NkZKVV_- zy~VKco9%9c`hObJGt_uJ771YtE7+`=vWt?|^7Fck*OwPlP^gqSBk{R7IAvcP(TuJx zMbpeGw2UO!9fvauot;5tm@(r6+EHO!Y5Mulw^WtpQX@xHEb7bUZ%p*%b77KjnB|V! zx349)(jMuI8XL;nZM`{LOf^_{P@^bytN&_J?aPBIw}eZVJV&~B=97mukY z;E5U^tG;{Y4SSN||5qIP{G{_%aerxNhYU)mwwCmr(2T_EG4DCHGf7GF`fhd|dODx9 zpRG``SHt=HYWq1(r!{nW=+Kr&JjsI!LfOZ3eApqA1^cy{-4xe%XcqvR!X`G3vgIM# z=A8FCGxsCV&+VLSEXPzsx;+1CIyDioEK|KvUfjxM{e_@tFA2ZT+q7kGZOP;?COn84 z>LLC?&QxjYUYy%GBSrilSG@g8lc^2x;y={2?)w3GME~kd7;v z)kH*2*@X&aY}s58CBT?^nLy|jbbT{X#Z z*7mPO1OLX1Fg5E+00YWxC+g2$DfDB{0yRib77xSId5MeEk2bXYEwTSAPeiDvD3Zn1 zzg&v1q}nJ|!HTZ#ig3a$7w5Y6%BriymUB($d^TH#^vn@zALOg3Bnx6XAX2=Ms+h@x z?l+ycu5-`zkOS}y?F9A~(;dUQ2s!lp-AUqa`${QMS#mlYrVO%gWO8&=TqiDpupE)v zH&ARH3LNen|6^(gvN_T?<`hd2=qxwdSKg-y0J{2XurtudE)j&XFrp}3OK(3H1^Lrr z_(F&1<1`Lb?F3LMCAxpd7wgC!@qD6mQ1W_|$ty+*gr) z4#700zi}yv)p|!Y1;vD#R}n<8DY`*aS}XbSIi{~7hO!nGz^98Yy6$I!(NYF>EGV0i zpe%@V(@&Hq|A7INCQv?6ZegZRPHw=1zLN8@!DN7^qRwG$|9I)GIP%IiCYw9I1dP{- z(noU?O~Ea@#;`9NJ305p3Q+vClPRDWBmusBm=MQ;kT;URlqe`8c487L5Ylqa2I;2& zOrP%Dvb{cJVPNoVh5TZ{13qHuEbyn&>z!-Y843vtoMLV{P0~46R94oz%T-fMZ$W7I z!}3T_QU)T2LvVvyhL$EI41o1=e8pEt`(I=n`i3Fl`&->rfzpXd&3Z0Z$wxLEvh-zj zjwaXX9m5>N?P27LkWS5U!BFC!sJ3>~=$=<#hIKCmO$PbG{xG;-1cWo_D+x-+n|KPBQfBx;}5a8#GuhmdIpgW|saD&gUqY zKefr>IO%Kh|C3Xgkk|(;29|v(nGJQFaSY7v@Bt27lpyd`6!RJBZ_U@eEvMYJ41)C= z&tfaZZ{WnX3)8;ZlyqJiS9Awi-c@{nu-t+vN0mWy`Ttt%i&lp4L(ucF%x?g>Wr2vF z9SG#@dq|IQt$$Cke=d$x<`CGvyq>v&ZT6KpWo9>?4 zvaq>YX>o#@hQawMGP1aWk0Fl-P;G5BpAtF*Ug`FxoWCTJFC#HU8rd{YxczeWx)XFi zj}p!g93u_R^#P8vwAyaEiTnC~POYr048YWYgeQUsib)R=&$qO&S5{xgxLtex#}6Og zQh8``CH?*EPa+kODK$1We2pd8iEb$_u?!4LBwnqAHKsSkk;KNapt-;9-Wk2jOYk8s zf}G!JVdqhZC!(BnNaQ*64zidruG;KDb=u(CRzeCx*+6CeEW6ZY$>ai8p~t+Hn>9~+ zySwM_w@SqAorxW5ZzN|ikiQTAx&hk_aE-L(f6x10HLrf1jKtv8g7VUAZf?r)5~e<- z_lc{o-~Ka(!Ir;JkxiU`{>Lf&lBi=K<={xkH6Q0J0G_)CCGz4@I=%Y&DO}}qGoSh9 zMmjqyoqZ^V$AGfkGHZp|bU}B0iT(*csQ5Vfaa1L=*kPQgWzU5mm-t}uf^_`ughL<9-mdcV?>Y1`@?3bd#;xP)ELe4`_|-}YaAL1h+M-ZhVb z8EvNpQ9X^uqp=M0A*=gAoXoPGumPoNA{ZKh*8fc1tR|wOB_Wn)f&aH^&VQ>u>p}`) zW-D~sdIoB&=&S3c+lL|$1)Na0bfNbMf+_|I>5*AcG*mljjlr*xS8>F7H28BrE^wM= zcC_R4dKZO6V63|ADqU-90oQSz(vfk3n=#qrI(OC60E2`KWLdc$Kj^n;9M9 zc~tPLo13n25t54}i)+Vj0$QrN5=H~(Nryc+2hZ-RN2!!8m?+whr0R+QJV808GkJ&N z-^3-k^elHGy&t0=v}a!gaazS*1UAWnMmsNIIWs&)iwrVwUqzibFvpvZn`_B&bTYAF>vp$RaHoKXlDWRKRlzOH(|ewou_%bsjr7sz#GFIa&;Lyd~75 zp_~hK7e}7ligf(2<_}MEITMb-HaehseLu>cvDAJ&OM4E7?4%HO!jpx-;f@%D&ycuc z0^|mhR^a0=@_VlD)B3a7bjD-vR!@!;rDb(`y|RbY@NXX+r~jA6U$atum3FnPEh0b( zJx3p-S4wGM*LccPo5Y3*_zb^kV)^44g#{yvRq15*z}U7qrtOZ=&eo1i)36hbCi&b0 zSpKl=OIal#zUNQ!kb5}KkxbXp4`u-=uWp{i`l8WI>_>032x5xQG>8DPFGE(8TTwg` z+v%A26*GH3zs;wW4hj~k-eH8Ttt{49w8rvyZ84V5M@@Tu~8Q4 zL__@>73>{@S=)yjn-Eon{{t6;bRW;JZb%8CE&qik&|+pbX^IUMx5oDDHFI{R{Gxg# zoEDaGwD8dAM+Lf&mOBb<8i5gb=U$LJZ-%Khh*sPl%OVB%&Y|&U9 z%I6)U+sQSW=MMuU0NA{+2Blj`d+Q{W4qW52JRiM`REtKQdh5D1{vDr1*e+>DhAlcWsMBDtS zpwOo_`-6%-6BuzR4FCA|fz(uexiuqjKETqb;N)w$nIhdGvnx*rjsLjfSMc;pq)*}~ zS<;A#1XJfMZvv#2XPLj7bvG>dnA8@7*oMkDRT;013)S+XwaiudkB1KAxat6l`W+lgT}>w72GI zs+YMQ#HFfdJ%t1wO$C=x?{W{luwDBEG1VD?c_1-r8dF3WN^lA^HDd7*o$G4tp<^=> zmim23mP`5QcAmsinw;bF`{;0&uig2?9dx=G1R&hI=1c7lO{1!+N~T_`?<+{zhNQ0V zboT!&vm3HKxf^Kvm7(9WU2TOuuOeTdA!)oNsCk;v1U#V_VN-cQB#pSF&u%42;-E=H zgld-hqMJUJGTr6okO@BY$?w}Gv5(i3Z4*TyKD||tD9Sw?9GU_5khO~zQ+rZG!p!0?_*@EW%eK?y?<<^H_ifC4bHRE z-tcKkeV?>U+OeEaU!Ic#mS2uLk2^V7YxNuWQT1-mTPS4HlnLNnPLu5H;qjhW&Dc~x zJE)-UTn?~kcg+a3dIvW=ktz|=4oa~yL?|%kijgy1s|H8wBVd^q1#AuDe;H~V8uCv{ z&HLh=Czcc}SjY0@&sAxnu=lG$ctxx0T?iU#UY;WrZKQ-qz zLsA(wrXmihu3w&7*+q}n+U=~g0wx>S}L%J*{ucvF8Q z<8hSH8DD5kAypS_tN|JI7@lT--^5jvkJ!MWU#CW%H>R0JG1HU^gT-@>CaAlPIeIsY zP&K1^TH2=dbPw4U0r11!{Y!ab3{AYOtu`MT|NPw^e^R~A*XYch7f>e8x9^6LL+0%N z%*{?I5EjLf#4~>X!wF;fO{|gY3}$ZD!zSm*#NlH7=iTda4(pWW%=xL2)x9=PHQ!9G zj*_9Sw)XiKVLRtztzxrrU>y!CnIXHKCC4I7$cDQA5x?{0=DxD_abFHZcLOlTVA(G#cT2ZwbTxEoP8>Yx zK;!6c*oaM>XuogJt44q*n#!tBzF#A#J`Po|Wxx6OWhP%;Zqi@c^5~FBmnLI7K(jd1 zAWZ7+p5dc4Sk>Dl{H`Ug-AQLfP2)=eX3?^*!YZ(9%WeL^l3BG#uBt)~5 z%6Q9W(vT`%Wibuq=x|o?_^6}U4Kh**O}0Xn-u~EjO6rXNKS$gIwoOl?(`OI}Zh+0l zY-0EIrvBXsVDqM)@SP9hb+@LPy&~iwpFJ>J`CQRh)v|S=qDf5wDH%neXWHd5`t#a< zXFT=D5{AbhFENlNP~CTUHoajcTM~5K_H+1nu#o2NX9jDpr+1?zO{6uY!u^i7Qsd!O z9oNwkiQu|1km=UmRMvIRFjuRWIdWbA*Sdc4MTFk$Th9zq&)28m&D^()icqoxfYU(j zvU_+Bg>F%$DuM>BW!8T9-yzGtWR*v~o%yp`cw?RpvIY3*&_ zW@R_s`4i?=xn?y2pJCzQ|@$QbB*Wr6P_Z#QkN%CI)9!W`2|ZDeMcQ> z-Nh&)YVYmb?dEDs&u8jpk?rd@r|Uli!;Q9gNuJl?~YjVLwo=sTURDSEJJe>@O6R<6Lssy4<+0j7+87fi^-+y9|W~ zJdd4u-mU7pW&4`kjlt_nRlgQe z71os)JZGCnJ~JRzv_Us6e95qQ2cUjyuzrCjCHv!OjVo?~C}GiIo_g6oDmxA_-ZA@J ztnBPeipuA_vHj`%(x zq)4;9_b?xfF{!Y^-4n{~<`xOjGVxf$(u?FDT$${T?ZjbBMnQ zeoNTI^!u*jVaPtiTt~u%=xYcNqzk=q5?P5y1oG-W+Un8j!~Mz?{$cilg8WgHMJ57S zgTdStQ5#G?7+bXa?N7Xb;d-i#bGk-k8D27>1XRJ3T72XJUQ!^IZm+we131%j?{h4k zTJ+0MG%0_c3S?*fp>kxRDxl0}t>$d5yTV{6!r>{SO48k2JEot#&x{}TG$XaXb+0e| zI4MQsD2%*c*C;oZQ0QjpE%F4p0_^CTr!2E&G8G1yJxPhFPuf^TW&*Nw%)Z?0v$bAq zDsiS8M@HH#jd|G^{=BR3-rH{nrSObdqk`OSU|g9^H09w;aDRrtXHILGW0Vqh_0D75 zY1k-)Xw!dfUexlw*0M%9nLIAn`ZcHdUKtEio?(kp&NX6$`DV8q%pHz(-t>4E!bxP9 zcg&Gf5Bfce82COekL$GB5sY^ZuEjScJqK@$KsIn&^3G&`#*1n9tbt-KQ1n?QiIWa7M(_iu7d3s;cMm zbSM4Jb~WEah9n1y+VPmsRe5PnB6wQo`1m-oY2EJ83bAAWq> zY^4u+KAQLoQG0;}MtS{)^AcpSgNI}q4ZqkT(t}ZeK&rLpZ)afsV)RJH48Z+rqxm(H z!+vJ)jyqGcZS!O*9qkyW@%#ol@I2>SbR_oSQ)5TKnfdeOAPVo~Wz>G={$&JeP8?oI zsu^}WN(Wb#rbl9yfNd_ChOTd%MF&L&Q4Tu0g#}`6s3s@3Gk=5DvwOO$p=?<;3&Mh( zTz+QaA5gxD!?BEgw|Wzq8FNuU0jOX8 zDdKZ{MyajGVs=cP<3pmId@|FC2s-^|ms@J$@8;iwU^k!Rbn`6*fzKx1K6KwJYlHW- z61mJ7OA8B5X4DAPeJ{mp=;jFhl1`zNsv~guLPQXo9PjJ)XD9^h+qs`%_&^=tTMDpL zI(bF?ou(7DxZ33`^1PTN#`h%Ko#JMr*;@>rR}U2MfQ!XfPCI%$>7=u7Bs_M&kc> z7l1`0087PZE8|trmYRWKm(lHVZ5d17<1g;Zw4GqZR5q?(DTKFUJe1;CNy6cFpTybc z^RB>a_w!EX(#i@uYL3;O1U;4#QFKco?BJrjTh_LswsyxuIBBd$lsS#3*?l2YcWnUm zYdCt-#C`5B&2Qrfu}nK^iIv(X0{^C#Rnkpq+Wp{hkmC zo@1%#3{?ID=8PHOVXLRNJwK)!4}O=&$G40yR7vHWaU>% z0zg@o2u56B_t?*2uo ztCk`h?k)2XIV2;Njo;#chfFBe<>twKv(1&XbiUHLr71dAqbD2f`l4xkcDh+wD3?-# zbbEDrTT_d^3mnEe{uWc)@t4Y2z9Sj3*JjAG>I9y)7sD^CaAo3BFzMEn)l~p=60L`F zI1s~_23mq?w%=4p4GSa{e$R=6g9DJ4;A3_$5|gXlVzX}B`!dYXBSmT}!_kn#N*I5t z=5SiJ@cDV;PxQE?qL6K%qvI`YY{o&PPxC2Ma+0e_js77Ko4D%Bgpc? za))`hh9u?Cvzwu|8eJAtdPe;n^8IM=?aH0^sMIpSkJ=hK*a@WNe*|wkblB{ASdjVK z`*Flz4G#}*P+MN^`BIW;*FnU+Ap3+N`*RmmH!0@gIMe>?N5(>X(lhM~4o!OmbE zF659jxc#6Can1Lm;vgycy#tfjv494_>9;fn*j$%N#tgccOY19L2R znX&0Zxb*3#O+{5z7rNid0|cSoqAT#d4;(rA-?h_&G6v&(wm1V67qE{tY*HnpIYh`V z>SQRsDwek1A}q`BuET?X(tLN09H)1x$g$!>^DdC26WEERn1%Tu1mk@aVzuq?dr&;! z?I5y2tMB{M{jcEu+hX?Q^1;YT)`ecFv2T%p`&29j{VtQWI-}mM#}yra5iRk~#BMzj zYOrlcMxxE zE*fONzur>48f_(}k{a=wQpO9FW35-4G6&~{Wu$q{%)z(4QljJ`9JVQb?|2k1Pkoqy zI-;2k!Ss&P+@?){^0Pdi^1`pN#7=YgxA*qzy68u=Hpg#Y==}R@p*U*RAD99OpL0rI zh-C0RP-tQ~n$`RDSeq;M_oKSL97U?5fZ82SZXRR)|0QDU4ejzz!QOCwQM$XSdxk+x7K!v5?n0dml2f??j2uT--oY z@;9mMeqOsP2!p?IJEf7fhZC6;@*m=Tq@b8$HK?p(-c{~Nb_O zA6{IDgd)5?Vrb~zp-p&E-g&cCk^1GOcfFlg&TcoDP7=)x0Efc- z@yOXa3+jzTWQ3152BA8a)ch^3kf!qHkf6~A%EC>8%eu}xZ(E2sqAqZ!-=>)w9YqSc z4hoCSF!XaX(k-}ctmb%ME#RM}tAzaUUv#^vt&jwu3`(lTpAV$`hZEdb5choEr|Y;L zNr$mdDW@<}Q!_R60clngRrN}37X-pEm%~s14&HwsSeJ~vlABJ}gE+(9YFKFpjA=}vdd74oE56-l8ZVRA}F zw!C1CD289GIGm-2<&&fLb=p{UDv|0CQC>v-kRM`flfe%x?;BeLMxX?UfQl`}vcDd6 z`=+wslLgn*NVEO#!0z>w8bCQSUgy&e65&(MJhC^BY+tJKs$kG)Hmxu}^99eJ*#J^U z)2?s8!}|3yDj@H3+Yjv@+QKA(2+u!s5B1`KrnTQks}_VW;b_k|3%1T2V$e)gplAfc zijT!h1f9*r=map9n#U`__Y22+TPo#uy?A@Ps13~VO?DyuxF+u2z4PYl{K?$};D0-H z^574;xaZ7K_yFV2Q1Wmj9i$F;#M}LPYGwFa_+Yx$t#ETy-9_-FQKjjKe`7&AHzC1H zY$3qv+s9UACf}h~+x)ia|dEGJT15C{QDCa-+ z!EP$e;78q;S)+_myRiyS1dnzb6P<{HG|;&5<4tL?mUEt+8dHx4gDPggi@rxOnvX+b5Ge-k z(Etq0q~h;W%pIqHB_r*;dOW|<)f>%1Mx;JV0^HSU5i@^aGw-7-JkGWOocW(&gO?@u2m}Bl;LRSeCs*+o$;D} z2cy`)&SS%cArtx0K{~cHMY|Z$=kHw?{m3oZTLss}HI}_wBvavf7FW(2jgM(82T@TS z)2;lyv2c{7p_h>z4XSMX{ZK0K`MPEd;8WW6*{9m(Q&-O65pogbc_jM2BihYl@_{E@ zUQ-Szqdx8mfyeR#j7sa!^~;ZOGA!yXRaPY3oI;m4I{A@eFhLN!6A~eF#Jo0w zOkFO@^IR$SJyg@~IgUNP!4O&T!ZyVK@*cM%K9)jMjV%MmvGV#L4?^xco+n^}zEHSwS;)~F=}of=0tyZm zuw?ik30io1iUmb(cOOijW;0o@#x=cB2(xn%uzu^?t$ZPF++d1rSXVdxFO0i_p4Me$ z64gov5z>k7JreCzVL74Zs`ROj-g&^>l;VP4;mF{IQiR=bNyT)=g2(Wj9KC?&(Yt-7 zIlffmG1SYl#FU)V`>DC^)|)Fjl+e10_#-lYFu5@yw7Oz1B5usvtY@)Q^Ny{&`zVGU z575Ywc4Zh3xdz{qE{4O_$P2Ii(}R337E~{m*X;ifgFt-0!26Z7SJ9SSY@N`NUyS^f z(iR?~r*Rx$`nFT%dj!%2?8+&Q8k(bLYemyxRYfV8HWjg#(|VSGYBRh7>_4N#QmbW} zlRfMiBje)km0QhoJL}BQQ9jdzGZNW@{_d+-44) z9PkxYn^dI5{qaNdN8ZN>{XafPPN4;Y%akp}v0?%hf^#r8`i=d2)5k{Yv) z-&1rkZyq>s;Q73FBb9$76%q@BUvw^I^kRN|J$heiza9|E4(l0@DT4*V+Ld-L@f3$3@r2&9H@l{QEOz%n)cS z;MpMfOF+{_g^tm^oI)4vdAiUaqX9nVRK^ZUz5B0s;3GkPFJL_OZUH~^1^xogv*CH6 zD3P`U2FhYRw-)I~UjCa#c_!zd=e=W8KBC99Op@#eh=!{Ppk4(h4}bmZUk9TFJpzbM zhGv8hW)Qm1kj6)8cny*vV~^HMr)zhaYw>F*%#SS~EU< zS6p||MHh|X19~3sw)O<3%DCuq*b2Q{MO%Rn%iY|20@@Xd!!27E?8ANh#|KRs?$hbt zFO>#-|AlMp743)Jsc-fOXlbaW#~>M{d4GTp^dNxOPRzmXIo$s?M>}x{0ZUJD)jW`U z_4((Y{~#ZolW21-$p7cu|1~mQ(_>=B+;-GaM-4%FxC$~~L@ptC&$Knt@`+!1mPL%s z{t5XXL;Y1db@d3O5VBq4v&KxG7;lfCFni=cOqqP{hJ*zIQ_rluAKu%wxgFpshoRbO zG=e|U->ukU9^16j9CKKqIc{!&`R8LzcJ{rYK5ho%DQYcU_&aXLsWW4waVoI9L%IAe zQ&i|NFFe_1l89zHUHrAH+RWOO?IwtWlXYt%X4t5Jd3AA%88xcR(ko(Yb^0-drgkSo z2lzR4xf988bAf3+G}xW_E_n8CjRxa6`$E=FMzs;ig_{>^D!!A z4Ls|ak6)ZFS|PK;5778eCjDo6!>hx$6BiIYBO63{-b@;2K=$u-*Z`1PAvo82I9gLSz%w6B^j^wrGU8}Qj_O&+szP1CX7Pkf>;y

          4<=a-X)@|D3HSkh~D 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 NodeGit +## About NodeGit -First, let’s make a directory to experiment with NodeGit. +If you are working with low-level Git operations and want excellent +performance, NodeGit is for you. This project provides well tested, cross +platform bindings to the [libgit2](https://libgit2.github.com) library for +Node. -```bash -$ mkdir ~/start-with-nodegit -$ cd ~/start-with-nodegit +### Current stable version: 0.3.0 + + + + + + + + + + + + + + + + + +
          LinuxOS XWindowsDependencies
          + + + + + +
          + +## Quick install + +NodeGit can be quickly and painlessly installed via NPM: + +``` bash +npm install nodegit ``` -NodeGit can be installed using npm, the node package manager. If you don’t have node installed on your machine, you can download and install the node binaries for your OS. Once node is installed, open your Terminal and install NodeGit. +For more comprehensive installation techniques, check out the [Install Guides]( +/guides/install +) -```bash -$ npm install nodegit +## Include library + +You simply need to require NodeGit in your project to start using it. + +``` javascript +var Git = require("nodegit"); ``` ## Cloning a Repository -First, let’s learn how to clone a repository. Let’s create a file named `clone.js`, and input the following code. - -```js -var NodeGit = require("nodegit"); - -// Clone a given repository into a specific folder. -NodeGit.Clone.clone("https://github.com/nodegit/nodegit", "tmp", null) - // Look up this known commit. - .then(function(repo) { - // Use a known commit sha from this repository. - return repo.getCommit("59b20b8d5c6ff8d09518454d4dd8b7b30f095ab5"); - }) - // Look up a specific file within that commit. - .then(function(commit) { - return commit.getEntry("README.md"); - }) - // Get the blob contents from the file. - .then(function(entry) { - // Patch the blob to contain a reference to the entry. - return entry.getBlob().then(function(blob) { - blob.entry = entry; - return blob; - }); - }) - // Display information about the blob. - .then(function(blob) { - // Show the name, sha, and filesize in byes. - console.log(blob.entry.name() + blob.entry.sha() + blob.size() + "b"); - - // Show a spacer. - console.log(Array(72).join("=") + "\n\n"); - - // Show the entire file. - console.log(String(blob)); - }) - .catch(function(err) { console.log(err); }); +Let's learn how to clone a repository. Create a file named `clone.js`, +and add the following code: + +``` javascript +Git.Clone("https://github.com/nodegit/nodegit", "tmp").then(function(repository) { + +}); ``` + +## Opening a Repository + +Let's learn how to open a repository. Create a file named `open.js`, +and add the following code: + +``` javascript +Git.Repository.open("tmp").then(function(repository) { + +}); +``` + +## Brought to you by... + +A lot of talented developers over the world. We are proud to be sponsored by +the following companies to continue work on making NodeGit one of the best +native node modules around! + + + + From 2ea2eb96f12095ae5d455077f819ab927ba34cfe Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Tue, 3 Mar 2015 17:48:59 -0500 Subject: [PATCH 18/24] Skip over missing returns --- generate/lib/write_api_docs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate/lib/write_api_docs.js b/generate/lib/write_api_docs.js index 2f7c88d..e097e8e 100644 --- a/generate/lib/write_api_docs.js +++ b/generate/lib/write_api_docs.js @@ -201,7 +201,7 @@ var writeApiDocs = function(apiData, path) { .join(", ") + ").then(function(" + returnName + ") {\n"; if (returnName) { pageBody += " // Use " + returnName + "\n"; - } else if (fdata.return.description) { + } else if (fdata.return && fdata.return.description) { pageBody += " // " + fdata.return.description + "\n"; } else { pageBody += " // method complete" From d1a47c9aa13ba9dfcd9b3f645128c20f1b010305 Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Tue, 3 Mar 2015 19:01:46 -0500 Subject: [PATCH 19/24] Minor updates to layout and content --- blog/index.md | 4 +-- blog/new-release/index.md | 7 ++++++ css/main.scss | 5 ++++ index.md | 53 ++++++--------------------------------- 4 files changed, 21 insertions(+), 48 deletions(-) create mode 100644 blog/new-release/index.md diff --git a/blog/index.md b/blog/index.md index 04e94c6..b41be6f 100644 --- a/blog/index.md +++ b/blog/index.md @@ -5,9 +5,7 @@ title: Blog description: NodeGit talk --- -##### [New release, new site!](blog/new-release/) +##### __[New release, new site!](new-release/)__ 03/03/2015 v0.3.0 brings with it: a new site (docs are better now we promise!), more stable Windows support, a ton of libgit2 API coverage, and more... - ---- diff --git a/blog/new-release/index.md b/blog/new-release/index.md new file mode 100644 index 0000000..eabad3f --- /dev/null +++ b/blog/new-release/index.md @@ -0,0 +1,7 @@ +--- +layout: full +menu_item: blog +title: New release +description: 3/3/2015 +--- + diff --git a/css/main.scss b/css/main.scss index d897665..a552a56 100755 --- a/css/main.scss +++ b/css/main.scss @@ -35,3 +35,8 @@ hr { .main h3 { margin-top: 15px; } + +.date { + color: #C2C2C2; + font-size: 80%; +} diff --git a/index.md b/index.md index 07924d2..36298b7 100644 --- a/index.md +++ b/index.md @@ -2,51 +2,10 @@ layout: default menu_item: getting_started sections: - "About": "#about" - "Quick install": "#quick-install" - "Include library": "#include-library" - "Cloning a Repository": "#cloning-a-repository" - "Opening a Repository": "#opening-a-repository" - "Brought to you by...": "#brought-to-you-by" - "Used by...": "#used-by" + "Using NodeGit": "#clone-a-repository" --- -## About NodeGit - -If you are working with low-level Git operations and want excellent -performance, NodeGit is for you. This project provides well tested, cross -platform bindings to the [libgit2](https://libgit2.github.com) library for -Node. - -### Current stable version: 0.3.0 - - - - - - - - - - - - - - - - - -
          LinuxOS XWindowsDependencies
          - - - - - -
          - -## Quick install - NodeGit can be quickly and painlessly installed via NPM: ``` bash @@ -57,7 +16,9 @@ For more comprehensive installation techniques, check out the [Install Guides]( /guides/install ) -## Include library +* * * + +## Using NodeGit You simply need to require NodeGit in your project to start using it. @@ -65,7 +26,7 @@ You simply need to require NodeGit in your project to start using it. var Git = require("nodegit"); ``` -## Cloning a Repository +### Clone a Repository Let's learn how to clone a repository. Create a file named `clone.js`, and add the following code: @@ -76,7 +37,7 @@ Git.Clone("https://github.com/nodegit/nodegit", "tmp").then(function(repository) }); ``` -## Opening a Repository +## Open a Repository Let's learn how to open a repository. Create a file named `open.js`, and add the following code: @@ -87,6 +48,8 @@ Git.Repository.open("tmp").then(function(repository) { }); ``` +* * * + ## Brought to you by... A lot of talented developers over the world. We are proud to be sponsored by From f765eaa4ccd8bbf056deb047d4e7ac399bf8e3a7 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Fri, 6 Mar 2015 16:03:53 -0500 Subject: [PATCH 20/24] Style guides index --- _layouts/guides.html | 12 ++ _sass/_layout.scss | 98 +++++++++++++ api/diff/index.md | 17 +++ api/diff_find_options/index.md | 28 ++++ api/index.md | 20 +++ api/remote/index.md | 23 ++++ api/repository/index.md | 77 +++++++++++ guides/cloning/gh-two-factor/index.md | 5 +- guides/cloning/http/index.md | 130 ------------------ guides/cloning/{http => }/index.js | 0 guides/cloning/index.md | 127 +++++++++++++++-- guides/cloning/ssh-with-agent/index.md | 2 +- guides/index.md | 34 ++--- guides/install/atom-shell/index.md | 10 ++ guides/install/from-source/index.md | 10 ++ guides/install/index.md | 14 +- guides/install/nw.js/index.md | 10 ++ .../index.md => repositories/index.js} | 0 guides/repositories/index.md | 8 ++ guides/repositories/initializing/index.js | 0 guides/repositories/initializing/index.md | 10 ++ index.md | 3 +- 22 files changed, 462 insertions(+), 176 deletions(-) create mode 100644 _layouts/guides.html create mode 100644 api/diff_find_options/index.md delete mode 100644 guides/cloning/http/index.md rename guides/cloning/{http => }/index.js (100%) create mode 100644 guides/install/atom-shell/index.md create mode 100644 guides/install/from-source/index.md create mode 100644 guides/install/nw.js/index.md rename guides/{committing/index.md => repositories/index.js} (100%) create mode 100644 guides/repositories/index.md create mode 100644 guides/repositories/initializing/index.js create mode 100644 guides/repositories/initializing/index.md diff --git a/_layouts/guides.html b/_layouts/guides.html new file mode 100644 index 0000000..fffcf76 --- /dev/null +++ b/_layouts/guides.html @@ -0,0 +1,12 @@ +--- +layout: full +--- + +{% assign sections = page.content|split:'***' %} +

          +{% for section in sections %} +
          + {{ section | markdownify }} +
          +{% endfor %} +
          diff --git a/_sass/_layout.scss b/_sass/_layout.scss index 8aa15e4..2f78f3f 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -224,6 +224,13 @@ header { ul { border:none; + list-style:none; + + li { + padding:0; + background:none; + margin:0; + } } } @@ -258,6 +265,64 @@ header { } } } + + ul { + list-style:disc; + + li { + margin:0 0 8px; + padding:0 0 0 25px; + background-image:url(/img/nodegit-mark.svg); + background-repeat:no-repeat; + background-size:16px; + background-position:0 5px; + } + } + + .guides { + padding:0; + margin:0; + + .document { + width:30%; + float:left; + box-sizing:border-box; + position:relative; + margin:0 5% 30px 0; + + h2 { + padding-bottom:8px; + border-bottom:1px solid #ededed; + + a { + color:#222; + } + } + + blockquote { + border:none; + margin:-10px 0 0; + padding:0; + color:#999; + } + + ul { + list-style:none; + + li { + margin-left:0; + } + } + + &:nth-child(3n) { + margin-right:0; + } + + &:nth-child(3n+1) { + clear:left; + } + } + } } span.tags { @@ -405,6 +470,29 @@ table { .outline { display:none; } + + .guides { + .document { + width:45%; + + &:nth-child(3n+1) { + clear:none; + } + + &:nth-child(3n) { + clear:none; + margin-right:5%; + } + + &:nth-child(2n+1) { + clear:left; + } + + &:nth-child(2n) { + margin-right:0; + } + } + } } } @@ -489,4 +577,14 @@ table { } } } + + .page-content { + .guides { + .document { + float:none; + width:100%; + margin:0 0 30px; + } + } + } } diff --git a/api/diff/index.md b/api/diff/index.md index 592de49..15a6aad 100644 --- a/api/diff/index.md +++ b/api/diff/index.md @@ -12,6 +12,7 @@ sections: "treeToTree": "#treeToTree" "treeToWorkdir": "#treeToWorkdir" "treeToWorkdirWithIndex": "#treeToWorkdirWithIndex" + "#findSimilar": "#findSimilar" "#getDelta": "#getDelta" "#getPerfdata": "#getPerfdata" "#numDeltas": "#numDeltas" @@ -118,6 +119,22 @@ Diff.treeToWorkdirWithIndex(repo, old_tree, opts).then(function(diff) { | --- | --- | | [Diff](/api/diff/) | | +## Diff#findSimilar Async + +```js +diff.findSimilar(options).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| options | [DiffFindOptions](/api/diff_find_options/) | Control how detection should be run, NULL for defaults | + +| Returns | | +| --- | --- | +| Number | 0 on success, -1 on failure | + ## Diff#getDelta Sync ```js diff --git a/api/diff_find_options/index.md b/api/diff_find_options/index.md new file mode 100644 index 0000000..62ccae3 --- /dev/null +++ b/api/diff_find_options/index.md @@ -0,0 +1,28 @@ +--- +layout: default +menu_item: api +title: DiffFindOptions +description: Version 0.3.0 +menu_item: api +return_to: + "API Documentation Index": /api/ +sections: + "Instance Variables": "#ivars" +--- + +```js +var diffFindOptions = new DiffFindOptions(); +``` + +## Instance Variables + +| Variable | Type | +| --- | --- | +| breakRewriteThreshold | Number | +| copyThreshold | Number | +| flags | Number | +| renameFromRewriteThreshold | Number | +| renameLimit | Number | +| renameThreshold | Number | +| version | Number | + diff --git a/api/index.md b/api/index.md index 2e9264d..ef30dc8 100644 --- a/api/index.md +++ b/api/index.md @@ -36,6 +36,7 @@ sections: "Diff": "#Diff" "DiffDelta": "#DiffDelta" "DiffFile": "#DiffFile" + "DiffFindOptions": "#DiffFindOptions" "DiffHunk": "#DiffHunk" "DiffLine": "#DiffLine" "DiffOptions": "#DiffOptions" @@ -522,6 +523,7 @@ sections: | Instance Methods | | | --- | ---: | +| [Diff#findSimilar (options)](/api/diff/#findSimilar) | Async | | [Diff#getDelta (idx)](/api/diff/#getDelta) | Sync | | [Diff#getPerfdata ()](/api/diff/#getPerfdata) | Async | | [Diff#numDeltas ()](/api/diff/#numDeltas) | Sync | @@ -562,6 +564,19 @@ sections: | [DiffFile#size](/api/diff_file/#size) | | +## [DiffFindOptions](/api/diff_find_options/) + +| Instance Variables | | +| --- | ---: | +| [DiffFindOptions#breakRewriteThreshold](/api/diff_find_options/#breakRewriteThreshold) | | +| [DiffFindOptions#copyThreshold](/api/diff_find_options/#copyThreshold) | | +| [DiffFindOptions#flags](/api/diff_find_options/#flags) | | +| [DiffFindOptions#renameFromRewriteThreshold](/api/diff_find_options/#renameFromRewriteThreshold) | | +| [DiffFindOptions#renameLimit](/api/diff_find_options/#renameLimit) | | +| [DiffFindOptions#renameThreshold](/api/diff_find_options/#renameThreshold) | | +| [DiffFindOptions#version](/api/diff_find_options/#version) | | + + ## [DiffHunk](/api/diff_hunk/) | Instance Variables | | @@ -1209,6 +1224,7 @@ sections: | [Remote.isValidName (remote_name)](/api/remote/#isValidName) | Sync | | [Remote.list (repo)](/api/remote/#list) | Async | | [Remote.lookup (repo, name, callback)](/api/remote/#lookup) | Async | +| [Remote.push (refSpecs, options, signature, message)](/api/remote/#push) | Async | | Instance Methods | | | --- | ---: | @@ -1279,7 +1295,10 @@ sections: | --- | ---: | | [Repository#config ()](/api/repository/#config) | Async | | [Repository#configSnapshot ()](/api/repository/#configSnapshot) | Async | +| [Repository#createLightweightTag (String, name)](/api/repository/#createLightweightTag) | Async | | [Repository#createRevWalk (String)](/api/repository/#createRevWalk) | Sync | +| [Repository#createTag (String, name, message)](/api/repository/#createTag) | Async | +| [Repository#deleteTagByName (Short)](/api/repository/#deleteTagByName) | Async | | [Repository#detachHead (signature, reflog_message)](/api/repository/#detachHead) | Sync | | [Repository#free ()](/api/repository/#free) | Sync | | [Repository#getBlob (String)](/api/repository/#getBlob) | Async | @@ -1292,6 +1311,7 @@ sections: | [Repository#getReferenceCommit (name)](/api/repository/#getReferenceCommit) | Async | | [Repository#getReferenceNames (type)](/api/repository/#getReferenceNames) | Async | | [Repository#getReferences (type)](/api/repository/#getReferences) | Async | +| [Repository#getStatusExt (opts)](/api/repository/#getStatusExt) | Sync | | [Repository#getTag (String)](/api/repository/#getTag) | Async | | [Repository#getTagByName (Short)](/api/repository/#getTagByName) | Async | | [Repository#getTree (String)](/api/repository/#getTree) | Async | diff --git a/api/remote/index.md b/api/remote/index.md index 922c2a9..20813a8 100644 --- a/api/remote/index.md +++ b/api/remote/index.md @@ -15,6 +15,7 @@ sections: "isValidName": "#isValidName" "list": "#list" "lookup": "#lookup" + "push": "#push" "#addFetch": "#addFetch" "#addPush": "#addPush" "#autotag": "#autotag" @@ -188,6 +189,28 @@ Retrieves the remote by name | --- | --- | | [Remote](/api/remote/) | | +## Remote.push Async + +```js +Remote.push(refSpecs, options, signature, message).then(function(number) { + // Use number +}); +``` + +Pushes to a remote + + +| Parameters | Type | | +| --- | --- | --- | +| refSpecs | Array | The ref specs that should be pushed | +| options | [PushOptions](/api/push_options/) | Options for the checkout | +| signature | [Signature](/api/signature/) | The identity to use for the reflog of the updated references | +| message | String | The message to use for the update reflog messages | + +| Returns | | +| --- | --- | +| Number | error code | + ## Remote#addFetch Sync ```js diff --git a/api/repository/index.md b/api/repository/index.md index d54e3c9..913872a 100644 --- a/api/repository/index.md +++ b/api/repository/index.md @@ -15,7 +15,10 @@ sections: "wrapOdb": "#wrapOdb" "#config": "#config" "#configSnapshot": "#configSnapshot" + "#createLightweightTag": "#createLightweightTag" "#createRevWalk": "#createRevWalk" + "#createTag": "#createTag" + "#deleteTagByName": "#deleteTagByName" "#detachHead": "#detachHead" "#free": "#free" "#getBlob": "#getBlob" @@ -28,6 +31,7 @@ sections: "#getReferenceCommit": "#getReferenceCommit" "#getReferenceNames": "#getReferenceNames" "#getReferences": "#getReferences" + "#getStatusExt": "#getStatusExt" "#getTag": "#getTag" "#getTagByName": "#getTagByName" "#getTree": "#getTree" @@ -179,6 +183,26 @@ repository.configSnapshot().then(function(config) { | --- | --- | | [Config](/api/config/) | | +## Repository#createLightweightTag Async + +```js +repository.createLightweightTag(String, name).then(function(reference) { + // Use reference +}); +``` + +Creates a new lightweight tag + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| name | String | the name of the tag | + +| Returns | | +| --- | --- | +| [Reference](/api/reference/) | | + ## Repository#createRevWalk Sync ```js @@ -197,6 +221,41 @@ See also `Commit.prototype.history()` | --- | --- | | RevWalk | | +## Repository#createTag Async + +```js +repository.createTag(String, name, message).then(function(tag) { + // Use tag +}); +``` + +Creates a new annotated tag + + +| Parameters | Type | +| --- | --- | --- | +| String | String, [Oid](/api/oid/) | sha or Oid | +| name | String | the name of the tag | +| message | String | the description that will be attached to the annotated tag | + +| Returns | | +| --- | --- | +| [Tag](/api/tag/) | | + +## Repository#deleteTagByName Async + +```js +repository.deleteTagByName(Short).then(function() { + // method complete}); +``` + +Deletes a tag from a repository by the tag name. + + +| Parameters | Type | +| --- | --- | --- | +| Short | String | or full tag name | + ## Repository#detachHead Sync ```js @@ -396,6 +455,24 @@ Lookup references for a repository. | --- | --- | | Array<[Reference](/api/reference/)> | | +## Repository#getStatusExt Sync + +```js +var arrayStatusEntry = repository.getStatusExt(opts); +``` + +Get extended statuses of a repo to it's working directory. Status entries +have `status`, `headToIndex` delta, and `indexToWorkdir` deltas + + +| Parameters | Type | +| --- | --- | --- | +| opts | obj | | + +| Returns | | +| --- | --- | +| Array<[StatusEntry](/api/status_entry/)> | | + ## Repository#getTag Async ```js diff --git a/guides/cloning/gh-two-factor/index.md b/guides/cloning/gh-two-factor/index.md index dc414f5..1627ab4 100644 --- a/guides/cloning/gh-two-factor/index.md +++ b/guides/cloning/gh-two-factor/index.md @@ -5,7 +5,7 @@ title: GitHub Two Factor Auth Guide description: How to clone with GitHub Two Factor Authorization --- -**In order to run examples, you will need to [Install NodeGit](../../install) +**In order to run examples, you will need to [Install NodeGit](../../install/basics) first.** [Return to cloning guides](../) @@ -59,8 +59,7 @@ GitHub repository they will immediately revoke it. The first argument to the `clone` method is a URL. In this example we're going to clone one of our private test repositories from -GitHub. You could easily substitute this with any valid http or https Git -repository URL. +GitHub. This must be an `https` protocol URL for the clone to work. ``` javascript var cloneURL = "https://github.com/nodegit/private"; diff --git a/guides/cloning/http/index.md b/guides/cloning/http/index.md deleted file mode 100644 index dfd52af..0000000 --- a/guides/cloning/http/index.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -layout: full -menu_item: guides -title: HTTP/HTTPS Guide -description: How to clone with HTTP/HTTPS ---- - -**In order to run examples, you will need to [Install NodeGit](../../install) -first.** - -[Return to cloning guides](../) - -* * * - -HTTP/HTTPS ----------- - -This guide explains how to clone a repository, and in the case of failure, -attempt to open the existing path. - -[View example source](index.js) - -### Requiring NodeGit - -In the guides directory, we like to keep our NodeGit relative to the project -root. - -``` javascript -var Git = require("../../../"); -``` - -However, in your project you will most likely be using the following command: - -``` javascript -var Git = require("nodegit"); -``` - -### Clone URL - -The first argument to the `clone` method is a URL. - -In this example we're going to clone one of our test repositories from GitHub. -You could easily substitute this with any valid http or https Git repository -URL. - -``` javascript -var cloneURL = "https://github.com/nodegit/test"; -``` - -### Clone path - -The second argument to the `clone` method is a path. - -Ideally your application will clone a repository into the same folder path -regardless of how or where you execute it from. Paths are relative to the -current working directory in NodeGit, so you will need to normalize it first. - -This is very simple in Node: - -``` javascript -var localPath = require("path").join(__dirname, "tmp"); -``` - -Now this `tmp` directory will be created along side your script, no matter how -or where you execute it from. - -### Clone options - -The third argument to the `clone` method is an optional simple object. - -``` javascript -var cloneOptions = {}; -``` - -**If you are using HTTP the OS X issue below does not affect you.** - -#### GitHub certificate issue in OS X - -Unfortunately in OS X there is a problem where libgit2 is unable to look up -GitHub certificates correctly. In order to bypass this problem, we're going -to passthrough the certificate check. - -*Note: this is not a problem with Windows or Linux* - -``` javascript -cloneOptions.remoteCallbacks = { - certificateCheck: function() { return 1; } -}; -``` - -### Invoking the clone method - -You can easily invoke our top-level Clone as a function passing along the three -aforementioned arguments. - -``` javascript -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); -``` - -Notice how we store the return value from `Git.Clone`. This is a -[Promise](https://www.promisejs.org/) to represent the asynchronous operation. -It offers finer control flow by allowing us to capture errors and fallback if -there is a clone failure. - -### Handling clone failure - -A naive way to handle a clone failure is to try opening the same path. Clones -will most commonly fail when the directory already exists. We can define -a function to attempt opening in this case. - -``` javascript -var errorAndAttemptOpen = function() { - return Git.Repository.open(local); -}; -``` - -This will be called as part of the Promise resolution in the final step. - -### The Promise chain - -Lastly in our clone operation, we'll assemble a Promise chain to handle errors -and work with the `Git.Repository` instance result. - -``` javascript -cloneRepository.catch(errorAndAttemptOpen) - .then(function(repository) { - // Access any repository methods here. - console.log("Is the repository bare? %s", Boolean(repository.isBare())); - }); -``` diff --git a/guides/cloning/http/index.js b/guides/cloning/index.js similarity index 100% rename from guides/cloning/http/index.js rename to guides/cloning/index.js diff --git a/guides/cloning/index.md b/guides/cloning/index.md index 6bb35af..7f5221b 100644 --- a/guides/cloning/index.md +++ b/guides/cloning/index.md @@ -1,29 +1,130 @@ --- layout: full menu_item: guides -title: Cloning Guides -description: How to clone repositories +title: HTTP/HTTPS Guide +description: How to clone with HTTP/HTTPS --- -[Return to all guides](../) +**In order to run examples, you will need to [Install NodeGit](../../install/basics) +first.** + +[Return to cloning guides](../) * * * -### [HTTP/HTTPS](http/) +HTTP/HTTPS +---------- + +This guide explains how to clone a repository, and in the case of failure, +attempt to open the existing path. + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var Git = require("../../../"); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var Git = require("nodegit"); +``` + +### Clone URL + +The first argument to the `clone` method is a URL. + +In this example we're going to clone one of our test repositories from GitHub. +You could easily substitute this with any valid http or https Git repository +URL. + +``` javascript +var cloneURL = "https://github.com/nodegit/test"; +``` + +### Clone path + +The second argument to the `clone` method is a path. + +Ideally your application will clone a repository into the same folder path +regardless of how or where you execute it from. Paths are relative to the +current working directory in NodeGit, so you will need to normalize it first. + +This is very simple in Node: + +``` javascript +var localPath = require("path").join(__dirname, "tmp"); +``` + +Now this `tmp` directory will be created along side your script, no matter how +or where you execute it from. + +### Clone options + +The third argument to the `clone` method is an optional simple object. + +``` javascript +var cloneOptions = {}; +``` + +**If you are using HTTP the OS X issue below does not affect you.** + +#### GitHub certificate issue in OS X + +Unfortunately in OS X there is a problem where libgit2 is unable to look up +GitHub certificates correctly. In order to bypass this problem, we're going +to passthrough the certificate check. + +*Note: this is not a problem with Windows or Linux* + +``` javascript +cloneOptions.remoteCallbacks = { + certificateCheck: function() { return 1; } +}; +``` + +### Invoking the clone method + +You can easily invoke our top-level Clone as a function passing along the three +aforementioned arguments. + +``` javascript +var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +``` - > Emulates `git clone https://github.com/nodegit/test` +Notice how we store the return value from `Git.Clone`. This is a +[Promise](https://www.promisejs.org/) to represent the asynchronous operation. +It offers finer control flow by allowing us to capture errors and fallback if +there is a clone failure. - For cloning HTTP or HTTPS repositories from servers like GitHub. +### Handling clone failure -### [SSH w/ Agent](ssh-with-agent/) +A naive way to handle a clone failure is to try opening the same path. Clones +will most commonly fail when the directory already exists. We can define +a function to attempt opening in this case. - > Emulates `git clone git@github.com:nodegit/test` +``` javascript +var errorAndAttemptOpen = function() { + return Git.Repository.open(local); +}; +``` - For cloning SSH repositories using an SSH agent. +This will be called as part of the Promise resolution in the final step. -### [GitHub Two Factor Auth](gh-two-factor/) +### The Promise chain - > Emulates `git clone https://gh-token:-oauth-basic@github.com/nodegit/test` +Lastly in our clone operation, we'll assemble a Promise chain to handle errors +and work with the `Git.Repository` instance result. - For cloning repositories from GitHub when two-factor authorization is - enabled. +``` javascript +cloneRepository.catch(errorAndAttemptOpen) + .then(function(repository) { + // Access any repository methods here. + console.log("Is the repository bare? %s", Boolean(repository.isBare())); + }); +``` diff --git a/guides/cloning/ssh-with-agent/index.md b/guides/cloning/ssh-with-agent/index.md index bd8c805..06aa6b6 100644 --- a/guides/cloning/ssh-with-agent/index.md +++ b/guides/cloning/ssh-with-agent/index.md @@ -5,7 +5,7 @@ title: SSH w/ Agent Guide description: How to clone with SSH using an agent --- -**In order to run examples, you will need to [Install NodeGit](../../install) +**In order to run examples, you will need to [Install NodeGit](../../install/basics) first.** [Return to cloning guides](../) diff --git a/guides/index.md b/guides/index.md index 591e91e..8b827b8 100644 --- a/guides/index.md +++ b/guides/index.md @@ -1,42 +1,34 @@ --- -layout: default +layout: guides menu_item: guides title: Guides description: Learning NodeGit --- -## [Install](install/) +## Install > How to install NodeGit -- [To run guides](install/guides/) -- [Windows users](install/windows-users/) +- [Basics](install/) +- [From source](install/from-source) - [Atom Shell](install/atom-shell/) -- [NW.js](install/nw-js/) +- [NW.js](install/nw.js/) -## [Repository](repositories/) +*** + +## Repository > How to work with repositories +- [Opening](repositories/) - [Initializing](repositories/initializing) -- [Opening](repositories/opening) -- [Freeing](repositories/freeing) -## [Cloning](cloning/) +*** + +## Cloning > How to clone repositories -- [HTTP/HTTPS](cloning/http/) +- [HTTP/HTTPS](cloning/) - [SSH w/ Agent](cloning/ssh-with-agent/) - [GitHub Two Factor Auth](cloning/gh-two-factor/) - -## [Commits](commits/) - -> How to work with commits - -- [Push commits]() -- [Diff commits]() - -## [Merging](merging/) - -> How to merge commits diff --git a/guides/install/atom-shell/index.md b/guides/install/atom-shell/index.md new file mode 100644 index 0000000..6c8c743 --- /dev/null +++ b/guides/install/atom-shell/index.md @@ -0,0 +1,10 @@ +--- +layout: full +menu_item: guides +title: Atom Shell +description: How to install NodeGit with Atom Shell +--- + +[Return to install guides](../) + +* * * diff --git a/guides/install/from-source/index.md b/guides/install/from-source/index.md new file mode 100644 index 0000000..41fe39c --- /dev/null +++ b/guides/install/from-source/index.md @@ -0,0 +1,10 @@ +--- +layout: full +menu_item: guides +title: From source +description: How to build NodeGit from source +--- + +[Return to install guides](../) + +* * * diff --git a/guides/install/index.md b/guides/install/index.md index db13fab..1fb92c4 100644 --- a/guides/install/index.md +++ b/guides/install/index.md @@ -1,25 +1,25 @@ --- layout: full menu_item: guides -title: Install Guide +title: Install Basics description: How to install NodeGit --- -[Return to all guides](../) +[Return to install guides](../) * * * -From NPM --------- +From NPM +------------------------------- -To install from NPM you can issue the following command: +To install from the NPM repository you can issue the following command: ``` bash npm install nodegit ``` -From GitHub ------------ +From GitHub +------------------------------------- This is required to contribute or run the examples. diff --git a/guides/install/nw.js/index.md b/guides/install/nw.js/index.md new file mode 100644 index 0000000..d7b1a13 --- /dev/null +++ b/guides/install/nw.js/index.md @@ -0,0 +1,10 @@ +--- +layout: full +menu_item: guides +title: NW.js +description: How to install NodeGit with NW.js +--- + +[Return to install guides](../) + +* * * diff --git a/guides/committing/index.md b/guides/repositories/index.js similarity index 100% rename from guides/committing/index.md rename to guides/repositories/index.js diff --git a/guides/repositories/index.md b/guides/repositories/index.md new file mode 100644 index 0000000..0000b5f --- /dev/null +++ b/guides/repositories/index.md @@ -0,0 +1,8 @@ +--- +layout: full +menu_item: guides +title: Opening a Repository +description: How to open and free a repository +--- + +[Return to all guides](../) diff --git a/guides/repositories/initializing/index.js b/guides/repositories/initializing/index.js new file mode 100644 index 0000000..e69de29 diff --git a/guides/repositories/initializing/index.md b/guides/repositories/initializing/index.md new file mode 100644 index 0000000..c0a4b7c --- /dev/null +++ b/guides/repositories/initializing/index.md @@ -0,0 +1,10 @@ +--- +layout: full +menu_item: guides +title: Initializing +description: How to initialize a repository +--- + +[Return to repository guides](../) + +* * * diff --git a/index.md b/index.md index 36298b7..d82b3dd 100644 --- a/index.md +++ b/index.md @@ -2,6 +2,7 @@ layout: default menu_item: getting_started sections: + "Using NodeGit": "#using-nodegit" "Using NodeGit": "#clone-a-repository" --- @@ -26,7 +27,7 @@ You simply need to require NodeGit in your project to start using it. var Git = require("nodegit"); ``` -### Clone a Repository +## Clone a Repository Let's learn how to clone a repository. Create a file named `clone.js`, and add the following code: From ae4ddf19766c7e2b11c3e0247ef6cec7577006e3 Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Fri, 13 Mar 2015 13:28:27 -0400 Subject: [PATCH 21/24] Remove blog link for now --- _includes/header.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/header.html b/_includes/header.html index 25b0eb6..c6899ba 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -26,7 +26,7 @@

          Guides API Documentation
        • Source
        • - Blog +

        From c89c456c881c606c68b9321cf6f27973c1b5bf15 Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Fri, 13 Mar 2015 13:28:41 -0400 Subject: [PATCH 22/24] Update API and guides --- api/index.md | 30 +++--- api/pathspec/index.md | 39 +++++-- api/remote/index.md | 57 +++++------ api/repository/index.md | 22 +++- guides/cloning/gh-two-factor/index.js | 8 +- guides/cloning/gh-two-factor/index.md | 11 +- guides/cloning/index.js | 6 +- guides/cloning/index.md | 8 +- guides/cloning/ssh-with-agent/index.js | 8 +- guides/cloning/ssh-with-agent/index.md | 10 +- guides/install/atom-shell/index.md | 25 +++++ guides/install/from-source/index.md | 77 ++++++++++++++ guides/install/index.md | 21 +--- guides/install/nw.js/index.md | 23 +++++ guides/repositories/index.js | 39 +++++++ guides/repositories/index.md | 119 ++++++++++++++++++++++ guides/repositories/initializing/index.js | 29 ++++++ guides/repositories/initializing/index.md | 53 ++++++++++ 18 files changed, 482 insertions(+), 103 deletions(-) diff --git a/api/index.md b/api/index.md index ef30dc8..0a2bb4a 100644 --- a/api/index.md +++ b/api/index.md @@ -1038,20 +1038,21 @@ sections: | Class Methods | | | --- | ---: | -| [Pathspec.matchListDiffEntry (m, pos)](/api/pathspec/#matchListDiffEntry) | SyncExperimental | -| [Pathspec.matchListEntry (m, pos)](/api/pathspec/#matchListEntry) | SyncExperimental | -| [Pathspec.matchListEntrycount (m)](/api/pathspec/#matchListEntrycount) | SyncExperimental | -| [Pathspec.matchListFailedEntry (m, pos)](/api/pathspec/#matchListFailedEntry) | SyncExperimental | -| [Pathspec.matchListFailedEntrycount (m)](/api/pathspec/#matchListFailedEntrycount) | SyncExperimental | +| [Pathspec.create (pathspec)](/api/pathspec/#create) | Async | +| [Pathspec.matchListDiffEntry (m, pos)](/api/pathspec/#matchListDiffEntry) | Sync | +| [Pathspec.matchListEntry (m, pos)](/api/pathspec/#matchListEntry) | Sync | +| [Pathspec.matchListEntrycount (m)](/api/pathspec/#matchListEntrycount) | Sync | +| [Pathspec.matchListFailedEntry (m, pos)](/api/pathspec/#matchListFailedEntry) | Sync | +| [Pathspec.matchListFailedEntrycount (m)](/api/pathspec/#matchListFailedEntrycount) | Sync | | Instance Methods | | | --- | ---: | -| [Pathspec#free ()](/api/pathspec/#free) | SyncExperimental | -| [Pathspec#matchDiff (diff, flags)](/api/pathspec/#matchDiff) | AsyncExperimental | -| [Pathspec#matchIndex (index, flags)](/api/pathspec/#matchIndex) | AsyncExperimental | -| [Pathspec#matchTree (tree, flags)](/api/pathspec/#matchTree) | AsyncExperimental | -| [Pathspec#matchWorkdir (repo, flags)](/api/pathspec/#matchWorkdir) | AsyncExperimental | -| [Pathspec#matchesPath (flags, path)](/api/pathspec/#matchesPath) | SyncExperimental | +| [Pathspec#free ()](/api/pathspec/#free) | Sync | +| [Pathspec#matchDiff (diff, flags)](/api/pathspec/#matchDiff) | Async | +| [Pathspec#matchIndex (index, flags)](/api/pathspec/#matchIndex) | Async | +| [Pathspec#matchTree (tree, flags)](/api/pathspec/#matchTree) | Async | +| [Pathspec#matchWorkdir (repo, flags)](/api/pathspec/#matchWorkdir) | Async | +| [Pathspec#matchesPath (flags, path)](/api/pathspec/#matchesPath) | Sync | | ENUMS | | | --- | ---: | @@ -1224,7 +1225,6 @@ sections: | [Remote.isValidName (remote_name)](/api/remote/#isValidName) | Sync | | [Remote.list (repo)](/api/remote/#list) | Async | | [Remote.lookup (repo, name, callback)](/api/remote/#lookup) | Async | -| [Remote.push (refSpecs, options, signature, message)](/api/remote/#push) | Async | | Instance Methods | | | --- | ---: | @@ -1243,11 +1243,12 @@ sections: | [Remote#getFetchRefspecs ()](/api/remote/#getFetchRefspecs) | Async | | [Remote#getPushRefspecs ()](/api/remote/#getPushRefspecs) | Async | | [Remote#getRefspec (n)](/api/remote/#getRefspec) | Sync | +| [Remote#ls (size)](/api/remote/#ls) | Async | | [Remote#name ()](/api/remote/#name) | Sync | | [Remote#owner ()](/api/remote/#owner) | Sync | | [Remote#prune ()](/api/remote/#prune) | Sync | | [Remote#pruneRefs ()](/api/remote/#pruneRefs) | Sync | -| [Remote#push (refspecs, opts, signature, reflog_message)](/api/remote/#push) | Async | +| [Remote#push (refSpecs, options, signature, message)](/api/remote/#push) | Async | | [Remote#pushurl ()](/api/remote/#pushurl) | Sync | | [Remote#refspecCount ()](/api/remote/#refspecCount) | Sync | | [Remote#save ()](/api/remote/#save) | Sync | @@ -1293,6 +1294,7 @@ sections: | Instance Methods | | | --- | ---: | +| [Repository#checkoutBranch (branch, opts)](/api/repository/#checkoutBranch) | Sync | | [Repository#config ()](/api/repository/#config) | Async | | [Repository#configSnapshot ()](/api/repository/#configSnapshot) | Async | | [Repository#createLightweightTag (String, name)](/api/repository/#createLightweightTag) | Async | @@ -1326,7 +1328,7 @@ sections: | [Repository#odb ()](/api/repository/#odb) | Async | | [Repository#path ()](/api/repository/#path) | Sync | | [Repository#refdb ()](/api/repository/#refdb) | Async | -| [Repository#setHead (refname, signature, log_message)](/api/repository/#setHead) | Sync | +| [Repository#setHead (refname, signature, log_message)](/api/repository/#setHead) | Async | | [Repository#setHeadDetached (commitish, signature, log_message)](/api/repository/#setHeadDetached) | Sync | | [Repository#setNamespace (nmspace)](/api/repository/#setNamespace) | Sync | | [Repository#setWorkdir (workdir, update_gitlink)](/api/repository/#setWorkdir) | Sync | diff --git a/api/pathspec/index.md b/api/pathspec/index.md index acd6b53..ce6681f 100644 --- a/api/pathspec/index.md +++ b/api/pathspec/index.md @@ -7,6 +7,7 @@ menu_item: api return_to: "API Documentation Index": /api/ sections: + "create": "#create" "matchListDiffEntry": "#matchListDiffEntry" "matchListEntry": "#matchListEntry" "matchListEntrycount": "#matchListEntrycount" @@ -21,7 +22,23 @@ sections: "FLAG": "#FLAG" --- -## Pathspec.matchListDiffEntry SyncExperimental +## Pathspec.create Async + +```js +Pathspec.create(pathspec).then(function(pathspec) { + // Use pathspec +}); +``` + +| Parameters | Type | | +| --- | --- | --- | +| pathspec | [Strarray](/api/strarray/) | A git_strarray of the paths to match | + +| Returns | | +| --- | --- | +| [Pathspec](/api/pathspec/) | Output of the compiled pathspec | + +## Pathspec.matchListDiffEntry Sync ```js var diffDelta = Pathspec.matchListDiffEntry(m, pos); @@ -36,7 +53,7 @@ var diffDelta = Pathspec.matchListDiffEntry(m, pos); | --- | --- | | [DiffDelta](/api/diff_delta/) | The filename of the match | -## Pathspec.matchListEntry SyncExperimental +## Pathspec.matchListEntry Sync ```js var string = Pathspec.matchListEntry(m, pos); @@ -51,7 +68,7 @@ var string = Pathspec.matchListEntry(m, pos); | --- | --- | | String | The filename of the match | -## Pathspec.matchListEntrycount SyncExperimental +## Pathspec.matchListEntrycount Sync ```js var result = Pathspec.matchListEntrycount(m); @@ -65,7 +82,7 @@ var result = Pathspec.matchListEntrycount(m); | --- | --- | | Number | Number of items in match list | -## Pathspec.matchListFailedEntry SyncExperimental +## Pathspec.matchListFailedEntry Sync ```js var string = Pathspec.matchListFailedEntry(m, pos); @@ -80,7 +97,7 @@ var string = Pathspec.matchListFailedEntry(m, pos); | --- | --- | | String | The pathspec pattern that didn't match anything | -## Pathspec.matchListFailedEntrycount SyncExperimental +## Pathspec.matchListFailedEntrycount Sync ```js var result = Pathspec.matchListFailedEntrycount(m); @@ -94,13 +111,13 @@ var result = Pathspec.matchListFailedEntrycount(m); | --- | --- | | Number | Number of items in original pathspec that had no matches | -## Pathspec#free SyncExperimental +## Pathspec#free Sync ```js pathspec.free(); ``` -## Pathspec#matchDiff AsyncExperimental +## Pathspec#matchDiff Async ```js pathspec.matchDiff(diff, flags).then(function(pathspecMatchList) { @@ -117,7 +134,7 @@ pathspec.matchDiff(diff, flags).then(function(pathspecMatchList) { | --- | --- | | [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | -## Pathspec#matchIndex AsyncExperimental +## Pathspec#matchIndex Async ```js pathspec.matchIndex(index, flags).then(function(pathspecMatchList) { @@ -134,7 +151,7 @@ pathspec.matchIndex(index, flags).then(function(pathspecMatchList) { | --- | --- | | [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | -## Pathspec#matchTree AsyncExperimental +## Pathspec#matchTree Async ```js pathspec.matchTree(tree, flags).then(function(pathspecMatchList) { @@ -151,7 +168,7 @@ pathspec.matchTree(tree, flags).then(function(pathspecMatchList) { | --- | --- | | [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | -## Pathspec#matchWorkdir AsyncExperimental +## Pathspec#matchWorkdir Async ```js pathspec.matchWorkdir(repo, flags).then(function(pathspecMatchList) { @@ -168,7 +185,7 @@ pathspec.matchWorkdir(repo, flags).then(function(pathspecMatchList) { | --- | --- | | [PathspecMatchList](/api/pathspec_match_list/) | Output list of matches; pass NULL to just get return value | -## Pathspec#matchesPath SyncExperimental +## Pathspec#matchesPath Sync ```js var result = pathspec.matchesPath(flags, path); diff --git a/api/remote/index.md b/api/remote/index.md index 20813a8..2c62bd4 100644 --- a/api/remote/index.md +++ b/api/remote/index.md @@ -15,7 +15,6 @@ sections: "isValidName": "#isValidName" "list": "#list" "lookup": "#lookup" - "push": "#push" "#addFetch": "#addFetch" "#addPush": "#addPush" "#autotag": "#autotag" @@ -31,6 +30,7 @@ sections: "#getFetchRefspecs": "#getFetchRefspecs" "#getPushRefspecs": "#getPushRefspecs" "#getRefspec": "#getRefspec" + "#ls": "#ls" "#name": "#name" "#owner": "#owner" "#prune": "#prune" @@ -189,28 +189,6 @@ Retrieves the remote by name | --- | --- | | [Remote](/api/remote/) | | -## Remote.push Async - -```js -Remote.push(refSpecs, options, signature, message).then(function(number) { - // Use number -}); -``` - -Pushes to a remote - - -| Parameters | Type | | -| --- | --- | --- | -| refSpecs | Array | The ref specs that should be pushed | -| options | [PushOptions](/api/push_options/) | Options for the checkout | -| signature | [Signature](/api/signature/) | The identity to use for the reflog of the updated references | -| message | String | The message to use for the update reflog messages | - -| Returns | | -| --- | --- | -| Number | error code | - ## Remote#addFetch Sync ```js @@ -388,6 +366,22 @@ var refspec = remote.getRefspec(n); | --- | --- | | [Refspec](/api/refspec/) | the nth refspec | +## Remote#ls Async + +```js +remote.ls(size).then(function(result) { + // Use result +}); +``` + +| Parameters | Type | +| --- | --- | --- | +| size | Number | the number of remote heads | + +| Returns | | +| --- | --- | +| Number | 0 on success, or an error code | + ## Remote#name Sync ```js @@ -431,21 +425,24 @@ var result = remote.pruneRefs(); ## Remote#push Async ```js -remote.push(refspecs, opts, signature, reflog_message).then(function(result) { - // Use result +remote.push(refSpecs, options, signature, message).then(function(number) { + // Use number }); ``` +Pushes to a remote + + | Parameters | Type | | --- | --- | --- | -| refspecs | [Strarray](/api/strarray/) | the refspecs to use for pushing. If none are passed, the configured refspecs will be used | -| opts | [PushOptions](/api/push_options/) | the options | -| signature | [Signature](/api/signature/) | signature to use for the reflog of updated references | -| reflog_message | String | message to use for the reflog of upated references | +| refSpecs | Array | The ref specs that should be pushed | +| options | [PushOptions](/api/push_options/) | Options for the checkout | +| signature | [Signature](/api/signature/) | The identity to use for the reflog of the updated references | +| message | String | The message to use for the update reflog messages | | Returns | | | --- | --- | -| Number | | +| Number | error code | ## Remote#pushurl Sync diff --git a/api/repository/index.md b/api/repository/index.md index 913872a..25711c4 100644 --- a/api/repository/index.md +++ b/api/repository/index.md @@ -13,6 +13,7 @@ sections: "openBare": "#openBare" "openExt": "#openExt" "wrapOdb": "#wrapOdb" + "#checkoutBranch": "#checkoutBranch" "#config": "#config" "#configSnapshot": "#configSnapshot" "#createLightweightTag": "#createLightweightTag" @@ -159,6 +160,21 @@ Repository.wrapOdb(odb).then(function(repository) { | --- | --- | | [Repository](/api/repository/) | | +## Repository#checkoutBranch Sync + +```js +repository.checkoutBranch(branch, opts); +``` + +This will set the HEAD to point to the local branch and then attempt +to update the index and working tree to match the content of the +latest commit on that branch + +| Parameters | Type | +| --- | --- | --- | +| branch | String, [Reference](/api/reference/) | the branch to checkout | +| opts | [Object](/api/object/), [CheckoutOptions](/api/checkout_options/) | the options to use for the checkout | + ## Repository#config Async ```js @@ -651,10 +667,12 @@ repository.refdb().then(function(refdb) { | --- | --- | | [Refdb](/api/refdb/) | | -## Repository#setHead Sync +## Repository#setHead Async ```js -var result = repository.setHead(refname, signature, log_message); +repository.setHead(refname, signature, log_message).then(function(result) { + // Use result +}); ``` | Parameters | Type | diff --git a/guides/cloning/gh-two-factor/index.js b/guides/cloning/gh-two-factor/index.js index b03322c..113f3fe 100644 --- a/guides/cloning/gh-two-factor/index.js +++ b/guides/cloning/gh-two-factor/index.js @@ -2,7 +2,7 @@ // relative path. In your project, you will use: // // var NodeGit = require("nodegit"); -var Git = require("../../../"); +var NodeGit = require("../../../"); // To clone with two factor auth enabled, you have to use a GitHub OAuth token // over HTTPS. @@ -23,17 +23,17 @@ var cloneOptions = {}; cloneOptions.remoteCallbacks = { certificateCheck: function() { return 1; }, credentials: function() { - return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); + return NodeGit.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); } }; // Invoke the clone operation and store the returned Promise. -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); // If the repository already exists, the clone above will fail. You can simply // open the repository in this case to continue execution. var errorAndAttemptOpen = function() { - return Git.Repository.open(localPath); + return NodeGit.Repository.open(localPath); }; // Once the repository has been cloned or opened, you can work with a returned diff --git a/guides/cloning/gh-two-factor/index.md b/guides/cloning/gh-two-factor/index.md index 1627ab4..d07b0ef 100644 --- a/guides/cloning/gh-two-factor/index.md +++ b/guides/cloning/gh-two-factor/index.md @@ -26,13 +26,13 @@ In the guides directory, we like to keep our NodeGit relative to the project root. ``` javascript -var Git = require("../../../"); +var NodeGit = require("../../../"); ``` However, in your project you will most likely be using the following command: ``` javascript -var Git = require("nodegit"); +var NodeGit = require("nodegit"); ``` ### GitHub Personal OAuth Token @@ -118,7 +118,7 @@ The `remoteCallbacks` object now looks like this: cloneOptions.remoteCallbacks = { certificateCheck: function() { return 1; }, credentials: function() { - return Git.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); + return NodeGit.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic"); } }; ``` @@ -129,7 +129,7 @@ You can easily invoke our top-level Clone as a function passing along the three aforementioned arguments. ``` javascript -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); ``` Notice how we store the return value from `Git.Clone`. This is a @@ -145,7 +145,7 @@ a function to attempt opening in this case. ``` javascript var errorAndAttemptOpen = function() { - return Git.Repository.open(local); + return NodeGit.Repository.open(local); }; ``` @@ -163,4 +163,3 @@ cloneRepository.catch(errorAndAttemptOpen) console.log("Is the repository bare? %s", Boolean(repository.isBare())); }); ``` - diff --git a/guides/cloning/index.js b/guides/cloning/index.js index 36eecfa..2b0d7c9 100644 --- a/guides/cloning/index.js +++ b/guides/cloning/index.js @@ -2,7 +2,7 @@ // relative path. In your project, you will use: // // var NodeGit = require("nodegit"); -var Git = require("../../../"); +var NodeGit = require("../../../"); // Using the `clone` method from the `Git.Clone` module, bring down the NodeGit // test repository from GitHub. @@ -21,12 +21,12 @@ cloneOptions.remoteCallbacks = { }; // Invoke the clone operation and store the returned Promise. -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); // If the repository already exists, the clone above will fail. You can simply // open the repository in this case to continue execution. var errorAndAttemptOpen = function() { - return Git.Repository.open(localPath); + return NodeGit.Repository.open(localPath); }; // Once the repository has been cloned or opened, you can work with a returned diff --git a/guides/cloning/index.md b/guides/cloning/index.md index 7f5221b..e0c94f8 100644 --- a/guides/cloning/index.md +++ b/guides/cloning/index.md @@ -26,13 +26,13 @@ In the guides directory, we like to keep our NodeGit relative to the project root. ``` javascript -var Git = require("../../../"); +var NodeGit = require("../../../"); ``` However, in your project you will most likely be using the following command: ``` javascript -var Git = require("nodegit"); +var NodeGit = require("nodegit"); ``` ### Clone URL @@ -94,7 +94,7 @@ You can easily invoke our top-level Clone as a function passing along the three aforementioned arguments. ``` javascript -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); ``` Notice how we store the return value from `Git.Clone`. This is a @@ -110,7 +110,7 @@ a function to attempt opening in this case. ``` javascript var errorAndAttemptOpen = function() { - return Git.Repository.open(local); + return NodeGit.Repository.open(local); }; ``` diff --git a/guides/cloning/ssh-with-agent/index.js b/guides/cloning/ssh-with-agent/index.js index fbb2849..a507ba7 100644 --- a/guides/cloning/ssh-with-agent/index.js +++ b/guides/cloning/ssh-with-agent/index.js @@ -2,7 +2,7 @@ // relative path. In your project, you will use: // // var NodeGit = require("nodegit"); -var Git = require("../../../"); +var NodeGit = require("../../../"); // Set the URL that NodeGit will connect to clone. var cloneURL = "git@github.com:nodegit/test"; @@ -22,17 +22,17 @@ cloneOptions.remoteCallbacks = { // `userName` argument to the `sshKeyFromAgent` function to validate // authentication. credentials: function(url, userName) { - return Git.Cred.sshKeyFromAgent(userName); + return NodeGit.Cred.sshKeyFromAgent(userName); } }; // Invoke the clone operation and store the returned Promise. -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); // If the repository already exists, the clone above will fail. You can simply // open the repository in this case to continue execution. var errorAndAttemptOpen = function() { - return Git.Repository.open(localPath); + return NodeGit.Repository.open(localPath); }; // Once the repository has been cloned or opened, you can work with a returned diff --git a/guides/cloning/ssh-with-agent/index.md b/guides/cloning/ssh-with-agent/index.md index 06aa6b6..013f646 100644 --- a/guides/cloning/ssh-with-agent/index.md +++ b/guides/cloning/ssh-with-agent/index.md @@ -26,13 +26,13 @@ In the guides directory, we like to keep our NodeGit relative to the project root. ``` javascript -var Git = require("../../../"); +var NodeGit = require("../../../"); ``` However, in your project you will most likely be using the following command: ``` javascript -var Git = require("nodegit"); +var NodeGit = require("nodegit"); ``` ### Clone URL @@ -101,7 +101,7 @@ The `remoteCallbacks` object now looks like this: cloneOptions.remoteCallbacks = { certificateCheck: function() { return 1; }, credentials: function(url, userName) { - return Git.Cred.sshKeyFromAgent(userName); + return NodeGit.Cred.sshKeyFromAgent(userName); } }; ``` @@ -117,7 +117,7 @@ You can easily invoke our top-level Clone as a function passing along the three aforementioned arguments. ``` javascript -var cloneRepository = Git.Clone(cloneURL, localPath, cloneOptions); +var cloneRepository = NodeGit.Clone(cloneURL, localPath, cloneOptions); ``` Notice how we store the return value from `Git.Clone`. This is a @@ -133,7 +133,7 @@ a function to attempt opening in this case. ``` javascript var errorAndAttemptOpen = function() { - return Git.Repository.open(local); + return NodeGit.Repository.open(local); }; ``` diff --git a/guides/install/atom-shell/index.md b/guides/install/atom-shell/index.md index 6c8c743..f407879 100644 --- a/guides/install/atom-shell/index.md +++ b/guides/install/atom-shell/index.md @@ -8,3 +8,28 @@ description: How to install NodeGit with Atom Shell [Return to install guides](../) * * * + +Install for atom-shell +---------------------- + +For an application that is built using [atom-shell](https://github.com/atom/atom-shell) you'll need to have the `engines.atom-shell` set to the version of atom-shell that you are targeting in your root `package.json` file. + +For example if you have an atom-shell app that's targeting version 0.20.7 your package.json file would look something like + +```json +{ + "name": "as-app", + "displayName": "My Atom Shell app", + "version": "0.0.1", + "description": "", + "main": "main.js", + "author": "", + "engines": { + "atom-shell": "0.20.7" + } +} +``` + +And when doing an `npm install` or `apm install` inside of your atom-shell's root folder it will compile NodeGit targeting that version of atom-shell during the install. + +*NOTE: there are no pre-built binaries for atom-shell, you must rebuild NodeGit. Visit our [building guides](../from-source) for help* diff --git a/guides/install/from-source/index.md b/guides/install/from-source/index.md index 41fe39c..b0679fc 100644 --- a/guides/install/from-source/index.md +++ b/guides/install/from-source/index.md @@ -8,3 +8,80 @@ description: How to build NodeGit from source [Return to install guides](../) * * * + +Building from source +-------------------- + +If you wish to help contribute to NodeGit it is useful to build locally. + +``` bash +# Fetch this project. +git clone git://github.com/nodegit/nodegit.git + +# Enter the repository. +cd nodegit + +# Install all dependencies, run the code generation scripts, and build. +npm install +``` + +If you encounter errors, you most likely have not configured the dependencies correctly. + +### Installing dependencies: ### + +#### Mac OS X #### + +- [Install XCode Command Line Tools](http://railsapps.github.io/xcode-command-line-tools.html) + +#### Linux #### + +Using APT in Ubuntu: + +``` bash +sudo apt-get install build-essential +``` + +Using Pacman in Arch Linux: + +``` bash +sudo pacman -S base-devel +``` + +Note that GCC/G++ 4.7+ are required, as the library makes use of some c++11 std calls. + +#### Windows #### + +- [Download and install Python 2](https://www.python.org/download/windows). +- [Download and install VS Community](https://www.visualstudio.com/products/visual-studio-community-vs). + +You may have to add a build flag to the installation process to successfully install. +Try first without, if the build fails, try again with the flag. + +*Allegedly the order in which you install Visual Studio could trigger this error.* + +``` bash +npm install nodegit --msvs_version=2013 +# Or whatever version you've installed. +``` + +##### A note on environment variables in Windows ##### +In many of the npm scripts (and examples above), things are run like +`BUILD_ONLY=true npm install`. This sets the `BUILD_ONLY` environment variable +to true for the duration of that command. This doesn't work in windows, however +there is a solution. You can use cmd to call a command inside of cmd (very meta) +with the variable set, and it only lasts for the duration of the inner call to cmd. +So for the above example, you would run `cmd /C "set BUILD_ONLY=true && npm install"`. +See here for more details: +[SuperUser](http://superuser.com/questions/223104/setting-environment-variable-for-just-one-command-in-windows-cmd-exe). + +### Debug build: ### + +In order to track down possible bugs, you will need a debug buid so you +can get a backtrace with [gdb](http://www.gnu.org/software/gdb/) or +[lldb](http://lldb.llvm.org/). + +If you're building for the first time, run `npm run installDebug` (or `BUILD_ONLY=true npm link`) + +Note that you should run `rm -rf build/Release` (or `rd /s /q build/Release` in Windows) to make sure a release build doesn't get loaded instead of the debug build. + +If you're doing a subsequent rebuild of NodeGit in debug, the clean function will cause a lot of extraneous recompilation of things you probably didn't change (like the vendor dependencies). If you need to regenerate the C++ files and recompile you can run `npm run rebuildDebug`, or `npm run recompileDebug` if you've manually updated the C++ files and don't want them to regenerate. diff --git a/guides/install/index.md b/guides/install/index.md index 1fb92c4..f507070 100644 --- a/guides/install/index.md +++ b/guides/install/index.md @@ -21,23 +21,4 @@ npm install nodegit From GitHub ------------------------------------- -This is required to contribute or run the examples. - -Start by cloning the repository, chances are you will only need the latest -commit, so you can pass the `--depth` flag to make a shallow clone: - -``` bash -git clone --depth=1 https://github.com/nodegit/nodegit -``` - -Change your directory into the newly created nodegit folder. - -``` bash -cd nodegit -``` - -Now you can issue the local installation command: - -``` bash -npm install -``` +Check out our [build from source](./from-source) guides. diff --git a/guides/install/nw.js/index.md b/guides/install/nw.js/index.md index d7b1a13..49809fa 100644 --- a/guides/install/nw.js/index.md +++ b/guides/install/nw.js/index.md @@ -8,3 +8,26 @@ description: How to install NodeGit with NW.js [Return to install guides](../) * * * + +Install for nwjs +---------------- + +For an application that is built using [NW.js](https://github.com/nwjs/nw.js) you'll need to have the `engines['nw.js']` set to the version of NW.js that you are targeting in your root `package.json` file. + +For example if you have an NS.js app that's targeting version 0.12.0 your package.json file would look something like + +```json +{ + "name": "nw-app", + "displayName": "My NW.js app", + "version": "0.0.1", + "description": "", + "engines": { + "nw.js": "0.12.0" + } +} +``` + +And when doing an `npm install` inside of your NW.js app's root folder it will compile NodeGit targeting that version of NW.js during the install. + +*NOTE: there are no pre-built binaries for NW.js, you must rebuild NodeGit. Visit our [building guides](../from-source) for help* diff --git a/guides/repositories/index.js b/guides/repositories/index.js index e69de29..4c018f8 100644 --- a/guides/repositories/index.js +++ b/guides/repositories/index.js @@ -0,0 +1,39 @@ +// Require in NodeGit, since we want to use the local copy, we're using a +// relative path. In your project, you will use: +// +// var NodeGit = require("nodegit"); +var NodeGit = require("../../../"); + +// Using the `open` method from the `NodeGit.Repository` module, we can open +// a repository using NodeGit +var pathToRepo = require("path").resolve("../my-git-projects/my-project"); + +// In NodeGit we use Promises to make callbacks easier to deal with. +// +// For more information visit https://www.promisejs.org/ +NodeGit.Repository.open(pathToRepo).then(function (repo) { + // In this function we have a repo object that we can perform git operations + // on. + // NOTE: Many NodeGit objects will appear as empty objects if inspected in + // the console. This is a known issue. You can track it's progress at + // https://github.com/nodegit/nodegit/issues/307 +}) +// Promises will swallow errors and not report them unless you have supplied +// a second function to the `.then` or end the chain with either a `.catch` or +// a `.done` +.then(function (successfulResult) { + // This is the first function of the then which contains the successfully + // calculated result of the promise +}, function (reasonForFailure) { + // This is the second function of the then which contains the reason the + // promise failed +}) +.catch(function (reasonForFailure) { + // You can also provide a catch function which will contain the reason why + // any above promises that weren't handled have failed +}) +.done(function() { + // If we have a .done then the error will be thrown if there was an error that + // wasn't caught by either providing a 2nd function to the `.then` or a + // `.catch` function +}); diff --git a/guides/repositories/index.md b/guides/repositories/index.md index 0000b5f..429a2ff 100644 --- a/guides/repositories/index.md +++ b/guides/repositories/index.md @@ -5,4 +5,123 @@ title: Opening a Repository description: How to open and free a repository --- +**In order to run examples, you will need to [Install NodeGit](../../install/basics) +first.** + [Return to all guides](../) + +* * * + +Opening a Repository +-------------------- + +This guide explains how to open a repository, and how to work with errors in a +promise chain + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var NodeGit = require("../../../"); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var NodeGit = require("nodegit"); +``` + +### Path to Repo + +The only argument to the `open` method is a path to the repo on disk. Here we +are calculating that from our current directory using the `path` object from +node. + +``` javascript +var pathToRepo = require("path").resolve("../my-git-projects/my-project"); +``` + +You can also point it directly to a `.git` folder to open as well + +``` javascript +var pathToRepo = require("path").resolve("../my-git-projects/my-project/.git"); +``` + +This is not necessary though as the function will check the passed directory +for the `.git` subdirectory + +### Open a Repo + +Now that we have our path to the repo we wish to open we can do so by calling +the `open` method on the `NodeGit.Repository` module + +``` javascript +NodeGit.Repository.open(pathToRepo).then(function (repo) { + // Inside of this function we have an open repo +}); +``` + +*NOTE: We use promises to perform operations in NodeGit. This allows the node event +loop to keep cycling through while under the hood our wrapped libgit2 code is +performing the actions we requested and we're not waiting for it. + +This allows our apps to remain responsive and performant. However if you're +not used to promises then this can take some getting used to. If you need +an introduction you can head over to https://www.promisejs.org/ for some +tutorials.* + +### Handling errors + +Promises will swallow errors if there isn't code to explicitly handle them. +You can do this through any of the following 3 ways. + +#### Providing a second function to the `.then` method + +You can pass a second function parameter to the `.then` method that will have +the reason why a promise failed in it's first argument. + +``` javascript +NodeGit.Repository.open(pathToRepo).then(function (sucessfulResult) { + // This is the first function of the then which contains the successfully + // calculated result of the promise +}, function (reasonForFailure) { + // This is the second function of the then which contains the reason the + // promise failed +}); +``` + +#### Including a `.catch` in a chain + +You can also append a `.catch` to the end of a promise chain which will +receive any promise failure that isn't previously caught + +``` javascript +NodeGit.Repository.open(pathToRepo).then(function (sucessfulResult) { + // This is the first function of the then which contains the successfully + // calculated result of the promise +}) +.catch(function (reasonForFailure) { + // failure is handled here +}); +``` + +#### Finishing a chain with `done` + +If you append a `.done` at the end of your chain, you will have any error that +wasn't previously handled by the above 2 methods thrown. + +``` javascript +NodeGit.Repository.open(pathToRepo).then(function (sucessfulResult) { + // This is the first function of the then which contains the successfully + // calculated result of the promise +}) +.done(function () { + // If we have a .done then the error will be thrown if there was an error that + // wasn't caught by either providing a 2nd function to the `.then` or a + // `.catch` function +}); +``` diff --git a/guides/repositories/initializing/index.js b/guides/repositories/initializing/index.js index e69de29..67470ca 100644 --- a/guides/repositories/initializing/index.js +++ b/guides/repositories/initializing/index.js @@ -0,0 +1,29 @@ +// Require in NodeGit, since we want to use the local copy, we're using a +// relative path. In your project, you will use: +// +// var NodeGit = require("nodegit"); +var NodeGit = require("../../../"); + +// Using the `init` method from the `NodeGit.Repository` module, we can create +// a blank repository using NodeGit +var pathToRepo = require("path").resolve("../my-git-projects/my-project"); + +// Setting this to 0 will have the effect creating a `.git` folder inside of +// passed path. If this is 1 then we will use the passed path AS our `.git` +// folder. +var isBare = 0; + +// In NodeGit we use Promises to make callbacks easier to deal with. +// +// For more information visit https://www.promisejs.org/ +NodeGit.Repository.init(pathToRepo, isBare).then(function (repo) { + // In this function we have a repo object that we can perform git operations + // on. + + // Note that with a new repository many functions will fail until there is + // an initial commit. +}) +.catch(function (reasonForFailure) { + // If the repo cannot be created for any reason we can handle that case here. + // NodeGit won't init a repo over a pre-existing repo. +}); diff --git a/guides/repositories/initializing/index.md b/guides/repositories/initializing/index.md index c0a4b7c..8b8ad0f 100644 --- a/guides/repositories/initializing/index.md +++ b/guides/repositories/initializing/index.md @@ -5,6 +5,59 @@ title: Initializing description: How to initialize a repository --- +**In order to run examples, you will need to [Install NodeGit](../../install/basics) +first.** + [Return to repository guides](../) * * * + +Initializing a Repository +------------------------- + +This guide explains how to create a new repository. + +[View example source](index.js) + +### Requiring NodeGit + +In the guides directory, we like to keep our NodeGit relative to the project +root. + +``` javascript +var NodeGit = require("../../../"); +``` + +However, in your project you will most likely be using the following command: + +``` javascript +var NodeGit = require("nodegit"); +``` + +### Arguments to initialize a repo + +There are 2 arguments to the `init` method, a path to initialize the repo in +and whether or not to make a `.git` subfolder in that directory or use the +passed in directory as the `.git` folder itself. + + +``` javascript +var pathToRepo = require("path").resolve("../my-git-projects/my-project"); +var isBare = 0; // lets create a .git subfolder +``` + + +### Initialize the Repo + +Now that we have our arguments we can call the `init` method on the +`NodeGit.Repository` module to create the repo. + +``` javascript +NodeGit.Repository.init(pathToRepo, isBare).then(function (repo) { + // In this function we have a repo object that we can perform git operations + // on. + + // Note that with a new repository many functions will fail until there is + // an initial commit. +}); +``` From 22ca1b5d7dd08e9d43c9a12367bf6d5654d95eaa Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Fri, 13 Mar 2015 14:11:26 -0400 Subject: [PATCH 23/24] Added latest changelog info --- changelog.md | 1081 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1071 insertions(+), 10 deletions(-) diff --git a/changelog.md b/changelog.md index 1a7f02c..cd95be6 100644 --- a/changelog.md +++ b/changelog.md @@ -1,21 +1,1082 @@ --- layout: default title: Changelog -description: See what's changed between releases +description: What's changed between releases sections: "v0.3.0": "#v0-3-0" "v0.2.7": "#v0-2-7" + "v0.2.6": "#v0-2-6" + "v0.2.5": "#v0-2-5" + "v0.2.4": "#v0-2-4" + "v0.2.3": "#v0-2-3" + "v0.2.2": "#v0-2-2" + "v0.2.1": "#v0-2-1" + "v0.2.0": "#v0-2-0" + "v0.1.4": "#v0-1-4" + "v0.1.3": "#v0-1-3" + "v0.1.2": "#v0-1-2" + "v0.1.1": "#v0-1-1" + "v0.1.0": "#v0-1-0" + "v0.0.79": "#v0-0-79" + "v0.0.778": "#v0-0-778" + "v0.0.77": "#v0-0-77" + "v0.0.76": "#v0-0-76" + "v0.0.75": "#v0-0-75" + "v0.0.74": "#v0-0-74" + "v0.0.73": "#v0-0-73" + "v0.0.72": "#v0-0-72" + "v0.0.71": "#v0-0-71" + "v0.0.6": "#v0-0-6" + "v0.0.4": "#v0-0-4" + "v0.0.3": "#v0-0-3" + "v0.0.2": "#v0-0-2" + "v0.0.1": "#v0-0-1" --- -## v0.3.0 +## v0.3.0 (2015-03-13) -- Aevumque et Mercurio cornua cuspide desinit corpore -- In et temeraria prius clementia totusque quoque -- Sed vitaque venit ingeniosus parva -- Medio secundis dextrum pomaque -- Numina sed cum querellas frustra alto crura -- Caesique certe +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.7...v0.3.0) -## v0.2.7 +**Closed issues:** -- No changelog entries before v0.3.0 +- Suppress astyle errors [\#459](https://github.com/nodegit/nodegit/issues/459) + +- io.js support [\#447](https://github.com/nodegit/nodegit/issues/447) + +- Meteor: icon fonts not working \(Resource interpreted as Font but transferred with MIME type text/html\) [\#443](https://github.com/nodegit/nodegit/issues/443) + +- Don't let users set the payloads through JS [\#436](https://github.com/nodegit/nodegit/issues/436) + +- Transfer callback stats are being converted wrong [\#432](https://github.com/nodegit/nodegit/issues/432) + +- fetchAll\(\) fails unless a default signature is available [\#431](https://github.com/nodegit/nodegit/issues/431) + +- Push example needs to be updated [\#429](https://github.com/nodegit/nodegit/issues/429) + +- Question: Is there a certificateCheck option available for pushing to a remote repository? [\#420](https://github.com/nodegit/nodegit/issues/420) + +- Repository.open returns empty object [\#412](https://github.com/nodegit/nodegit/issues/412) + +- Missing documentation for Tree.walk\(\) [\#411](https://github.com/nodegit/nodegit/issues/411) + +- comparing from 0.1.4 to 0.2.0 [\#410](https://github.com/nodegit/nodegit/issues/410) + +- Potential example issue in add-and-commit.js L45-48 [\#409](https://github.com/nodegit/nodegit/issues/409) + +- failed to install on ubuntu 14.04 [\#408](https://github.com/nodegit/nodegit/issues/408) + +- Return promises instead of nesting them [\#407](https://github.com/nodegit/nodegit/issues/407) + +- segfault when cloning from private BitBucket repo [\#406](https://github.com/nodegit/nodegit/issues/406) + +- Subtrees + custom error handling [\#400](https://github.com/nodegit/nodegit/issues/400) + +- Callbacks need to handle more use-cases [\#395](https://github.com/nodegit/nodegit/issues/395) + +- How to use nodegit in atom shell ..... [\#393](https://github.com/nodegit/nodegit/issues/393) + +- Cannot create a new branch [\#391](https://github.com/nodegit/nodegit/issues/391) + +- Remove fixappveyor from clone tests [\#385](https://github.com/nodegit/nodegit/issues/385) + +- Commit isn't working [\#381](https://github.com/nodegit/nodegit/issues/381) + +- Rename combyne folder to templates [\#378](https://github.com/nodegit/nodegit/issues/378) + +- Building for atom-shell v0.21.0 fails [\#376](https://github.com/nodegit/nodegit/issues/376) + +- Cloning SSH repos seem to fail [\#372](https://github.com/nodegit/nodegit/issues/372) + +- Commit.getDiff is backwards? [\#368](https://github.com/nodegit/nodegit/issues/368) + +- List all files in repo \(git ls-tree\) [\#365](https://github.com/nodegit/nodegit/issues/365) + +- Cloning locks up when more than 3 at the same time. [\#364](https://github.com/nodegit/nodegit/issues/364) + +- Checking out a branch [\#361](https://github.com/nodegit/nodegit/issues/361) + +- nodegit no longer builds in nwjs [\#360](https://github.com/nodegit/nodegit/issues/360) + +- Update to v0.22 of libgit2 [\#355](https://github.com/nodegit/nodegit/issues/355) + +- Module install/build fails on Heroku [\#332](https://github.com/nodegit/nodegit/issues/332) + +- 2 Step Authentication [\#323](https://github.com/nodegit/nodegit/issues/323) + +- Needed Examples for 0.3.0 [\#321](https://github.com/nodegit/nodegit/issues/321) + +- Tests randomly failing in AppVeyor [\#316](https://github.com/nodegit/nodegit/issues/316) + +- Start using prepublishing to fix dependencies [\#301](https://github.com/nodegit/nodegit/issues/301) + +- Get commits history only for a file [\#220](https://github.com/nodegit/nodegit/issues/220) + +- enable Index.addAll and related [\#131](https://github.com/nodegit/nodegit/issues/131) + +**Merged pull requests:** + +- Don't assign enums to \_\_proto\_\_ [\#464](https://github.com/nodegit/nodegit/pull/464) ([orderedlist](https://github.com/orderedlist)) + +- Adds support for strarray in structs [\#461](https://github.com/nodegit/nodegit/pull/461) ([orderedlist](https://github.com/orderedlist)) + +- supress astyle warnings [\#460](https://github.com/nodegit/nodegit/pull/460) ([maxkorp](https://github.com/maxkorp)) + +- Template proto functions [\#458](https://github.com/nodegit/nodegit/pull/458) ([maxkorp](https://github.com/maxkorp)) + +- Remote push [\#457](https://github.com/nodegit/nodegit/pull/457) ([mattyclarkson](https://github.com/mattyclarkson)) + +- Include missing lib files in nodegit.js template [\#455](https://github.com/nodegit/nodegit/pull/455) ([orderedlist](https://github.com/orderedlist)) + +- StrArray memory fix [\#454](https://github.com/nodegit/nodegit/pull/454) ([mattyclarkson](https://github.com/mattyclarkson)) + +- Better cloning with NodeGit [\#453](https://github.com/nodegit/nodegit/pull/453) ([tbranyen](https://github.com/tbranyen)) + +- Add Diff.prototype.findSimilar [\#452](https://github.com/nodegit/nodegit/pull/452) ([orderedlist](https://github.com/orderedlist)) + +- Str array converter fix [\#451](https://github.com/nodegit/nodegit/pull/451) ([mattyclarkson](https://github.com/mattyclarkson)) + +- Default signature always returns valid signature [\#450](https://github.com/nodegit/nodegit/pull/450) ([johnhaley81](https://github.com/johnhaley81)) + +- Status.byIndex and StatusEntry [\#448](https://github.com/nodegit/nodegit/pull/448) ([orderedlist](https://github.com/orderedlist)) + +- Upgrade to nan 1.7.0 [\#446](https://github.com/nodegit/nodegit/pull/446) ([orderedlist](https://github.com/orderedlist)) + +- Added in an HTTP url for test [\#445](https://github.com/nodegit/nodegit/pull/445) ([tbranyen](https://github.com/tbranyen)) + +- Add examples [\#442](https://github.com/nodegit/nodegit/pull/442) ([johnhaley81](https://github.com/johnhaley81)) + +- hide callback payloads from javascript [\#441](https://github.com/nodegit/nodegit/pull/441) ([maxkorp](https://github.com/maxkorp)) + +- Fix transfer callback stats [\#440](https://github.com/nodegit/nodegit/pull/440) ([johnhaley81](https://github.com/johnhaley81)) + +- Put `uv\_async\_init` on main thread [\#438](https://github.com/nodegit/nodegit/pull/438) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix libuv threading issue [\#435](https://github.com/nodegit/nodegit/pull/435) ([johnhaley81](https://github.com/johnhaley81)) + +- Automatically free repositories post clone [\#434](https://github.com/nodegit/nodegit/pull/434) ([tbranyen](https://github.com/tbranyen)) + +- Skip transfer progress test until it's fixed [\#433](https://github.com/nodegit/nodegit/pull/433) ([johnhaley81](https://github.com/johnhaley81)) + +- git\_create\_tag doesn't have the correct descriptor [\#430](https://github.com/nodegit/nodegit/pull/430) ([mattyclarkson](https://github.com/mattyclarkson)) + +- Change environment to default for upgraded service [\#428](https://github.com/nodegit/nodegit/pull/428) ([maxkorp](https://github.com/maxkorp)) + +- Make the `git\_remote\_push` function async [\#427](https://github.com/nodegit/nodegit/pull/427) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix file lock 2 [\#426](https://github.com/nodegit/nodegit/pull/426) ([tbranyen](https://github.com/tbranyen)) + +- Attempt to fix Windows file locking bug [\#425](https://github.com/nodegit/nodegit/pull/425) ([tbranyen](https://github.com/tbranyen)) + +- Fix seg faults [\#424](https://github.com/nodegit/nodegit/pull/424) ([johnhaley81](https://github.com/johnhaley81)) + +- Clean up the persisting of props [\#423](https://github.com/nodegit/nodegit/pull/423) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix indexEntry construction and blobFromBuffer [\#422](https://github.com/nodegit/nodegit/pull/422) ([orderedlist](https://github.com/orderedlist)) + +- Allow for saving of props to an object [\#421](https://github.com/nodegit/nodegit/pull/421) ([johnhaley81](https://github.com/johnhaley81)) + +- Fixes segfault issue recorded in \#406 [\#419](https://github.com/nodegit/nodegit/pull/419) ([tbranyen](https://github.com/tbranyen)) + +- Update jsdoc and ignore some methods [\#418](https://github.com/nodegit/nodegit/pull/418) ([orderedlist](https://github.com/orderedlist)) + +- Fix callbacks with just return value and single payload [\#416](https://github.com/nodegit/nodegit/pull/416) ([johnhaley81](https://github.com/johnhaley81)) + +- Add `git\_reset` and `git\_reset\_default` [\#415](https://github.com/nodegit/nodegit/pull/415) ([johnhaley81](https://github.com/johnhaley81)) + +- Enable `git\_index\_remove\_all` and `git\_index\_update\_all` [\#414](https://github.com/nodegit/nodegit/pull/414) ([johnhaley81](https://github.com/johnhaley81)) + +- Added code for `git\_strarray` and enabled `git\_index\_add\_all` [\#413](https://github.com/nodegit/nodegit/pull/413) ([johnhaley81](https://github.com/johnhaley81)) + +- Tree Entry getBlob\(\) should also support the callback pattern. [\#405](https://github.com/nodegit/nodegit/pull/405) ([jeffwilcox](https://github.com/jeffwilcox)) + +- Tree Entry getBlob\(\) should also support the callback pattern. [\#404](https://github.com/nodegit/nodegit/pull/404) ([jeffwilcox](https://github.com/jeffwilcox)) + +- Adds in git\_checkout\_tree [\#402](https://github.com/nodegit/nodegit/pull/402) ([tbranyen](https://github.com/tbranyen)) + +- Made changes to the README [\#399](https://github.com/nodegit/nodegit/pull/399) ([tbranyen](https://github.com/tbranyen)) + +- Expose gc so all tests run in CI [\#398](https://github.com/nodegit/nodegit/pull/398) ([tbranyen](https://github.com/tbranyen)) + +- One more dependency update [\#397](https://github.com/nodegit/nodegit/pull/397) ([maxkorp](https://github.com/maxkorp)) + +- Update moar dependencies. [\#396](https://github.com/nodegit/nodegit/pull/396) ([maxkorp](https://github.com/maxkorp)) + +- Updated most dependencies to latest versions [\#394](https://github.com/nodegit/nodegit/pull/394) ([johnhaley81](https://github.com/johnhaley81)) + +- Index diffing [\#392](https://github.com/nodegit/nodegit/pull/392) ([orderedlist](https://github.com/orderedlist)) + +- Update to libgit2 v0.22.1 [\#390](https://github.com/nodegit/nodegit/pull/390) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix test issues [\#388](https://github.com/nodegit/nodegit/pull/388) ([maxkorp](https://github.com/maxkorp)) + +- Fix building when a space is in the path [\#387](https://github.com/nodegit/nodegit/pull/387) ([billt2006](https://github.com/billt2006)) + +- General maintenance [\#386](https://github.com/nodegit/nodegit/pull/386) ([maxkorp](https://github.com/maxkorp)) + +- Add 2 convenience methods to revwalk [\#384](https://github.com/nodegit/nodegit/pull/384) ([maxkorp](https://github.com/maxkorp)) + +- Make all cred generators sync. [\#377](https://github.com/nodegit/nodegit/pull/377) ([maxkorp](https://github.com/maxkorp)) + +- Plaintext credential not async [\#375](https://github.com/nodegit/nodegit/pull/375) ([mbleigh](https://github.com/mbleigh)) + +- Status and StatusList [\#374](https://github.com/nodegit/nodegit/pull/374) ([orderedlist](https://github.com/orderedlist)) + +- Fix the package scripts [\#373](https://github.com/nodegit/nodegit/pull/373) ([maxkorp](https://github.com/maxkorp)) + +- Removes Node 0.11 testing completely [\#371](https://github.com/nodegit/nodegit/pull/371) ([tbranyen](https://github.com/tbranyen)) + +- Allow null trees on Diff.treeToTree [\#370](https://github.com/nodegit/nodegit/pull/370) ([orderedlist](https://github.com/orderedlist)) + +- Atom shell support [\#369](https://github.com/nodegit/nodegit/pull/369) ([maxkorp](https://github.com/maxkorp)) + +- `Checkout.head` initializes options if none are passed [\#367](https://github.com/nodegit/nodegit/pull/367) ([johnhaley81](https://github.com/johnhaley81)) + +- INCLUDE\_UNTRACKED option not working for diffs [\#366](https://github.com/nodegit/nodegit/pull/366) ([kmctown](https://github.com/kmctown)) + +- Updated fs-extra to 0.15.0 [\#363](https://github.com/nodegit/nodegit/pull/363) ([johnhaley81](https://github.com/johnhaley81)) + +- update to libgit2 v0.21.5 [\#362](https://github.com/nodegit/nodegit/pull/362) ([maxkorp](https://github.com/maxkorp)) + +- Make remote\#download async [\#326](https://github.com/nodegit/nodegit/pull/326) ([tbranyen](https://github.com/tbranyen)) + +- Enable transfer progress [\#325](https://github.com/nodegit/nodegit/pull/325) ([tbranyen](https://github.com/tbranyen)) + +## v0.2.7 (2015-01-21) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.6...v0.2.7) + +## v0.2.6 (2015-01-20) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.5...v0.2.6) + +**Merged pull requests:** + +- \[WIP\] Added in some diff functions from libgit2 [\#348](https://github.com/nodegit/nodegit/pull/348) ([johnhaley81](https://github.com/johnhaley81)) + +## v0.2.5 (2015-01-20) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.4...v0.2.5) + +**Closed issues:** + +- Lookup a non existent commit crashes the process. [\#353](https://github.com/nodegit/nodegit/issues/353) + +- Why node-git uses 90% rotated hexagon? [\#344](https://github.com/nodegit/nodegit/issues/344) + +- Needed pull example or help with code [\#341](https://github.com/nodegit/nodegit/issues/341) + +- Can't require nodegit without building it explicitly [\#340](https://github.com/nodegit/nodegit/issues/340) + +- Can't build for node-webkit [\#335](https://github.com/nodegit/nodegit/issues/335) + +- Error when creating a new ssh key during credential handshake. [\#333](https://github.com/nodegit/nodegit/issues/333) + +- Tracking down bugs [\#331](https://github.com/nodegit/nodegit/issues/331) + +- Document possible values of CloneOptions [\#330](https://github.com/nodegit/nodegit/issues/330) + +- Require generating error [\#329](https://github.com/nodegit/nodegit/issues/329) + +- Failed getting Banner [\#328](https://github.com/nodegit/nodegit/issues/328) + +- Documentation broken [\#327](https://github.com/nodegit/nodegit/issues/327) + +- Fetch doesn't seem to work with https urls. [\#322](https://github.com/nodegit/nodegit/issues/322) + +- `git diff --cached --name-only` [\#183](https://github.com/nodegit/nodegit/issues/183) + +- git status [\#170](https://github.com/nodegit/nodegit/issues/170) + +**Merged pull requests:** + +- Refactor installation and publication [\#359](https://github.com/nodegit/nodegit/pull/359) ([maxkorp](https://github.com/maxkorp)) + +- Lint examples [\#358](https://github.com/nodegit/nodegit/pull/358) ([maxkorp](https://github.com/maxkorp)) + +- Commit.getParents working with merge commits [\#357](https://github.com/nodegit/nodegit/pull/357) ([bjornarg](https://github.com/bjornarg)) + +- Fixed a typo in the debug build instruction. [\#356](https://github.com/nodegit/nodegit/pull/356) ([mcollina](https://github.com/mcollina)) + +- Added a null check on freeing the raw object [\#354](https://github.com/nodegit/nodegit/pull/354) ([johnhaley81](https://github.com/johnhaley81)) + +- \[WIP\] Attempt at fixing appveyor [\#352](https://github.com/nodegit/nodegit/pull/352) ([johnhaley81](https://github.com/johnhaley81)) + +- Updated to nan 1.5.0 and fixed build errors [\#351](https://github.com/nodegit/nodegit/pull/351) ([johnhaley81](https://github.com/johnhaley81)) + +- WIP: Refactor publishing [\#350](https://github.com/nodegit/nodegit/pull/350) ([maxkorp](https://github.com/maxkorp)) + +- Added debug build instructions. [\#349](https://github.com/nodegit/nodegit/pull/349) ([mcollina](https://github.com/mcollina)) + +- Added checkout head method and tests [\#347](https://github.com/nodegit/nodegit/pull/347) ([johnhaley81](https://github.com/johnhaley81)) + +- bump devDependencies [\#346](https://github.com/nodegit/nodegit/pull/346) ([PeterDaveHello](https://github.com/PeterDaveHello)) + +- Update dependency node-pre-gyp to ~0.6 [\#345](https://github.com/nodegit/nodegit/pull/345) ([PeterDaveHello](https://github.com/PeterDaveHello)) + +- Update dependency fs-extra to ~0.14.0 [\#343](https://github.com/nodegit/nodegit/pull/343) ([PeterDaveHello](https://github.com/PeterDaveHello)) + +- Add Dependency badge in readme [\#342](https://github.com/nodegit/nodegit/pull/342) ([PeterDaveHello](https://github.com/PeterDaveHello)) + +- Fixed promise chain on install [\#339](https://github.com/nodegit/nodegit/pull/339) ([johnhaley81](https://github.com/johnhaley81)) + +- Do not double free during callbacks. [\#338](https://github.com/nodegit/nodegit/pull/338) ([mcollina](https://github.com/mcollina)) + +- Use svg instead of png to get better image quality [\#337](https://github.com/nodegit/nodegit/pull/337) ([PeterDaveHello](https://github.com/PeterDaveHello)) + +- Update to libgit 0.21.4 [\#336](https://github.com/nodegit/nodegit/pull/336) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix issue 333 [\#334](https://github.com/nodegit/nodegit/pull/334) ([johnhaley81](https://github.com/johnhaley81)) + +- Update appveyor.yml to remove project id [\#324](https://github.com/nodegit/nodegit/pull/324) ([vladikoff](https://github.com/vladikoff)) + +- moving some deps to devdeps [\#320](https://github.com/nodegit/nodegit/pull/320) ([maxkorp](https://github.com/maxkorp)) + +## v0.2.4 (2014-12-05) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.3...v0.2.4) + +**Closed issues:** + +- Fetch does not really fetch [\#314](https://github.com/nodegit/nodegit/issues/314) + +- Generate Missing Tests - Unable [\#313](https://github.com/nodegit/nodegit/issues/313) + +- Unable to get reference for HEAD [\#311](https://github.com/nodegit/nodegit/issues/311) + +- nodegit.Signature.now broken [\#306](https://github.com/nodegit/nodegit/issues/306) + +- current branch [\#305](https://github.com/nodegit/nodegit/issues/305) + +- Don't require json output for production [\#302](https://github.com/nodegit/nodegit/issues/302) + +- Module fails to load [\#299](https://github.com/nodegit/nodegit/issues/299) + +- How to list all tags? [\#298](https://github.com/nodegit/nodegit/issues/298) + +- Building for ARM [\#292](https://github.com/nodegit/nodegit/issues/292) + +- Next release checklist [\#256](https://github.com/nodegit/nodegit/issues/256) + +- CI issues [\#202](https://github.com/nodegit/nodegit/issues/202) + +- Variable names in the Docs? [\#157](https://github.com/nodegit/nodegit/issues/157) + +**Merged pull requests:** + +- Fixed fetch to be async and use callbacks [\#319](https://github.com/nodegit/nodegit/pull/319) ([johnhaley81](https://github.com/johnhaley81)) + +- Make contributing.md generic and add testing.md [\#318](https://github.com/nodegit/nodegit/pull/318) ([maxkorp](https://github.com/maxkorp)) + +- Fix repo init ext [\#317](https://github.com/nodegit/nodegit/pull/317) ([maxkorp](https://github.com/maxkorp)) + +- Fix 313 generate scripts [\#315](https://github.com/nodegit/nodegit/pull/315) ([xinUmbralis](https://github.com/xinUmbralis)) + +- Fix \#311 [\#312](https://github.com/nodegit/nodegit/pull/312) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix publishing [\#310](https://github.com/nodegit/nodegit/pull/310) ([maxkorp](https://github.com/maxkorp)) + +- detect node-webkit and build with nw-gyp [\#309](https://github.com/nodegit/nodegit/pull/309) ([maxkorp](https://github.com/maxkorp)) + +- fix signature.now and add signature tests [\#308](https://github.com/nodegit/nodegit/pull/308) ([maxkorp](https://github.com/maxkorp)) + +- Add a Gitter chat badge to README.md [\#304](https://github.com/nodegit/nodegit/pull/304) ([gitter-badger](https://github.com/gitter-badger)) + +- move nodegit.js to a template to remove idefs dependency [\#303](https://github.com/nodegit/nodegit/pull/303) ([maxkorp](https://github.com/maxkorp)) + +- Fixed tag list and added a test for it [\#300](https://github.com/nodegit/nodegit/pull/300) ([johnhaley81](https://github.com/johnhaley81)) + +- Convenience methods [\#297](https://github.com/nodegit/nodegit/pull/297) ([johnhaley81](https://github.com/johnhaley81)) + +- Clean up the contents of the generate folder [\#296](https://github.com/nodegit/nodegit/pull/296) ([maxkorp](https://github.com/maxkorp)) + +- Styling [\#295](https://github.com/nodegit/nodegit/pull/295) ([maxkorp](https://github.com/maxkorp)) + +## v0.2.3 (2014-11-25) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.2...v0.2.3) + +## v0.2.2 (2014-11-25) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.1...v0.2.2) + +**Merged pull requests:** + +- Moved some dependencies around to help the generate not fail [\#294](https://github.com/nodegit/nodegit/pull/294) ([johnhaley81](https://github.com/johnhaley81)) + +## v0.2.1 (2014-11-25) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.2.0...v0.2.1) + +**Merged pull requests:** + +- Rewrite installer [\#293](https://github.com/nodegit/nodegit/pull/293) ([johnhaley81](https://github.com/johnhaley81)) + +## v0.2.0 (2014-11-25) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.1.4...v0.2.0) + +**Closed issues:** + +- Find some way to automatically generate a list of missing tests. [\#272](https://github.com/nodegit/nodegit/issues/272) + +- libgit2 creation methods have name collisions with internal V8 functions [\#271](https://github.com/nodegit/nodegit/issues/271) + +- Enums are still being manually assigned in javascript [\#268](https://github.com/nodegit/nodegit/issues/268) + +- We're using too many promise libraries [\#264](https://github.com/nodegit/nodegit/issues/264) + +- unable to resolve symbolic references [\#262](https://github.com/nodegit/nodegit/issues/262) + +- nodegit installation falls back when Python install dir contains spaces [\#261](https://github.com/nodegit/nodegit/issues/261) + +- Probe features [\#245](https://github.com/nodegit/nodegit/issues/245) + +- require\('path'\).Repo.open\(...\) returns {} [\#241](https://github.com/nodegit/nodegit/issues/241) + +- Refactoring how internal C objects are stored in V8 and passed to JS [\#240](https://github.com/nodegit/nodegit/issues/240) + +- RevWalk malloc error [\#239](https://github.com/nodegit/nodegit/issues/239) + +- OS X tests in Travis-CI [\#237](https://github.com/nodegit/nodegit/issues/237) + +- Fix RevWalk tests [\#236](https://github.com/nodegit/nodegit/issues/236) + +- Simple clone fails. [\#231](https://github.com/nodegit/nodegit/issues/231) + +- Create templates for remaining src and include files [\#230](https://github.com/nodegit/nodegit/issues/230) + +- Error: SSL is not supported by this copy of libgit2. [\#228](https://github.com/nodegit/nodegit/issues/228) + +- error while install nodegit latest version 0.1.4 [\#225](https://github.com/nodegit/nodegit/issues/225) + +- error while install nodegit latest version 0.1.4 [\#224](https://github.com/nodegit/nodegit/issues/224) + +- Did getReferences dissapear? [\#223](https://github.com/nodegit/nodegit/issues/223) + +- How to get UNIX file attributes? [\#222](https://github.com/nodegit/nodegit/issues/222) + +- How to get mtime for TreeEntry/file? [\#221](https://github.com/nodegit/nodegit/issues/221) + +- Commit only if there is changes [\#219](https://github.com/nodegit/nodegit/issues/219) + +- Again for \#147 [\#218](https://github.com/nodegit/nodegit/issues/218) + +- Update documentation on nodegit.org [\#217](https://github.com/nodegit/nodegit/issues/217) + +- Can you provide the prebuilt binaries on S3? [\#216](https://github.com/nodegit/nodegit/issues/216) + +- Stable = bump to 1.0 [\#215](https://github.com/nodegit/nodegit/issues/215) + +- How can I push a commit? [\#214](https://github.com/nodegit/nodegit/issues/214) + +- "Error: Reference 'refs/heads/master' not found " when create commit in a empty repo [\#213](https://github.com/nodegit/nodegit/issues/213) + +- Example on nodegit.com homepage is invalid [\#211](https://github.com/nodegit/nodegit/issues/211) + +- tree.diffWorkDir deprecated? [\#209](https://github.com/nodegit/nodegit/issues/209) + +- Abort on getRemotes [\#201](https://github.com/nodegit/nodegit/issues/201) + +- Generic Logging/Tracing mechanism [\#199](https://github.com/nodegit/nodegit/issues/199) + +- Repo\#openIndex missing [\#197](https://github.com/nodegit/nodegit/issues/197) + +- Documentation on http://www.nodegit.org/ out of date [\#196](https://github.com/nodegit/nodegit/issues/196) + +- Remove extern "C" with 0.21 bump [\#193](https://github.com/nodegit/nodegit/issues/193) + +- CloneOptions documentation lacking [\#192](https://github.com/nodegit/nodegit/issues/192) + +- Getting the HEAD commit SHA [\#191](https://github.com/nodegit/nodegit/issues/191) + +- Webpage examples are not up to date [\#190](https://github.com/nodegit/nodegit/issues/190) + +- Automatically generate structs from types array [\#187](https://github.com/nodegit/nodegit/issues/187) + +- Adding a new file always returns the same SHA. [\#185](https://github.com/nodegit/nodegit/issues/185) + +- Current Travis passes with fallback binary. [\#182](https://github.com/nodegit/nodegit/issues/182) + +- Error: connect ETIMEDOUT during install [\#179](https://github.com/nodegit/nodegit/issues/179) + +- TODO [\#177](https://github.com/nodegit/nodegit/issues/177) + +- Notes [\#176](https://github.com/nodegit/nodegit/issues/176) + +- How to create a branch [\#174](https://github.com/nodegit/nodegit/issues/174) + +- `p-\>index\_map.data' failed [\#172](https://github.com/nodegit/nodegit/issues/172) + +- Integration improvements. [\#171](https://github.com/nodegit/nodegit/issues/171) + +- invalid ELF header from build/Release/nodegit.node [\#167](https://github.com/nodegit/nodegit/issues/167) + +- Removing generated source. [\#165](https://github.com/nodegit/nodegit/issues/165) + +- using newer libgit2 version [\#164](https://github.com/nodegit/nodegit/issues/164) + +- Generating tests for bindings. [\#163](https://github.com/nodegit/nodegit/issues/163) + +- Streams? [\#161](https://github.com/nodegit/nodegit/issues/161) + +- Unfortunately GitHub decided to go their own way :-/ [\#160](https://github.com/nodegit/nodegit/issues/160) + +- Separate additional meta data from JSON. [\#152](https://github.com/nodegit/nodegit/issues/152) + +- Git Pull [\#151](https://github.com/nodegit/nodegit/issues/151) + +- branch.cc missing from binding.gyp [\#149](https://github.com/nodegit/nodegit/issues/149) + +- numDeltasOfType is a static method not on the prototype [\#148](https://github.com/nodegit/nodegit/issues/148) + +- Not sure how this happen [\#147](https://github.com/nodegit/nodegit/issues/147) + +- Emscripten binding templates. [\#142](https://github.com/nodegit/nodegit/issues/142) + +- git+ssh transport support [\#136](https://github.com/nodegit/nodegit/issues/136) + +- Support for git\_merge [\#133](https://github.com/nodegit/nodegit/issues/133) + +- Random segfault in kh\_get\_off [\#132](https://github.com/nodegit/nodegit/issues/132) + +- Unexpected HTTP status code: 401 [\#130](https://github.com/nodegit/nodegit/issues/130) + +- Commit\#messageEncoding triggers a segmentation fault [\#129](https://github.com/nodegit/nodegit/issues/129) + +- Passing CloneOptions [\#127](https://github.com/nodegit/nodegit/issues/127) + +- Commit.getDiff\(\) fails for first commit [\#125](https://github.com/nodegit/nodegit/issues/125) + +- Adding directories [\#121](https://github.com/nodegit/nodegit/issues/121) + +- checkout head and update working tree [\#114](https://github.com/nodegit/nodegit/issues/114) + +- Index add cacheinfo [\#111](https://github.com/nodegit/nodegit/issues/111) + +- Remote.prototype.pushUrl\(\) Segmentation fault: 11 and Remote.prototype.setPushUrl\(url\) not working ? [\#109](https://github.com/nodegit/nodegit/issues/109) + +- Set working tree [\#93](https://github.com/nodegit/nodegit/issues/93) + +**Merged pull requests:** + +- add history.md and update readme [\#291](https://github.com/nodegit/nodegit/pull/291) ([maxkorp](https://github.com/maxkorp)) + +- Added tests for commit [\#290](https://github.com/nodegit/nodegit/pull/290) ([nkt](https://github.com/nkt)) + +- Added editor config [\#289](https://github.com/nodegit/nodegit/pull/289) ([nkt](https://github.com/nkt)) + +- \[WIP\] Push example [\#288](https://github.com/nodegit/nodegit/pull/288) ([johnhaley81](https://github.com/johnhaley81)) + +- \[WIP\] Better installation flow [\#287](https://github.com/nodegit/nodegit/pull/287) ([tbranyen](https://github.com/tbranyen)) + +- Merge methods and tests and examples [\#286](https://github.com/nodegit/nodegit/pull/286) ([maxkorp](https://github.com/maxkorp)) + +- Add details-for-tree-entry [\#285](https://github.com/nodegit/nodegit/pull/285) ([johnhaley81](https://github.com/johnhaley81)) + +- Add repo init example [\#284](https://github.com/nodegit/nodegit/pull/284) ([maxkorp](https://github.com/maxkorp)) + +- update add-and-commit example to include new paths [\#283](https://github.com/nodegit/nodegit/pull/283) ([maxkorp](https://github.com/maxkorp)) + +- General cleanup [\#282](https://github.com/nodegit/nodegit/pull/282) ([maxkorp](https://github.com/maxkorp)) + +- Added osx for testing on Travis [\#281](https://github.com/nodegit/nodegit/pull/281) ([johnhaley81](https://github.com/johnhaley81)) + +- Added " around python path to help fix issues with spaces in path [\#280](https://github.com/nodegit/nodegit/pull/280) ([johnhaley81](https://github.com/johnhaley81)) + +- Tests for branch class [\#279](https://github.com/nodegit/nodegit/pull/279) ([johnhaley81](https://github.com/johnhaley81)) + +- Exposes the NodeGit Promise implementation [\#278](https://github.com/nodegit/nodegit/pull/278) ([tbranyen](https://github.com/tbranyen)) + +- Fixes incorrect method used in path lookup [\#277](https://github.com/nodegit/nodegit/pull/277) ([tbranyen](https://github.com/tbranyen)) + +- \[WIP\] Update examples [\#276](https://github.com/nodegit/nodegit/pull/276) ([johnhaley81](https://github.com/johnhaley81)) + +- Added script to generate missing tests [\#274](https://github.com/nodegit/nodegit/pull/274) ([johnhaley81](https://github.com/johnhaley81)) + +- Rename new [\#273](https://github.com/nodegit/nodegit/pull/273) ([maxkorp](https://github.com/maxkorp)) + +- MSBUILD doesn't allow an array of size 0 [\#270](https://github.com/nodegit/nodegit/pull/270) ([johnhaley81](https://github.com/johnhaley81)) + +- \[WIP\] generate enum definitions [\#269](https://github.com/nodegit/nodegit/pull/269) ([maxkorp](https://github.com/maxkorp)) + +- add Refs.nameToId and test [\#267](https://github.com/nodegit/nodegit/pull/267) ([maxkorp](https://github.com/maxkorp)) + +- voidcheck string pointers and reenable attr test [\#266](https://github.com/nodegit/nodegit/pull/266) ([maxkorp](https://github.com/maxkorp)) + +- require --documentation flag to include text in idefs [\#265](https://github.com/nodegit/nodegit/pull/265) ([maxkorp](https://github.com/maxkorp)) + +- This is a test [\#263](https://github.com/nodegit/nodegit/pull/263) ([johnhaley81](https://github.com/johnhaley81)) + +- Added ability for callbacks to poll promises for fulfillment value [\#260](https://github.com/nodegit/nodegit/pull/260) ([johnhaley81](https://github.com/johnhaley81)) + +- Generate nodegit from libgit2 docs and refactor descriptor [\#259](https://github.com/nodegit/nodegit/pull/259) ([johnhaley81](https://github.com/johnhaley81)) + +- Fix revwalk tests [\#258](https://github.com/nodegit/nodegit/pull/258) ([maxkorp](https://github.com/maxkorp)) + +- Bump to latest libgit2 [\#257](https://github.com/nodegit/nodegit/pull/257) ([tbranyen](https://github.com/tbranyen)) + +- Added status methods [\#255](https://github.com/nodegit/nodegit/pull/255) ([tbranyen](https://github.com/tbranyen)) + +- Use Start-Process to start pageant.exe [\#254](https://github.com/nodegit/nodegit/pull/254) ([FeodorFitsner](https://github.com/FeodorFitsner)) + +- Adds in git\_index\_add and GitIndexInfo struct [\#253](https://github.com/nodegit/nodegit/pull/253) ([tbranyen](https://github.com/tbranyen)) + +- Adds in a broken unit test for \#109 [\#252](https://github.com/nodegit/nodegit/pull/252) ([tbranyen](https://github.com/tbranyen)) + +- Added more git\_cred methods [\#251](https://github.com/nodegit/nodegit/pull/251) ([johnhaley81](https://github.com/johnhaley81)) + +- Refactor classes [\#250](https://github.com/nodegit/nodegit/pull/250) ([maxkorp](https://github.com/maxkorp)) + +- Remove openssl [\#249](https://github.com/nodegit/nodegit/pull/249) ([tbranyen](https://github.com/tbranyen)) + +- Update Readme, to improve example code [\#248](https://github.com/nodegit/nodegit/pull/248) ([nmn](https://github.com/nmn)) + +- \[TEST\] Appveyor agent [\#247](https://github.com/nodegit/nodegit/pull/247) ([tbranyen](https://github.com/tbranyen)) + +- Refactor classes [\#246](https://github.com/nodegit/nodegit/pull/246) ([maxkorp](https://github.com/maxkorp)) + +- Buf methods [\#244](https://github.com/nodegit/nodegit/pull/244) ([tbranyen](https://github.com/tbranyen)) + +- Branch methods [\#243](https://github.com/nodegit/nodegit/pull/243) ([tbranyen](https://github.com/tbranyen)) + +- Blame methods [\#242](https://github.com/nodegit/nodegit/pull/242) ([tbranyen](https://github.com/tbranyen)) + +- Enable multios [\#238](https://github.com/nodegit/nodegit/pull/238) ([maxkorp](https://github.com/maxkorp)) + +- Add revwalk.hide and revwalk.simplifyFirstParent [\#235](https://github.com/nodegit/nodegit/pull/235) ([tbranyen](https://github.com/tbranyen)) + +- Add revwalk.hide and revwalk.simplifyFirstParent [\#234](https://github.com/nodegit/nodegit/pull/234) ([orderedlist](https://github.com/orderedlist)) + +- Moved wrapper/copy out of include/src [\#233](https://github.com/nodegit/nodegit/pull/233) ([johnhaley81](https://github.com/johnhaley81)) + +- Removed ejs dependency [\#232](https://github.com/nodegit/nodegit/pull/232) ([johnhaley81](https://github.com/johnhaley81)) + +- Bump to latest libgit2 [\#229](https://github.com/nodegit/nodegit/pull/229) ([tbranyen](https://github.com/tbranyen)) + +- WIP: Refactor source generation templates from EJS to Combyne [\#227](https://github.com/nodegit/nodegit/pull/227) ([tbranyen](https://github.com/tbranyen)) + +- Test fixes [\#226](https://github.com/nodegit/nodegit/pull/226) ([johnhaley81](https://github.com/johnhaley81)) + +- Get HEAD SHA [\#210](https://github.com/nodegit/nodegit/pull/210) ([tbranyen](https://github.com/tbranyen)) + +- Started working on initializing a repo with init options [\#208](https://github.com/nodegit/nodegit/pull/208) ([tbranyen](https://github.com/tbranyen)) + +- Added new methods in checkout and repository [\#207](https://github.com/nodegit/nodegit/pull/207) ([tbranyen](https://github.com/tbranyen)) + +- Added additional remote methods [\#206](https://github.com/nodegit/nodegit/pull/206) ([tbranyen](https://github.com/tbranyen)) + +- Added git\_remote\_url and git\_remote\_load [\#205](https://github.com/nodegit/nodegit/pull/205) ([tbranyen](https://github.com/tbranyen)) + +- Add in remote listing support and test [\#204](https://github.com/nodegit/nodegit/pull/204) ([tbranyen](https://github.com/tbranyen)) + +- Attr methods [\#203](https://github.com/nodegit/nodegit/pull/203) ([tbranyen](https://github.com/tbranyen)) + +- Support latest libgit2 v0.21.0 [\#200](https://github.com/nodegit/nodegit/pull/200) ([tbranyen](https://github.com/tbranyen)) + +- Add Repo.openIndex [\#198](https://github.com/nodegit/nodegit/pull/198) ([tbranyen](https://github.com/tbranyen)) + +- Clone methods [\#195](https://github.com/nodegit/nodegit/pull/195) ([tbranyen](https://github.com/tbranyen)) + +- Remove all unused vendor directories [\#194](https://github.com/nodegit/nodegit/pull/194) ([tbranyen](https://github.com/tbranyen)) + +- \[WIP\] Mocha integration [\#189](https://github.com/nodegit/nodegit/pull/189) ([tbranyen](https://github.com/tbranyen)) + +- Auto gen structs [\#188](https://github.com/nodegit/nodegit/pull/188) ([tbranyen](https://github.com/tbranyen)) + +- Add in support for repository init ext [\#186](https://github.com/nodegit/nodegit/pull/186) ([tbranyen](https://github.com/tbranyen)) + +- moved libgit2 gyp to separate dir [\#184](https://github.com/nodegit/nodegit/pull/184) ([deepak1556](https://github.com/deepak1556)) + +- Remove all generated source code. [\#181](https://github.com/nodegit/nodegit/pull/181) ([tbranyen](https://github.com/tbranyen)) + +- Better installation flow for developing. [\#180](https://github.com/nodegit/nodegit/pull/180) ([tbranyen](https://github.com/tbranyen)) + +- \[Experimental\] Emscripten fun. [\#168](https://github.com/nodegit/nodegit/pull/168) ([tbranyen](https://github.com/tbranyen)) + +- \[WIP\] Descriptor refactor. [\#162](https://github.com/nodegit/nodegit/pull/162) ([tbranyen](https://github.com/tbranyen)) + +- Enable promises. [\#153](https://github.com/nodegit/nodegit/pull/153) ([tbranyen](https://github.com/tbranyen)) + +## v0.1.4 (2014-06-13) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.1.3...v0.1.4) + +**Closed issues:** + +- Redis Backend [\#173](https://github.com/nodegit/nodegit/issues/173) + +- using "Branch" object results in "undefined" error =\> branch.cc missing from binding.gyp? [\#166](https://github.com/nodegit/nodegit/issues/166) + +- Feature: Compatibility with node \>=v0.11.13 [\#159](https://github.com/nodegit/nodegit/issues/159) + +- Windows: Failure on install [\#158](https://github.com/nodegit/nodegit/issues/158) + +- Can't install v0.1.2 under OSX [\#155](https://github.com/nodegit/nodegit/issues/155) + +- Logo for project [\#69](https://github.com/nodegit/nodegit/issues/69) + +**Merged pull requests:** + +- \[WIP\] Prebuilt binaries. [\#178](https://github.com/nodegit/nodegit/pull/178) ([tbranyen](https://github.com/tbranyen)) + +- NodeJS v0.11.13 compatibility [\#175](https://github.com/nodegit/nodegit/pull/175) ([3y3](https://github.com/3y3)) + +- Fixed: "ReferenceError: error is not defined" [\#169](https://github.com/nodegit/nodegit/pull/169) ([danyshaanan](https://github.com/danyshaanan)) + +## v0.1.3 (2014-05-02) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.1.2...v0.1.3) + +**Closed issues:** + +- Fix AppVeyor. [\#154](https://github.com/nodegit/nodegit/issues/154) + +**Merged pull requests:** + +- Fix erroneous OS detection for installation in OS X. [\#156](https://github.com/nodegit/nodegit/pull/156) ([tbranyen](https://github.com/tbranyen)) + +## v0.1.2 (2014-05-02) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.1.1...v0.1.2) + +**Closed issues:** + +- gyp ERR cannot find -lgit2 [\#150](https://github.com/nodegit/nodegit/issues/150) + +- Read file from git server [\#145](https://github.com/nodegit/nodegit/issues/145) + +- "emulate git log" example error [\#144](https://github.com/nodegit/nodegit/issues/144) + +- repo.workdir\(\) crashes \(SIGSEGV\) on a bare repo [\#128](https://github.com/nodegit/nodegit/issues/128) + +- How to create Branch using the API? [\#124](https://github.com/nodegit/nodegit/issues/124) + +- 'npm run-script gen && npm install' on Ubuntu 13.04 [\#122](https://github.com/nodegit/nodegit/issues/122) + +- Error while installing Nodegit 0.1.0 [\#120](https://github.com/nodegit/nodegit/issues/120) + +- Question: How would I implement the equivalent of `git status`? [\#117](https://github.com/nodegit/nodegit/issues/117) + +- Sync versions of all the methods [\#115](https://github.com/nodegit/nodegit/issues/115) + +- Tick version \# [\#107](https://github.com/nodegit/nodegit/issues/107) + +- Windows support [\#71](https://github.com/nodegit/nodegit/issues/71) + +- Create test for history with merge commits [\#64](https://github.com/nodegit/nodegit/issues/64) + +**Merged pull requests:** + +- Fixed OSX Directions [\#143](https://github.com/nodegit/nodegit/pull/143) ([nickpoorman](https://github.com/nickpoorman)) + +- Add ubuntu lib dependencies to the readme [\#141](https://github.com/nodegit/nodegit/pull/141) ([bigthyme](https://github.com/bigthyme)) + +- WIP New installer. [\#140](https://github.com/nodegit/nodegit/pull/140) ([tbranyen](https://github.com/tbranyen)) + +## v0.1.1 (2014-03-23) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.1.0...v0.1.1) + +**Closed issues:** + +- Misleading Readme [\#138](https://github.com/nodegit/nodegit/issues/138) + +- Cannot find module './build/Debug/nodegit' [\#137](https://github.com/nodegit/nodegit/issues/137) + +- Support for Node 0.11+ [\#134](https://github.com/nodegit/nodegit/issues/134) + +- installer cant seem to find python [\#126](https://github.com/nodegit/nodegit/issues/126) + +- Cannot build when parent directory contains space\(s\) [\#123](https://github.com/nodegit/nodegit/issues/123) + +- question: how cvv8 is used? [\#118](https://github.com/nodegit/nodegit/issues/118) + +- question: gen.js does not generate wrapper.h and wrapper.cc [\#116](https://github.com/nodegit/nodegit/issues/116) + +- tree.diffIndex: pointer being freed was not allocated [\#112](https://github.com/nodegit/nodegit/issues/112) + +- Use as a dependency of another node project? [\#110](https://github.com/nodegit/nodegit/issues/110) + +- Segmentation faults with concurrent access? [\#104](https://github.com/nodegit/nodegit/issues/104) + +- tree.diffWorkDir [\#101](https://github.com/nodegit/nodegit/issues/101) + +- getReference passes unexpected object into callback [\#98](https://github.com/nodegit/nodegit/issues/98) + +- index.removeByPath stops execution [\#97](https://github.com/nodegit/nodegit/issues/97) + +- Missing example: commit to a local repo \(i.e. git add, git commit\) [\#96](https://github.com/nodegit/nodegit/issues/96) + +- Get contents of index entry? [\#94](https://github.com/nodegit/nodegit/issues/94) + +- Failure to Build nodegit at Commit 0aa9a3c120 on OS X 10.6.8 [\#92](https://github.com/nodegit/nodegit/issues/92) + +- TypeError: Cannot call method 'clone' of undefined [\#91](https://github.com/nodegit/nodegit/issues/91) + +- missing cstring [\#88](https://github.com/nodegit/nodegit/issues/88) + +- Memory management for the codegen `wip` branch [\#84](https://github.com/nodegit/nodegit/issues/84) + +- Installing fails - can't find vendor/libgit2/build [\#80](https://github.com/nodegit/nodegit/issues/80) + +- Improving JavaScript API [\#73](https://github.com/nodegit/nodegit/issues/73) + +- Using code-generation to generate [\#70](https://github.com/nodegit/nodegit/issues/70) + +**Merged pull requests:** + +- Fix and improve testing. [\#139](https://github.com/nodegit/nodegit/pull/139) ([tbranyen](https://github.com/tbranyen)) + +- Support for Node 0.11+ [\#135](https://github.com/nodegit/nodegit/pull/135) ([pierreinglebert](https://github.com/pierreinglebert)) + +- Fixed the error message to pass test. [\#119](https://github.com/nodegit/nodegit/pull/119) ([tbranyen](https://github.com/tbranyen)) + +- Added git\_diff\_delta\_dup to git\_diff\_get\_patch to fix a memory issue whe... [\#113](https://github.com/nodegit/nodegit/pull/113) ([kmctown](https://github.com/kmctown)) + +- Try requiring build/Debug/nodegit if build/Release/nodegit wasn't found. [\#108](https://github.com/nodegit/nodegit/pull/108) ([papandreou](https://github.com/papandreou)) + +- Updated v0.18.0.json to make the index and DiffOptions arguments in Inde... [\#106](https://github.com/nodegit/nodegit/pull/106) ([kmctown](https://github.com/kmctown)) + +- Duplicate git\_error struct before passing it on [\#105](https://github.com/nodegit/nodegit/pull/105) ([papandreou](https://github.com/papandreou)) + +- Changed v0.18.0.json so diffWorkDir DiffOptions argument is optional. Ad... [\#103](https://github.com/nodegit/nodegit/pull/103) ([kmctown](https://github.com/kmctown)) + +- Reviewd and fixed examples [\#102](https://github.com/nodegit/nodegit/pull/102) ([micha149](https://github.com/micha149)) + +- cmake 2.8 is required to build nodegit [\#100](https://github.com/nodegit/nodegit/pull/100) ([dcolens](https://github.com/dcolens)) + +- new add-and-commit.js and remove-and-commit.js examples [\#99](https://github.com/nodegit/nodegit/pull/99) ([dcolens](https://github.com/dcolens)) + +- Add missing fields to index entry [\#95](https://github.com/nodegit/nodegit/pull/95) ([papandreou](https://github.com/papandreou)) + +- Made the tests pass and making each test self-contained [\#90](https://github.com/nodegit/nodegit/pull/90) ([FrozenCow](https://github.com/FrozenCow)) + +- Fixed compile error: memcpy not defined [\#89](https://github.com/nodegit/nodegit/pull/89) ([FrozenCow](https://github.com/FrozenCow)) + +- Add system dependencies for OSX install [\#82](https://github.com/nodegit/nodegit/pull/82) ([philschatz](https://github.com/philschatz)) + +## v0.1.0 (2013-09-07) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.79...v0.1.0) + +**Closed issues:** + +- The api in README is incorrect [\#87](https://github.com/nodegit/nodegit/issues/87) + +- message\_encoding in documentation for Repo.createCommit [\#86](https://github.com/nodegit/nodegit/issues/86) + +- How to retrieve blob with binary content? [\#83](https://github.com/nodegit/nodegit/issues/83) + +- Incorrect commit oid's when aggregated from commit.history\(\) [\#81](https://github.com/nodegit/nodegit/issues/81) + +- How do you list branches in repo? [\#76](https://github.com/nodegit/nodegit/issues/76) + +- License? [\#74](https://github.com/nodegit/nodegit/issues/74) + +- Nested walks scatter memory and cause SEGFAULTS [\#72](https://github.com/nodegit/nodegit/issues/72) + +- Why is new git.Oid\(\).fromString\(\) etc. async? [\#68](https://github.com/nodegit/nodegit/issues/68) + +- feature request: Provide fileMode / getType method on tree entries [\#67](https://github.com/nodegit/nodegit/issues/67) + +- Document DiffList [\#66](https://github.com/nodegit/nodegit/issues/66) + +- Implement query-like access to repo content [\#61](https://github.com/nodegit/nodegit/issues/61) + +- Tags [\#58](https://github.com/nodegit/nodegit/issues/58) + +- Procedure for moving development to nodegit/nodegit [\#55](https://github.com/nodegit/nodegit/issues/55) + +- cloning or updating repositories? [\#50](https://github.com/nodegit/nodegit/issues/50) + +- Cannot install on OSX [\#49](https://github.com/nodegit/nodegit/issues/49) + +- Add file to repo [\#45](https://github.com/nodegit/nodegit/issues/45) + +**Merged pull requests:** + +- Fixed TreeBuilder.write's missing repo argument to match its documentation [\#85](https://github.com/nodegit/nodegit/pull/85) ([FrozenCow](https://github.com/FrozenCow)) + +- Codegen [\#79](https://github.com/nodegit/nodegit/pull/79) ([nkallen](https://github.com/nkallen)) + +- Codegen [\#78](https://github.com/nodegit/nodegit/pull/78) ([nkallen](https://github.com/nkallen)) + +- Codegen [\#77](https://github.com/nodegit/nodegit/pull/77) ([nkallen](https://github.com/nkallen)) + +- Updated LICENSE to MIT [\#75](https://github.com/nodegit/nodegit/pull/75) ([tbranyen](https://github.com/tbranyen)) + +## v0.0.79 (2013-04-05) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.778...v0.0.79) + +**Closed issues:** + +- Un-chain async example on github pages [\#65](https://github.com/nodegit/nodegit/issues/65) + +- Clarify commit.history documentation [\#63](https://github.com/nodegit/nodegit/issues/63) + +- Make commit.time pass Date object [\#62](https://github.com/nodegit/nodegit/issues/62) + +- Python error on installing nodegit 0.0.77 [\#59](https://github.com/nodegit/nodegit/issues/59) + +## v0.0.778 (2013-03-26) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.77...v0.0.778) + +**Merged pull requests:** + +- See issue \#59 [\#60](https://github.com/nodegit/nodegit/pull/60) ([dctr](https://github.com/dctr)) + +## v0.0.77 (2013-03-24) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.76...v0.0.77) + +## v0.0.76 (2013-03-24) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.75...v0.0.76) + +## v0.0.75 (2013-03-24) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.74...v0.0.75) + +**Closed issues:** + +- incomplete error reporting [\#57](https://github.com/nodegit/nodegit/issues/57) + +- Segmentation Fault in raw-commit.js [\#56](https://github.com/nodegit/nodegit/issues/56) + +- Another Mac OSX install fail [\#53](https://github.com/nodegit/nodegit/issues/53) + +- unit tests broken in travis-ci [\#52](https://github.com/nodegit/nodegit/issues/52) + +- "Image not found" with require\("nodegit"\) on Mac OS X [\#51](https://github.com/nodegit/nodegit/issues/51) + +- Cannot Compile on 0.8.\* [\#47](https://github.com/nodegit/nodegit/issues/47) + +- No suitable image found. [\#46](https://github.com/nodegit/nodegit/issues/46) + +- Fails to require module on latest node version [\#43](https://github.com/nodegit/nodegit/issues/43) + +- Compilation error node 0.6.1 [\#32](https://github.com/nodegit/nodegit/issues/32) + +- commit.history work like slice [\#17](https://github.com/nodegit/nodegit/issues/17) + +- Sync and Async methods [\#16](https://github.com/nodegit/nodegit/issues/16) + +- Comment all code methods [\#1](https://github.com/nodegit/nodegit/issues/1) + +## v0.0.74 (2013-03-21) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.73...v0.0.74) + +## v0.0.73 (2013-03-21) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.72...v0.0.73) + +**Closed issues:** + +- pass through python flag to node-gyp [\#54](https://github.com/nodegit/nodegit/issues/54) + +- update package.json [\#28](https://github.com/nodegit/nodegit/issues/28) + +- Rewrite Notes [\#27](https://github.com/nodegit/nodegit/issues/27) + +- Tree each method is synchronous [\#15](https://github.com/nodegit/nodegit/issues/15) + +## v0.0.72 (2013-03-06) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.71...v0.0.72) + +## v0.0.71 (2013-03-06) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.6...v0.0.71) + +**Closed issues:** + +- Unable to load shared library [\#39](https://github.com/nodegit/nodegit/issues/39) + +- Expand Convenience Unit Tests [\#38](https://github.com/nodegit/nodegit/issues/38) + +- repo has no method 'branch' [\#35](https://github.com/nodegit/nodegit/issues/35) + +- update for node 0.5.9 [\#29](https://github.com/nodegit/nodegit/issues/29) + +- Issue with errors [\#23](https://github.com/nodegit/nodegit/issues/23) + +**Merged pull requests:** + +- Converted from eio\_custom to uv\_queue\_work [\#48](https://github.com/nodegit/nodegit/pull/48) ([faceleg](https://github.com/faceleg)) + +- Fix Load-Order Bug [\#44](https://github.com/nodegit/nodegit/pull/44) ([fatlotus](https://github.com/fatlotus)) + +- Update documented commands needed to run tests [\#42](https://github.com/nodegit/nodegit/pull/42) ([shama](https://github.com/shama)) + +- Fix typo in README.md [\#41](https://github.com/nodegit/nodegit/pull/41) ([Skomski](https://github.com/Skomski)) + +- Issue 35: repo has no method 'branch' [\#40](https://github.com/nodegit/nodegit/pull/40) ([cholin](https://github.com/cholin)) + +- Refactor [\#37](https://github.com/nodegit/nodegit/pull/37) ([mmalecki](https://github.com/mmalecki)) + +- Refactor [\#36](https://github.com/nodegit/nodegit/pull/36) ([mmalecki](https://github.com/mmalecki)) + +- Removed references to node\_events.h [\#31](https://github.com/nodegit/nodegit/pull/31) ([alexkwolfe](https://github.com/alexkwolfe)) + +- Updates for node 0.5.9 \(fixed Issue \#29\) [\#30](https://github.com/nodegit/nodegit/pull/30) ([tojocky](https://github.com/tojocky)) + +- Error constants added [\#25](https://github.com/nodegit/nodegit/pull/25) ([milani](https://github.com/milani)) + +## v0.0.6 (2011-12-19) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.4...v0.0.6) + +**Closed issues:** + +- commit event with undefined commit [\#26](https://github.com/nodegit/nodegit/issues/26) + +- Convenience methods are not convenience! [\#24](https://github.com/nodegit/nodegit/issues/24) + +**Merged pull requests:** + +- Node 0.6x fixes [\#34](https://github.com/nodegit/nodegit/pull/34) ([moneal](https://github.com/moneal)) + +- Updates for node 0.6x [\#33](https://github.com/nodegit/nodegit/pull/33) ([moneal](https://github.com/moneal)) + +## v0.0.4 (2011-05-14) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.3...v0.0.4) + +**Closed issues:** + +- repo.branch fails on empty repo [\#22](https://github.com/nodegit/nodegit/issues/22) + +- example/convenience-repo.js errors [\#21](https://github.com/nodegit/nodegit/issues/21) + +- Use new Error when throwing exceptions [\#20](https://github.com/nodegit/nodegit/issues/20) + +- Scope.close when handlescope is used [\#19](https://github.com/nodegit/nodegit/issues/19) + +- Branch history each method is asynchronous [\#11](https://github.com/nodegit/nodegit/issues/11) + +## v0.0.3 (2011-04-13) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.2...v0.0.3) + +**Closed issues:** + +- error handling [\#18](https://github.com/nodegit/nodegit/issues/18) + +- nodegit namespace [\#14](https://github.com/nodegit/nodegit/issues/14) + +- Rename all classes to have Git prefix [\#13](https://github.com/nodegit/nodegit/issues/13) + +- Windows link issue [\#12](https://github.com/nodegit/nodegit/issues/12) + +## v0.0.2 (2011-03-14) + +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.0.1...v0.0.2) + +## v0.0.1 (2011-03-10) + + + +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* From 0eab7b25e8bbb7f267fe87779c734bd5dd44696e Mon Sep 17 00:00:00 2001 From: Tim Branyen Date: Fri, 13 Mar 2015 15:36:19 -0400 Subject: [PATCH 24/24] Dressed up the homepage --- css/main.scss | 11 ++++- img/Axosoft-Logo-Revision_crop.png | Bin 16031 -> 5597 bytes img/GitHub_Logo.png | Bin 13001 -> 3072 bytes img/atom.png | Bin 0 -> 6258 bytes img/bocoup-horizontal-100.png | Bin 35647 -> 7899 bytes img/iojs.png | Bin 0 -> 11728 bytes img/node.png | Bin 0 -> 6469 bytes img/nw.png | Bin 0 -> 22593 bytes img/osx.png | Bin 0 -> 4151 bytes img/tux.png | Bin 0 -> 3898 bytes img/windows.png | Bin 0 -> 1322 bytes index.md | 72 +++++++++++++++++++++++++---- 12 files changed, 74 insertions(+), 9 deletions(-) create mode 100644 img/atom.png create mode 100644 img/iojs.png create mode 100644 img/node.png create mode 100644 img/nw.png create mode 100644 img/osx.png create mode 100644 img/tux.png create mode 100644 img/windows.png diff --git a/css/main.scss b/css/main.scss index a552a56..2fe2e2f 100755 --- a/css/main.scss +++ b/css/main.scss @@ -29,14 +29,23 @@ blockquote { hr { border: none; border-bottom: 1px solid #EDEDED; + margin-bottom: 20px; } // Better separation from HR in Guides. .main h3 { - margin-top: 15px; + margin-top: 25px; } .date { color: #C2C2C2; font-size: 80%; } + +p a:not(:last-child) { + margin-right: 20px; +} + +.bocoup { + margin-left: 10px; +} diff --git a/img/Axosoft-Logo-Revision_crop.png b/img/Axosoft-Logo-Revision_crop.png index 543236ba31474f83477970cceb8a7b03f34d47bd..9a022fffc46d80af942331f490ea684046035cb7 100644 GIT binary patch literal 5597 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 O0000J(fiT{_ zrFjnmIkp6W(4?K92XEetxHEt+c7&E0!U*ny2(#uLisrxp$v>2QJ#)+PFGcwc@-bZg9*Hy5%#Vd%{9OgB`8m1B-_z9o&syL~>8cw7;VUmH8WOI*T11@Oo#eIEpxWZ%P$@B}gqV!1xVXBc zl)9$6xCB&97AhyFCid?f|J_&(by=vay0(_2tR$F2OHxfnQ(Rq2OhQ6kLQ_m!Tl(Lz zw|)E(_CAiz|E}u}*8R^|&Hr(%yoR5%Jp%4$42OIDYXNuN;0U zQbI=a>VL*M{lAf#C?H0ZY99ZGx%~SI*dX=ie;Ge`_%HWy_5nWQ2b|+<`2HIRL}cf- zrke4?@n2IXUvu40g|0_m`CBzSIp6u|`!$8G{71amyydlGm>aW?=48*}zT%b^R~H{) zzQ@Xczj33y>vO@es55k*n!C=HKjHd?aQpO9^~B!voba2>=XnkO@WA1>GiyQ91svQ< zC8)kSa#8^h9S(`{GePA5>JB zr3dLY`Tzne5zwg3v)6edR5m?6QrCi=-6QSy;ab6Ef`ACcf zUsc&`;SA4~8D8U9@{abDsR&QpxwR*M1DgpC7s)mii7n-d;lfrYjF%Uc#6p8i*zs#o z^}@ttzaT@p9oC)`bO;E94nc#?rQOpm8xtgM!4!0g9b68CYiBMZ(fHx{-|;6_MBN#w z_DEYFJ{_;BEY1SIsS)%}`s-u0Ucto{n^{$+19RR)NvDr-LjXIDx>`!sA# zC`FH*Qhf`G-FL+A!4|d6j$)FjMoi^|6#3h<-5~+jirG%!fVU|KWROF(@TsttXYUWA z{?iL8o2?^eSWp!97qR~nVHum8hY^V-JD>V>e#F)No~dct8Q_(#tQN8|!8Vx%q`*VfgwD)WvAJP2Gn{EKX%clQP6dyBiKa z8j}a-8FVzKIOb~O13pB(BPmOANl%x5Ttjz{$iCr+um9%bgBNYomvU9TyP~ODz{O)= z5~Vw1Vq;mk+H261$GOW@z$k`EF4-d|c&?AdN$+G!B$tUk*)~%@?ZN(ah*gj$j_iUj zME)gM+UJ&;Z}hb0nT3i+1O`beMzq1d;0j_!2z5+aQohYEdpHTGkHa89cxOW$um*ep-JvE5LM<{`X+7~w>QA z-ud-`wMAl3ke$$Kl>ED;gE;%a^IOZa@Ix^Vb|X4~<1${HRdvKDUsAC#K0~pvArcO! z51Vxal|@qovM#TuOIMa(o0i*FxNIu_c!izfc9SB)*$&}N~45b zzgNnAFCT;G_M>9h(O}PVyhPj|5gR}(6j;KdEMQQMwQo31!D@p}Eq$ChPs_Q|!m2y` zR0D~;&}%Bxx+hStR@+$90ylWFu*m6H24~!V-F$a9n(${GyVky4vjZ6q^i;NS)pDPT z?VL?>siG1Obvz594VO{%H;sTlCFt>lutS+?TyW|tF*Nt)aVm+JPkrahWHtHO>;mx8 zmn^b&T>FP2rUtmET7B|_gs@%*_8|P_+Mr7s(EBqlezv?9UoU8HFMo;zp(_|CI zvt{CKr@WwT4a?d3LRfghxs5=U+C|eq?(!Sdt!AG%!Pzm(mSIQZv%IpFZj-b1O}66D z=brJ>*}Y@irwO4K2^SCKtqj)h;jysA4y&e5dMsecQcqb!SN;Pbk4HZ5Aw~jHwnNQ! zQ(wsqYQwas&7cW0D=Ylkue`qYdibR)6c$lSNOzn>l>RH?GUc_E=A_S{cp0T{|ju4A2121~hDx?UsW9LzvZf#xH?b z*kg1gmPt+d91sX{R&Hs<-we+&-hZB8G3(l$<;t`hWW(Gom*Ml!WL`8&Bt})S=F#%j zB5qhB4H_6kphgquouJJFlDxQ+sOFS4JVIr(?5%t0Fg57D$@B_IP;{JRjuFNNM2*XNbYhTFp|XR7 zJ*Y_~Bcb;Rj?)S}m;YXWKVf@A+{)5*}5;mNcM;_h^ zby}nP_q3wEGAc9x@5=XP+MA>C>iYuEuSV#bpUC57lTySI`Avb0P@d(3DGX9ZlgpZG zVqK>K1Ssm#ZMl50`!c>mLoa?OXq`y&VmTwQp6~g4t@NA6ks>h*JMz}PyTxk+xSVO} z;3InlMUOiX)llm|N*qr338^uu;Mb8OqbcQ=*$yd=7sNbN#3lln5Z8W%as21zGMCz>5uesMg29#&22t>M|{<=V>TO?ddYU!(a~CI=Q5QAcT|0SL-Yt=rQgoV2_+tZ zQl0#|E0i>|#s;^ki0tTlVk%v?sBs8tB#)_eTA0`!KH-ujjem88vQzdj?6?N1-r%sQ zEYv?1=z(JMF|_C-w6@RrIomive--*G*On*7 z8)LxvL`6l~W7O;^JhcGpASX;^weV;7otoumxIlU9*J_cQ1(<1OmF8>2>GQjZ?lz&4 z9*MgRDeN?BtPqH@ue6n+>CR(`=RdD=Jqt0U%hHLJ&^SX3yOkqHe1G=%mN~3btC%Nj zc?p+VPX)CG<)-+@XKI#fPbjl;+C;Js+D4Is4r=Z3mRJMfh^^UL8Db*Lvu*9L0LOsj zfP`NMh=pFb6T29w74(K<?T&u}P4nJ6VlFFkTI&=4RyQn(xgd zS(crv%?os7>)Vzj9(`<5VWG$a%tKn_*!=iSxMC$pgeVz#2|^98=}^~drOuu09VIU_ zDlFQp|3WxHu7Gv2fl?7L0~25dLvvV@FK&sU_=y>4&u3a{xItE+wI^P#zD5^a0dWJz z9ryrlqN-9{)3SC_1Lz1_2tsdrWt47r5~dz|{bF$huA6b!a8X<7{^1)DQ~j*PU@RGP zcu)Bz15J~-P0B#^LBB68?Zvq4AOY`=u8kZr{M%uCX8#HSnMndYsb z@JlgHPWeTM?q`!NL~1qLsK-LQQghiSgFH9uBuG}tE& zT@@dsMGbqu_!4kXkmGa$uDXx+?ad9=vO2fi>^wYe<&ZImv@aE1R+aP`3y2~+Zu&dg z%6_7y$P(Anib*!G{SMFI(TCoBB?H0pK4r2kxY4}l`&!;cmGRjUyJa@TA=YSFkEAnD zarD4?4zAU~vM*|$b*}1R%?lo-%!uaitd7JUZFa9NJy;7AbLL~9XZ&GvZ|e+lwg zx88hQA%>_@=OUH6zt||F%*1u^3PpG2T>tUSc9IjGG4ev>#m}Z9Gr6{Be+m*#L7Y~2 zh0So%nEY1-jYpaa)Z}?rB#w1JFY*FCSMN~8oiJu;7!(3Iyq;mbKDS#`X)mP0%dKY=kL1p6H9#CYD#F;wO%`;5}7nHH^R5~ zO5+g7`@0M}8CQ zo{4#`ti~DH>ksrZ;E7n)+JA<##wLqzu@Lug>DYLX=mZ-pfbjVKKKAemkquDHYI?Sy zR^?uVZ)S;M-3<>0BcJ~5SoyzDJM||BB90J9c9$||mZf1-U$LQk`**o^N>aV#SfsnO zS*OMmlKt%j$N@$M0=XMuwRIa1!#dh_raGsFez`W|t&Gj@=Vto`ZS{kFfT z;5}mNGW=c86fNX=6(X!uqw*sIrG4N&X)DX+1W-=&t})p0*uYdz3s-ge_s?7blb`2g zDK3z?k`0x}R`I0vIwg1KG_Wnev)yJBwxF;$J!bgV^w4nABbgIR8dV`ZqhZN^dbm8pQ7Y{R^k>6JvC3fL z_nEQvO2kauQw(<;QPk6AZzlH`cFMV!qbdmR0$Y|YG6mLEcax7=krXPagVktSb0f|1 zNg$u!VcJRA0tw9dm?rFY!g%55BfB3yWj%VDeKt}_bes9UiLz{&i&fbyFqN&fF*OK8=?r$I4SL|{V!u3)lhirp4oTV&$ zITdpKwrhK+jB-jYXCI~V^YRB`b%_RRf80&6F=!hiZNE=`qhYRRDT;$(^UFZGX!;e1 z({(O!L!EaCaXWRc0=soT+jbA0`&`~xW8Vr<$D6=s=yo?424?R;6i7zlxUHin1U zh6x$;*%^&Urhz$tL?Mvh0U%U~eGvm4H@tdATPDuYLR3dY5>Q186Yt~gFZMGyMp7%= z#`i%AsaGaju#jGM&(O3+NAvVj%%(B0*^oO3X!J2ic%$|6k1}^8VrfyUG)m@QKp+A0 z#HU%3yv@FW>0>1LKyXL{F7H&-n7+RvJ#&VEWwGorOQZT(oqkivSV-LZ3QmEueuYqm zIr2CKVGO*F&zH728f8WreFcpqsG5|&@X6b{5r?}dI=f+)2lc^3)%qp9p+ zeMkEDjec74Ri&37WxUKHkZ)Yx(Lg>pG_-UqHy8b2?q{9f0Fk5tptdK`rE~1mtX4|C zMfQRMtbIR3U+7TTBiS6B8@3*~SCoKV6*6H2OI-cTNpu8G zP=I?dY;b58?Q&3y#_yg#Bpun*dj180Z0(rEjW%_!pInN__=#j%N*}Sm#+SR(K0Ep1 zumJ>P6|o)~$mj521?RS#tE3$_z*O8Hrj%fFNFLW+y3LQDe;BMff$sT0J>YpMYbD73A2mp_&x~^F{=vh&esyOl z#gQPX0pPh}Lh@UD6XP`qNCs?Np-$yoo;wI6+)EZz{_+c7e~UB()^8cDxcW2mmn(S5 ztJgjJaBAvr8&#e+piY-sRx6p{FK{^-j}m=6s%)+9?LU0hIvfKh(1M=x~A9zLC51?+Va zzjysXABQpxx*u$@nepv$?B0Vvv;p)lm&oZ@R&E8#(2$nHdViac902qQB9+^%LDig- ztG`o|5(BV(xEBJDoFx%LOTKG;UK)yBk*ft(qTdQozWGwgM!f>C5hi`$IGbjZZw9W% z#gJdV0Den@ekDh3>Hhh(da)nWPxKiDsfh#DEe)94)45M)Iw=a&90Y7E)*uau!DRM% zr4MpVF-cVdyY&>Lt||sreNIIZtT8c?la+Hd2)#s-K#1)#f zw~f9*WKfrfh&@Ukp=C?kZOqIJvsu(Bnu1?Ez8P?Q!PqI+#DqQ{JMv5_?3x@h2=lNU}FApq}O67%v9@^ z?dWrjxw^lZ`)_-?(MSnox18I04mg~^00ESnO-?@VnUW%QoFJ@0fA_lyy3_Q3LEi}( zG1KL=^PSx)cM*~)+PFT+l}fzEcN2i278y6olsNgD0d#~{JHuy`qz1<=Ac(Pi3rNIv zd|K(zO5|Ntcnt!&(;Vqd`WqIgdF$v7p3Vru;miq*r<3;*6b@G_-2YZw143O>F|fwL zjLERc5Bi2WLoJ+0(-5;GH~dSNV^ZoUy21EyNRqT#h-q{H_;w& zTmm>2b-v|Yo`h{?*}B{K_E4Gl95>%{_H}8UwC$0`+*Z>Y`^UOzFFwjN=7XX*HXA#O zmd)s?w(WuPalL=-A+-oUDQxC76Hk7KuZ`TfVx3-ZXkOvC_#jB=hz(?Ak-(c_3PZdj z*W!BUVd*;Frj-UcmP2^wi+4)*$OXQKd$>LhT>x1BLg&l3%+k2K55>XKf^RlZZbazU z$(Mh$;uFXY)Vx#DIotj+9uuYxJ#?{Re-tQuBzJsU!7-H>?-yk2VT)%TXmx#Bm#AxR zpDH0$WLC+2Y}lx>`ET38Gd~EuLy2FJbeq+35;noE?aSNpttV+w48PLj&vhs-bVbwW zDxGpQTyR-q8x?fuZMqwQr1;@w*f$S2h745KD&d;w_h(|hs=SBWj2uk=8XVYihxtd3 zNK;7M-fJA|qLe}(W9PkKXGuA)<+3W?t4 zP-6XVzi+tx6WtX@zl~-bvm=jW=*3U{g_!A=KB1QMq)HJ-{Zj2)uDSiWtcsD*!_EeV#zM$kEx(kE}Y zwJDOcHDvCLqfXXm|oL*NQkSD)MtjUXJVrK1>$T)>E08}6}82MH+ zaayY{`Eb~Z4>A1@tX6wn!%X|i|houvhulrJ2#rYRstsxCljs%2A*8jN(fgbHlIUcWgw*2nB%HXt@4hm z9;a9U00A4Fm`O2^RKV?KacV;TN^z$Vk}=dvRSCRB|L(f=cJMophTT6&2xKi@9-y%a zc){|)!O{dIciG%o!B?4;-Z9dmlGMrOWxMePka^`RN`<>384&sRVYhi6!ADPKtB1Zj zPK&yPRwi0`Lv&k)Xg?et|2#PdYZ<1eY4QU>eW7jk`zOigf3v_%z~zvitB-%5WInN! zbcSHq?vRDkK^)^)i^c)Am%;_H+<1DsS3S|>GAd0>1g6eeVb~Dp(Ik2+P)g}GfB4y7 zwl>l2H|1$!%Wc~Zm&8Guy1d>IG{@2JYx~c6l0v-I1TG&>@cb!;RZIeFYv7;WjnUzQQL6x5hQkkI$QOkBi;t z^rR6xl^H|E08)@=2@MxZZa>XmJys&9_~-#H$ON zz^o22y5;t1^$gQz_hg92B?|m1^Hl{moUgU+0ijKB{vzN6^mM6hO-d zIoPP%F){T+W#v)DLO`zw&tR})ndgsz8~vJD&(ca5Rnt{0b1VFn&1Ll%mKui~vivgv zQFTo(dZSUc2fG9uE0T_bG;V0y&y~ll%CId;_|?daq+QD1bV^I`j0n#prMuTxkkT>S z1B?qlZg@6_+Eg0o9CxchB=<&)LlCOoqF=ub6RI23h#cgZi8yuBub=0Q8 zu*kN*VUoyWZlptJKcV=Mli6_w&(JXq)u)%@LX7kantd)Jt9_&l>RCTBVPs;1eDedO zX17AUg{DgZ54lW((|Vt$nqVp;k?{=@#8yy!f$nMS&%xHBc#M?t`Qm)l@GRo1I@)p( z81vGdic?Tan(-F+?UcdG7m&|!Uj)f_v|MxI+oe~*jwVeV!a=xiLZtw zRynp!TJ~-wI+SVPy)6b!YLb6Ue&nOcpn;e4X`;nLtynNO zloes&iB7|Es&eiK6C$=UpYRbfUT%LQ2TU9ncyYulNaQyJ4i)TJ|NSU&bbXd)BE$NGv7YLnHCep94S8qDKRl=rFEUsi%EJ43< zg3<_2O|-m{?uWwWZ?Kl=arq9P8XT$W@sq}mK0yl|h|d6HcHDmQW?NKC4B79;d9Rq| zPq@+i{o}&le^;t_4n)6AukM{uclWws|RDyX0jd<&6aF~j;CV=IajW0 zEw3i^5q0Mk0lS7~k{tkOsoZy)B8C!2D^gpUhX^l#(0N#zA0Hd9fv0kACGBqXJW20A z+gS&$`!MZ9)%#pIn!wT!ZSsPl!Fy^Mo_el)h#7VVJ212 zxh)=Ev-YWS$M+!}UksZ2^6PkCLQn7$qt!N{89BZUBgn~>n~#|s6f>jARtL2{1LWC> zxD?x))`#Wpn*=5x&!J}M1Uq5jFRkU0wFYg94zv25C%MpHn_6E4#LqHlW>_|>nST4p zv9rHG-&8#$>&?EEiU}IcuOUer?_kXsh=_8L` zd5J?nmy%*ewp>~SLoCO9{JZaF`e>H>Y${~@-k!q|q{kymS+^R`igWE9dAHh(R$!Z1 zRSX1F#AJSS*SHg6I%N)909qqj3qR|@`qd4e>iywO4b*yJl z?HbRrPUq`7e{0?K77huQJJ{+PkUyrH{kmV7`7~|y0>z`k&g`RDlQ^a2;<>_yM6%d| z7Wv%ERr`LU#QO#_lVM`0FqcGrhu8_fvRz+1KW3yCA(;^W;Ls&~KRNz&NSO=zmMwei02|53P;|*-fFDoUgT>-0nX=|KbzYJkAQfkz0ri9P85xEr8 z4Q{INV1E=kgA?`3?53g5%Jy$0e7jwSep>yYVNf2z)k;o&31UR+VeM(M7p6Ag{IZs9Yo=;~R;+_vuNkW%fEkk9%Eo zi3>5fUT{@ToPOv|PfMJ&yn;u~Zw;+eV%<*bX?g`hhgXUG8MU|dH-)Ay3!-6lUX0`y ztBN5OK~M)$Q(^F&+2wnct9AE~?pYw!hy}TV)G|PAt{K4QbRJF)&g-&jQSvp` z&g&&-JsWHc3x1-)%6MNsad8IIYv4K`H=f@3htr5@c42UDuS-{90sN<#L)+2jPsfVuH~9XURn|PnAWm!|K=Em6hd<>X`&|g!%Lr#H0}*@ zHKy71d*042LQ{c@qVM`~3XWiJn+yZjoQ_F9+3xYIK1tBSfooB$O-6<9)qmqa^+R;p zz`Y5xRkVfhe<$2EZ^7>EK;D)|JBI4j9c#Ewj2!#B$!+t?_pS5*U&7fQg`}k3m*29l zmNp8Bu;+tJr2_ zH@evG)C8gR2#?u%^L5jE&s%HRMbAiS?nPu%sA*KY%lvY{98Kwu`wHtc3R6NGtL1}O z9=OP|a;d^+kCvAr72k5*tglvS)g|0cDA%=J5*2?`_;OpWCMBu&v7RmMw8?1qXr=_;UL~44=CaKJ8(j;725uL zaem?L#qG|sW@oSS=IY$ZgSWUQs}v0N?bG9JyXLXZH^RowKVZXq1`;H21*5)(dnl`F ztL6~vVANFef#!2WYa!z47AwdBUl6KNn(GXqSwT`t{wAh51N*Nwo0}~L$QQygelH?C z4o;Eq-D?zg6-l2DeHGwNMfa#j-wna078RRS&wF_dy)&yDca6OcMep}glDhgniJGFq ztm}(5=KUta<&J*y{mK+v3`ITa-26>iWuBijWJn)W%V#ByaRwQKTb!Ug14=mH034K- zRsTFwFN*&2{7=)L=YN|1Z&y%F`~R=Zc$toD!)YKlzdF1(8xBPSHA8M|8EBTM+dcYU Dq_KSN diff --git a/img/atom.png b/img/atom.png new file mode 100644 index 0000000000000000000000000000000000000000..ed8586c098068490027cdf852f78567fd11cf842 GIT binary patch literal 6258 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 literal 0 HcmV?d00001 diff --git a/img/bocoup-horizontal-100.png b/img/bocoup-horizontal-100.png index 741603060f3efa327e7cdb42b464c0262aeb3331..9964401208128a98d352c2d0c11b8dfd685f2bec 100644 GIT binary patch literal 7899 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 literal 35647 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

        4<=a-X)@|D3HSkh~D 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 literal 0 HcmV?d00001 diff --git a/img/node.png b/img/node.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe069efd94ac2b9086339018bfdea3ffbba60b5 GIT binary patch literal 6469 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 literal 0 HcmV?d00001 diff --git a/img/nw.png b/img/nw.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0eabea4d4617483175d2572a09a82247998b90 GIT binary patch literal 22593 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 literal 0 HcmV?d00001 diff --git a/img/osx.png b/img/osx.png new file mode 100644 index 0000000000000000000000000000000000000000..50ba5b64e963f05a1fa26138baa939d48d6509b7 GIT binary patch literal 4151 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 IM6N<$f_m$EJ^%m! literal 0 HcmV?d00001 diff --git a/img/windows.png b/img/windows.png new file mode 100644 index 0000000000000000000000000000000000000000..9f999df4b9012afb70d3c3d5da17e3376c5ecc21 GIT binary patch literal 1322 zcmV+_1=aeAP)Ty{y}L8JXW7b0=3(~E z?ElPvzRo!_djrywNx(h86kq~S07e1<&<%6|2Z3*a7T_QL2XZ;E4A>479nwBv#b71p zX&DX01k>8VLeAubi7`_j(3E$QR;Nr-f7%O-&MQd=lt?N9wRt4y3PpmBW!=~+$9fMa z>ey=JuLPFlVI+O1IFe=?*mukGonm{XDI8BVS^foZnu}w9=Qo|7L>Hl$v!wcsqPV0}2{KNsuJ|*c4um#u!v;l{KPM}x3f~&<% zst4`>?gz$N-gnYR@xzKEX}E#CQW1NlD?y_bl{{*}Kdy-HYyv!_IMw!8I%td%cBc@AA;<6Q~5S5e9D4D3J=yW7Vtc~o(@Z?uGEwB#?J${mWm z8DtceDf;+@;}n%VWWn!J!tV2l0?bw%?q3=CT40nC_9-8d7G=2gPgTU;W_uXK*!nBU zk1|zG0Ox>V;uB2{X{@Zhv1Nv3?skdS{bY=oP9yNTIGW|wgs+V{ zLloD-(?0C3FCpe7;N}E+tO;nhD7wrjSFcFY&pr)$N5Tnd$g>hyE0&qkYZOU(LNl}* zIMmq){9$?ClVJqZTW%sel73efY+GY`C9>EIEQmnfHI}^AC_0f8G4p`U6&Bt~=`-NY z75NNYIg(y3GYXiHXq;ya_z)LPoju;1NZ;>Kh|J zK_UV70l!(wZ@8m?j-iL*!EUpZTLWB{05LVdDqz37_bS&H%}^xC^!i6sDE}!iAE=JlmMUq_i(Gi=tjlLj znwMd~|JDeH5&Z`ee-hqZIwTRr^Af`<5FQEDR~RY3`Y3*k433gTnia9{$Iyt)i)9o?E;of58>lLv( zd`Nmc!>xaoB6hP&rJ!WE43zdAlmGw# literal 0 HcmV?d00001 diff --git a/index.md b/index.md index d82b3dd..979d564 100644 --- a/index.md +++ b/index.md @@ -2,11 +2,17 @@ layout: default menu_item: getting_started sections: + "Install": "#install" + "Compatibility": "#compatibility" "Using NodeGit": "#using-nodegit" - "Using NodeGit": "#clone-a-repository" + "Brought to you by...": "#brought-to-you-by" --- +## Install + +* * * + NodeGit can be quickly and painlessly installed via NPM: ``` bash @@ -17,17 +23,59 @@ For more comprehensive installation techniques, check out the [Install Guides]( /guides/install ) +## Compatibility + +* * * + +### Operating systems + +* * * + + + + + + + + + + + +### Native shells + +* * * + + + + + + + + +### Node support + * * * + + + + + + + ## Using NodeGit +* * * + You simply need to require NodeGit in your project to start using it. ``` javascript var Git = require("nodegit"); ``` -## Clone a Repository +### Clone a Repository + +* * * Let's learn how to clone a repository. Create a file named `clone.js`, and add the following code: @@ -38,7 +86,9 @@ Git.Clone("https://github.com/nodegit/nodegit", "tmp").then(function(repository) }); ``` -## Open a Repository +### Open a Repository + +* * * Let's learn how to open a repository. Create a file named `open.js`, and add the following code: @@ -49,14 +99,20 @@ Git.Repository.open("tmp").then(function(repository) { }); ``` -* * * - ## Brought to you by... +* * * + A lot of talented developers over the world. We are proud to be sponsored by the following companies to continue work on making NodeGit one of the best native node modules around! - - - + + + + + + + + +