From e7b004e4af90178163116c78de6858ff0a4372cc Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Sat, 23 Oct 2010 10:13:25 -0700 Subject: [PATCH 01/55] initial import --- .gitignore | 1 + index.html | 172 +++++++++++++++++ logo.png | Bin 0 -> 79073 bytes stylesheets/application.css | 366 ++++++++++++++++++++++++++++++++++++ stylesheets/sunburst.css | 186 ++++++++++++++++++ 5 files changed, 725 insertions(+) create mode 100644 .gitignore create mode 100644 index.html create mode 100644 logo.png create mode 100644 stylesheets/application.css create mode 100644 stylesheets/sunburst.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..ca35be08d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +_site diff --git a/index.html b/index.html new file mode 100644 index 0000000000..cf42141606 --- /dev/null +++ b/index.html @@ -0,0 +1,172 @@ + + + + libgit2: a linkable library for Git + + + + +
+
+ +
+ libgit2 is a portable, pure C implementation of the Git core methods provided as a + re-entrant linkable library with a solid API, allowing you to write native + speed custom Git applications in any language with bindings. +
+

I am interested in

+ + +

Why We Need It

+
+
+
+

In the current Git project, though a libgit.a file is produced it is + not re-entrant (it will call die() on basically any error) + and it has no stable or well-designed public API. As there is no good + way to link to this effectively, a new library was needed that fulfilled + these requirements. Thus libgit2.

+ +

Though it would be nice to use the same library that Git itself uses, + Git actually has a pretty simple storage format and just having native + access to that is pretty useful. Eventually we would like to have most + of the functionality of the core Git tools or even get the library + integrated into Git itself, but in the meantime having a cleanly designed + and maintained linkable Git library with a public API will likely be helpful + to lots of people.

+
+
+
+ +

What It Can Do

+
+
+
+ libgit2 is already very usable. +
    +
  • raw <-> hex SHA conversions
  • +
  • raw object reading (loose and packed)
  • +
  • raw object writing (loose)
  • +
  • revlist walker
  • +
  • commit, tag and tree object parsing
  • +
  • tree traversal
  • +
  • basic index file (staging area) operations
  • +
+ + + +
+
+
+ +

How To Install It

+
+
+
+ Currently it has to be compiled by hand, but it shouldn't be too difficult. +
+ +
$ git clone git://github.com/libgit2/libgit2.git
+$ cd libgit2
+$ make
+$ make install
+ +
+
+ Once that is done, you should be able to link the library to your program + with a normal -lgit2. +
+ + +
+
+ +

Language Bindings

+
+ +
+
+ There are already a number of language bindings in the works, so you can + use Git at native speed from your favorite programming language. +
+
+ +
+
+

Ruby

+

+ Ribbit is the reference library used to make sure the + libgit2 API is sane. This should be mostly up to date. +

+ Get Ribbit +
+
+ +
+
+

Python

+

Coming Soon...

+
+
+ +
+
+

Objective-C

+

Coming Soon...

+
+
+ +
+
+

Erlang

+

+ Geef is an example of an Erlang NIF binding to libgit2. A bit out of + date, but can be made to mostly work. +

+ Get Geef +
+
+ +
+ +
+
+
+

Thanks to the Bundler team for letting me steal all their website codez.

+
+ + Fork me on GitHub + + + diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..72a8b8fc1c4ec5ffa92200eaf49b4df0c8790529 GIT binary patch literal 79073 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�|IWBAf&E8 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 QeFGPHX%(po36tRe1C)T^X#fBK literal 0 HcmV?d00001 diff --git a/stylesheets/application.css b/stylesheets/application.css new file mode 100644 index 0000000000..e2a9c5a648 --- /dev/null +++ b/stylesheets/application.css @@ -0,0 +1,366 @@ +/* line 28 */ +#standalone { + line-height: 150%; +} +/* line 31 */ +#standalone code { + background-color: rgba(0, 0, 0, 0.1); +} +/* line 34 */ +#standalone h1 { + margin-top: 40px; + margin-bottom: 10px; + line-height: 125%; +} + +/* line 39 */ +html { + width: 100%; + background-color: #FFFDEA; + padding-top: 10px; + font-family: Helvetica, sans-serif; +} + +/* line 46 */ +img { + border: 0; +} + +/* line 49 */ +code { + font-family: monospace; + font-size: 120%; + padding: 0 3px; + border: 1px solid rgba(0, 0, 0, 0.1); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + -khtml-border-radius: 3px; + border-radius: 3px; +} + +/* line 56 */ +.intro { + width: 100%; +} + +/* line 59 */ +#body { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; + width: 100%; +} + +/* line 63 */ +#contents { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-box-align: justify; + -moz-box-align: justify; + width: 725px; +} + +/* line 67 */ +#intro { + background: rgba(0, 0, 0, 0.1); + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; + padding: 10px 10px; + color: #043042; + font-size: 18px; + line-height: 24px; +} +/* line 74 */ +#intro strong { + color: #041f2a; +} + +/* line 77 */ +#header { + margin-bottom: 20px; +} +/* line 79 */ +#header h1 { + font-size: 22px; + text-align: right; + padding-right: 43px; + color: #346b8c; +} + +/* line 85 */ +#footer { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -webkit-box-align: center; + -moz-box-align: center; + -webkit-box-pack: justify; + -moz-box-pack: justify; + padding: 8px 16px; + background-color: rgba(0, 0, 0, 0.1); + width: 100%; + margin-top: 25px; +} +/* line 94 */ +#footer img:first-child { + -moz-box-shadow: blue 0 0 5px; + -webkit-box-shadow: blue 0 0 5px; + -o-box-shadow: blue 0 0 5px; + box-shadow: blue 0 0 5px; +} +/* line 97 */ +#footer img:last-child { + margin-top: -20px; + margin-right: -20px; +} +/* line 101 */ +#footer .spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; +} +/* line 104 */ +#footer img { + display: block; +} +/* line 107 */ +#footer #navigation { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-box-align: center; + -moz-box-align: center; +} +/* line 110 */ +#footer #navigation p { + font-family: Helvetica, sans-serif; + color: #336666; + font-size: 16px; + margin: 0; +} +/* line 115 */ +#footer #navigation p a { + text-decoration: none; + color: #0e3f54; +} + +/* line 118 */ +.contents { + width: 725px; +} + +/* line 121 */ +h2 { + font-size: 20px; + padding: 5px; + margin-top: 24px; + color: #0e3f54; + border-bottom: 3px solid #0e3f54; + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +/* line 130 */ +ul.bullet { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + -webkit-box-align: center; + -moz-box-align: center; + -webkit-box-pack: justify; + -moz-box-pack: justify; +} +/* line 134 */ +ul.bullet a { + margin-left: 0; + margin-right: 10px; + -webkit-box-flex: 1; + -moz-box-flex: 1; +} +/* line 138 */ +ul.bullet a:last-child { + margin-right: 0; +} + +/* line 141 */ +.bullet { + width: 100%; + padding: 8px 15px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-box-align: justify; + -moz-box-align: justify; +} +/* line 147 */ +.bullet .description { + width: 100%; + margin-right: 16px; + color: #003333; + line-height: 24px; + margin-bottom: 8px; +} +/* line 154 */ +.bullet a { + padding-top: 8px; + padding-bottom: 5px; + text-decoration: none; + display: block; + color: white; + margin: 10px 0 0 450px; + text-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0; + text-align: center; + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #6ecf36), color-stop(100%, #4e9326)); + background-image: -moz-linear-gradient(top, #6ecf36 0%, #4e9326 100%); + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} +/* line 166 */ +.bullet a:hover { + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #4e9326), color-stop(100%, #35641a)); + background-image: -moz-linear-gradient(top, #4e9326 0%, #35641a 100%); +} +/* line 170 */ +.bullet .how { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: vertical; + -moz-box-orient: vertical; + -webkit-box-align: justify; + -moz-box-align: justify; + -webkit-box-flex: 1; + -moz-box-flex: 1; + line-height: 24px; +} +/* line 174 */ +.bullet .notes { + font-size: 90%; + line-height: 150%; + margin-top: 15px; + margin-bottom: 8px; + padding-right: 4px; + padding-left: 4px; + color: #006666; +} +/* line 182 */ +.bullet .notes + a { + margin-top: 10px; +} +/* line 184 */ +.bullet .notes + pre { + margin-top: 10px; +} +/* line 186 */ +.bullet .notes + .description { + margin-top: 20px; +} +/* line 189 */ +.bullet pre { + -webkit-box-flex: 1; + -moz-box-flex: 1; + margin: 0; +} +/* line 193 */ +.bullet code { + background-color: rgba(0, 0, 0, 0.1); +} + +/* line 196 */ +pre { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} + +/* line 199 */ +.bullet:nth-child(even) { + background-color: rgba(0, 0, 0, 0.1); + border-top: 1px solid rgba(0, 0, 0, 0.1); + border-bottom: 1px solid rgba(0, 0, 0, 0.1); +} + +/* line 204 */ +.bullet:not(:nth-of-type(1)) { + padding-top: 15px; +} + +/* line 207 */ +.bullet { + padding-bottom: 25px; +} + +/* line 212 */ +#credits p { + text-align: center; + font-size: 8pt; + color: #668493; +} +/* line 216 */ +#credits p a { + color: #2c596b; +} + +/* line 220 */ +#github img { + position: absolute; + top: 0; + right: 0; + border: 0; +} + +/* line 226 */ +#versions { + position: absolute; + top: 0; + left: 0; + padding: 0.4em; + background: rgba(0, 0, 0, 0.1); + -moz-border-radius-bottomright: 10px; + -webkit-border-bottom-right-radius: 10px; + -o-border-bottom-right-radius: 10px; + -ms-border-bottom-right-radius: 10px; + -khtml-border-bottom-right-radius: 10px; + border-bottom-right-radius: 10px; +} +/* line 233 */ +#versions a { + text-decoration: none; + color: #0e3f54; + padding: 0.1em 0.25em; +} +/* line 236 */ +#versions a.current { + font-weight: bold; +} diff --git a/stylesheets/sunburst.css b/stylesheets/sunburst.css new file mode 100644 index 0000000000..8f6872c5e7 --- /dev/null +++ b/stylesheets/sunburst.css @@ -0,0 +1,186 @@ +pre.sunburst { + padding: 10px; + font-size: 13px; + font-family: Monaco, monospace; +} + +pre.sunburst .DiffInserted { + background-color: #253B22; + color: #F8F8F8; +} +pre.sunburst .DiffHeader { + background-color: #0E2231; + color: #F8F8F8; + font-style: italic; +} +pre.sunburst .CssPropertyValue { + color: #F9EE98; +} +pre.sunburst .CCCPreprocessorDirective { + color: #AFC4DB; +} +pre.sunburst .Constant { + color: #3387CC; +} +pre.sunburst .DiffChanged { + background-color: #4A410D; + color: #F8F8F8; +} +pre.sunburst .Support { + color: #9B859D; +} +pre.sunburst .MarkupList { + color: #E1D4B9; +} +pre.sunburst .CssConstructorArgument { + color: #8F9D6A; +} +pre.sunburst .Storage { + color: #99CF50; +} +pre.sunburst .line-numbers { + background-color: #DDF0FF; + color: #000000; +} +pre.sunburst .CssClass { + color: #9B703F; +} +pre.sunburst .StringConstant { + color: #DDF2A4; +} +pre.sunburst .MarkupSeparator { + background-color: #242424; + color: #60A633; +} +pre.sunburst .MarkupUnderline { + text-decoration: underline; + color: #E18964; +} +pre.sunburst .CssAtRule { + color: #8693A5; +} +pre.sunburst .MetaTagInline { + color: #E0C589; +} +pre.sunburst .JEntityNameType { + text-decoration: underline; +} +pre.sunburst .LogEntryError { + background-color: #751012; +} +pre.sunburst .MarkupHeading { + background-color: #632D04; + color: #FEDCC5; +} +pre.sunburst .CssTagName { + color: #CDA869; +} +pre.sunburst .SupportConstant { + color: #CF6A4C; +} +pre.sunburst .MarkupQuote { + background-color: #ECD091; + color: #E1D4B9; + font-style: italic; +} +pre.sunburst .DiffDeleted { + background-color: #420E09; + color: #F8F8F8; +} +pre.sunburst .CCCPreprocessorLine { + color: #8996A8; +} +pre.sunburst .StringRegexpSpecial { + color: #CF7D34; +} +pre.sunburst .EmbeddedSourceBright { + background-color: #ABADB4; +} +pre.sunburst .InvalidIllegal { + background-color: #150B15; + color: #FD5FF1; +} +pre.sunburst .MarkupRaw { + background-color: #ABADB4; + color: #578BB3; +} +pre.sunburst .SupportFunction { + color: #DAD085; +} +pre.sunburst .CssAdditionalConstants { + color: #DD7B3B; +} +pre.sunburst .MetaTagAll { + color: #89BDFF; +} +pre.sunburst .StringRegexp { + color: #E9C062; +} +pre.sunburst .StringEmbeddedSource { + color: #DAEFA3; +} +pre.sunburst .EntityInheritedClass { + color: #9B5C2E; + font-style: italic; +} +pre.sunburst .MarkupComment { + color: #F67B37; + font-style: italic; +} +pre.sunburst .MarkupBold { + font-weight: bold; + color: #E9C062; +} +pre.sunburst .CssId { + color: #8B98AB; +} +pre.sunburst .CssPseudoClass { + color: #8F9D6A; +} +pre.sunburst .JCast { + color: #676767; + font-style: italic; +} +pre.sunburst .StringVariable { + color: #8A9A95; +} +pre.sunburst .String { + color: #65B042; +} +pre.sunburst .Keyword { + color: #E28964; +} +pre.sunburst { + background-color: #000000; + color: #F8F8F8; +} +pre.sunburst .LogEntry { + background-color: #C7C7C7; +} +pre.sunburst .MarkupItalic { + color: #E9C062; + font-style: italic; +} +pre.sunburst .CssPropertyName { + color: #C5AF75; +} +pre.sunburst .Namespaces { + color: #E18964; +} +pre.sunburst .DoctypeXmlProcessing { + color: #494949; +} +pre.sunburst .InvalidDeprecated { + color: #FD5FF1; + font-style: italic; +} +pre.sunburst .Variable { + color: #3E87E3; +} +pre.sunburst .Entity { + color: #89BDFF; +} +pre.sunburst .Comment { + color: #AEAEAE; + font-style: italic; +} From 4cb90af623e8c4aa487344dbee2ee8b1bd317e01 Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Sat, 23 Oct 2010 10:33:17 -0700 Subject: [PATCH 02/55] we have write-back now --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index cf42141606..38d2e5da0b 100644 --- a/index.html +++ b/index.html @@ -59,7 +59,7 @@

What It Can Do

  • raw object reading (loose and packed)
  • raw object writing (loose)
  • revlist walker
  • -
  • commit, tag and tree object parsing
  • +
  • commit, tag and tree object parsing and write-back
  • tree traversal
  • basic index file (staging area) operations
  • From 289fc6e5f8bf8161a797a0ad752937472d4889f5 Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Sat, 23 Oct 2010 11:13:18 -0700 Subject: [PATCH 03/55] internal links --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 38d2e5da0b..66ca8b3d80 100644 --- a/index.html +++ b/index.html @@ -21,14 +21,14 @@

    I am interested in

    -

    Why We Need It

    +

    Why We Need It

    @@ -49,7 +49,7 @@

    Why We Need It

    -

    What It Can Do

    +

    What It Can Do

    @@ -90,7 +90,7 @@

    What It Can Do

    -

    How To Install It

    +

    How To Install It

    @@ -112,7 +112,7 @@

    How To Install It

    -

    Language Bindings

    +

    Language Bindings

    From 558b3f77af6e624942434adc073cc562fef32344 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Sat, 13 Nov 2010 19:37:35 +0200 Subject: [PATCH 04/55] Add pygit2 to the list of available bindings. Signed-off-by: Vicent Marti --- index.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 66ca8b3d80..10b95877b1 100644 --- a/index.html +++ b/index.html @@ -124,7 +124,7 @@

    Language Bindings

    -

    Ruby

    +

    Ribbit (Ruby bindings)

    Ribbit is the reference library used to make sure the libgit2 API is sane. This should be mostly up to date. @@ -135,9 +135,11 @@

    Ruby

    -

    Python

    -

    Coming Soon...

    +

    pygit2 (Python bindings)

    +

    pygit2 are the Python 2.6+ bindings for libgit2 mantained by David Borowitz. + They should be (mostly) up to date with the library changes.

    + Get pygit2
    @@ -149,7 +151,7 @@

    Objective-C

    -

    Erlang

    +

    Geef (Erlang bindings)

    Geef is an example of an Erlang NIF binding to libgit2. A bit out of date, but can be made to mostly work. From e74de6263a3c491d96f6355e8a9930f7a4efaee3 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Thu, 18 Nov 2010 18:56:13 +0200 Subject: [PATCH 05/55] Ribbit is now called Rugged. Signed-off-by: Vicent Marti --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 10b95877b1..c66bccdc8d 100644 --- a/index.html +++ b/index.html @@ -124,10 +124,10 @@

    Language Bindings

    -

    Ribbit (Ruby bindings)

    +

    Rugged (Ruby bindings)

    - Ribbit is the reference library used to make sure the - libgit2 API is sane. This should be mostly up to date. + Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the + source C API is sane and functional. They are always in sync with the libgit2 master branch.

    Get Ribbit
    From 8c1285a5bbf4f8e1ab4a2a63c2842b79e484a2d3 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Thu, 18 Nov 2010 18:57:27 +0200 Subject: [PATCH 06/55] Actually, not only the name changed, but also the URL Signed-off-by: Vicent Marti --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index c66bccdc8d..e3e668b53e 100644 --- a/index.html +++ b/index.html @@ -129,7 +129,7 @@

    Rugged (Ruby bindings)

    Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the source C API is sane and functional. They are always in sync with the libgit2 master branch.

    - Get Ribbit + Get Rugged
    From b19da60fff8b9b5d0c3852e5236eb9694985303d Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Sun, 28 Nov 2010 00:21:47 +0200 Subject: [PATCH 07/55] Change the website layout, add more information Signed-off-by: Vicent Marti --- index.html | 341 ++++++++++++++++++------------------ stylesheets/application.css | 19 +- 2 files changed, 186 insertions(+), 174 deletions(-) diff --git a/index.html b/index.html index e3e668b53e..6a8ba59bb9 100644 --- a/index.html +++ b/index.html @@ -1,174 +1,171 @@ - + - - libgit2: a linkable library for Git - - - - -
    -
    - -
    - libgit2 is a portable, pure C implementation of the Git core methods provided as a - re-entrant linkable library with a solid API, allowing you to write native - speed custom Git applications in any language with bindings. -
    -

    I am interested in

    - - -

    Why We Need It

    -
    -
    -
    -

    In the current Git project, though a libgit.a file is produced it is - not re-entrant (it will call die() on basically any error) - and it has no stable or well-designed public API. As there is no good - way to link to this effectively, a new library was needed that fulfilled - these requirements. Thus libgit2.

    - -

    Though it would be nice to use the same library that Git itself uses, - Git actually has a pretty simple storage format and just having native - access to that is pretty useful. Eventually we would like to have most - of the functionality of the core Git tools or even get the library - integrated into Git itself, but in the meantime having a cleanly designed - and maintained linkable Git library with a public API will likely be helpful - to lots of people.

    -
    -
    -
    - -

    What It Can Do

    -
    -
    -
    - libgit2 is already very usable. -
      -
    • raw <-> hex SHA conversions
    • -
    • raw object reading (loose and packed)
    • -
    • raw object writing (loose)
    • -
    • revlist walker
    • -
    • commit, tag and tree object parsing and write-back
    • -
    • tree traversal
    • -
    • basic index file (staging area) operations
    • -
    - - - -
    -
    -
    - -

    How To Install It

    -
    -
    -
    - Currently it has to be compiled by hand, but it shouldn't be too difficult. -
    - -
    $ git clone git://github.com/libgit2/libgit2.git
    -$ cd libgit2
    -$ make
    -$ make install
    - -
    -
    - Once that is done, you should be able to link the library to your program - with a normal -lgit2. -
    - - -
    -
    - -

    Language Bindings

    -
    - -
    -
    - There are already a number of language bindings in the works, so you can - use Git at native speed from your favorite programming language. -
    -
    - -
    -
    -

    Rugged (Ruby bindings)

    -

    - Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the - source C API is sane and functional. They are always in sync with the libgit2 master branch. -

    - Get Rugged -
    -
    - -
    -
    -

    pygit2 (Python bindings)

    -

    pygit2 are the Python 2.6+ bindings for libgit2 mantained by David Borowitz. - They should be (mostly) up to date with the library changes.

    -
    - Get pygit2 -
    - -
    -
    -

    Objective-C

    -

    Coming Soon...

    -
    -
    - -
    -
    -

    Geef (Erlang bindings)

    -

    - Geef is an example of an Erlang NIF binding to libgit2. A bit out of - date, but can be made to mostly work. -

    - Get Geef -
    -
    - -
    - -
    -
    -
    -

    Thanks to the Bundler team for letting me steal all their website codez.

    -
    - - Fork me on GitHub - - + + libgit2: a linkable library for Git + + + + + + +
    + +
    + libgit2 is a portable, pure C implementation of the Git core methods provided as a + re-entrant linkable library with a solid API, allowing you to write native + speed custom Git applications in any language which supports C bindings. +
    + + + +

    Getting started

    +
    +
    +

    In the current Git project, though a libgit.a file is produced it is + not re-entrant (it will call die() on basically any error) + and it has no stable or well-designed public API. As there is no good + way to link to this effectively, a new library was needed that fulfilled + these requirements. Thus libgit2.

    + +

    libgit2 is...

    +
      +
    • faster than any other Git library
    • +
    • written in standards compilant C99
    • +
    • completely multi-platform: Windows, Linux, Mac OS X, xBSD
    • +
    • compiled natively under all platforms (yes, even MSVC on Windows)
    • +
    • re-entrant, with sane error handling
    • +
    • designed with a solid and consistent API
    • +
    • available as bindings for all major scripting languages
    • +
    • compiled with minimal external dependencies (currently only zlib)
    • +
    • licensed under the GPLv2 with a linking exception, so you can use it everywhere
    • +
    +
    + +
    +

    libgit2 is still in early development, and although it's already quite feature complete, there are no official binary releases available yet. Interested early adopters must compile the library by hand -- which is easy enough to do.

    + Get the code at GitHub +
    + +
    + + + +

    What it can do

    +
    +
    + libgit2 is already very usable: +
      +
    • SHA conversions and formatting
    • +
    • object reading (loose and packed)
    • +
    • object writing (loose)
    • +
    • revision walking
    • +
    • commit, tag, tree and blob parsing and write-back
    • +
    • tree traversal
    • +
    • index file (staging area) manipulation
    • +
    • ...and much more
    • +
    +
    +
    + + + +

    Building the library

    +
    +
    + libgit2 uses waf as its buildsystem, + and hence requires Python 2.4 or better to + configure the build. The library can be built under the following platforms: + Linux, Mac OS X, xBSD, Windows (MSVC) and Windows (MinGW). +
    + +
    +
    Start by configuring the build system by running:
    +
    $ ./waf configure
    +
    Then build the library, either in its shared or static form
    +
    $ ./waf build-static
    +$ ./waf build-shared
    +
    You can then test the library with:
    +
    $ ./waf test
    +
    And finally you can install it with (you may need to sudo):
    +
    $ ./waf install
    +
    + Once that is done, you should be able to link the library to your program + with a normal -lgit2.
    +
    + +
    + Detailed build instructions for different platforms can be found in libgit2's + readme file. +
    +
    + + + +

    Language bindings

    +
    +
    + There are already a number of language bindings in the works, so you can + use Git at native speed from your favorite programming language. +
    +
    + +
    +
    +

    Rugged (Ruby bindings)

    +

    + Rugged (previously known as Ribbit) is the reference bindings for libgit2, used to make sure the + source C API is sane and functional. They are always in sync with the libgit2 master branch. +

    + Get Rugged +
    +
    + +
    +
    +

    pygit2 (Python bindings)

    +

    pygit2 are the Python 2.6+ bindings for libgit2 mantained by David Borowitz. + They should be (mostly) up to date with the library changes.

    +
    + Get pygit2 +
    + +
    +
    +

    Objective-C

    +

    Coming Soon...

    +
    +
    + +
    +
    +

    Geef (Erlang bindings)

    +

    + Geef is an example of an Erlang NIF binding to libgit2. A bit out of + date, but can be made to mostly work. +

    + Get Geef +
    +
    +
    + + +
    + +
    +

    Thanks to the folks at Bundler for letting us steal their awesome CSS

    +
    + + Fork me on GitHub + + diff --git a/stylesheets/application.css b/stylesheets/application.css index e2a9c5a648..1a78a862ec 100644 --- a/stylesheets/application.css +++ b/stylesheets/application.css @@ -13,6 +13,16 @@ line-height: 125%; } +a { + color: #4e9326; + text-decoration: none; + font-weight: bold; +} + +a:hover { + color: #6ecf36; +} + /* line 39 */ html { width: 100%; @@ -202,6 +212,7 @@ ul.bullet a:last-child { margin-right: 0; } + /* line 141 */ .bullet { width: 100%; @@ -224,9 +235,11 @@ ul.bullet a:last-child { color: #003333; line-height: 24px; margin-bottom: 8px; + margin-top: 8px; } /* line 154 */ -.bullet a { +.button { + font-weight: normal; padding-top: 8px; padding-bottom: 5px; text-decoration: none; @@ -244,8 +257,10 @@ ul.bullet a:last-child { -khtml-border-radius: 5px; border-radius: 5px; } + /* line 166 */ -.bullet a:hover { +.button:hover { + color: white; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(0%, #4e9326), color-stop(100%, #35641a)); background-image: -moz-linear-gradient(top, #4e9326 0%, #35641a 100%); } From f728ed14aab169ca7187a0bff2f676f7d6ebd96f Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Mon, 29 Nov 2010 10:20:57 -0800 Subject: [PATCH 08/55] remove objc section for now --- index.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/index.html b/index.html index 6a8ba59bb9..df94c547ae 100644 --- a/index.html +++ b/index.html @@ -139,13 +139,6 @@

    pygit2 (Python bindings)

    Get pygit2
    -
    -
    -

    Objective-C

    -

    Coming Soon...

    -
    -
    -

    Geef (Erlang bindings)

    From 6ab1df7278d5428c9dda9362497afb2704eb7489 Mon Sep 17 00:00:00 2001 From: Matt Duncan Date: Mon, 29 Nov 2010 19:35:45 -0500 Subject: [PATCH 09/55] Fix incorrect href for getting started link --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index df94c547ae..7a5df7d2cd 100644 --- a/index.html +++ b/index.html @@ -20,7 +20,7 @@
      - Getting started + Getting started What it can do Compiling the library Language bindings From ea0e063e9b88a861d69b9a4b4c91006d60e59549 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Thu, 2 Dec 2010 18:43:46 +0200 Subject: [PATCH 10/55] Fix section margins after each heading Signed-off-by: Vicent Marti --- index.html | 7 ++++--- stylesheets/application.css | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index df94c547ae..e0702159d4 100644 --- a/index.html +++ b/index.html @@ -31,12 +31,13 @@

      Getting started

      -

      In the current Git project, though a libgit.a file is produced it is + In the current Git project, though a libgit.a file is produced it is not re-entrant (it will call die() on basically any error) and it has no stable or well-designed public API. As there is no good way to link to this effectively, a new library was needed that fulfilled - these requirements. Thus libgit2.

      - + these requirements. Thus libgit2. +
      +

      libgit2 is...

      • faster than any other Git library
      • diff --git a/stylesheets/application.css b/stylesheets/application.css index 1a78a862ec..9ac9a42710 100644 --- a/stylesheets/application.css +++ b/stylesheets/application.css @@ -235,7 +235,6 @@ ul.bullet a:last-child { color: #003333; line-height: 24px; margin-bottom: 8px; - margin-top: 8px; } /* line 154 */ .button { @@ -303,6 +302,8 @@ ul.bullet a:last-child { -webkit-box-flex: 1; -moz-box-flex: 1; margin: 0; + margin-top: 10px; + margin-bottom: 10px; } /* line 193 */ .bullet code { From 5d93066a3cad3d24f90c669fdd3b1bfa65a7f930 Mon Sep 17 00:00:00 2001 From: Scott Chacon Date: Thu, 2 Dec 2010 14:10:28 -0800 Subject: [PATCH 11/55] start of api guide --- .gitignore | 1 + api.html | 133 +++++++++++++++++++++++++++++++ js/sh_lang/sh_c.min.js | 1 + js/sh_lang/sh_diff.min.js | 1 + js/sh_lang/sh_python.min.js | 1 + js/sh_lang/sh_ruby.min.js | 1 + js/sh_main.min.js | 4 + stylesheets/application.css | 7 ++ stylesheets/sh_libgit.css | 154 ++++++++++++++++++++++++++++++++++++ 9 files changed, 303 insertions(+) create mode 100644 api.html create mode 100644 js/sh_lang/sh_c.min.js create mode 100644 js/sh_lang/sh_diff.min.js create mode 100644 js/sh_lang/sh_python.min.js create mode 100644 js/sh_lang/sh_ruby.min.js create mode 100644 js/sh_main.min.js create mode 100644 stylesheets/sh_libgit.css diff --git a/.gitignore b/.gitignore index ca35be08d4..be6b1d71ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ _site +*.swp diff --git a/api.html b/api.html new file mode 100644 index 0000000000..2112c7eaa1 --- /dev/null +++ b/api.html @@ -0,0 +1,133 @@ + + + + libgit2 API + + + + + + + + + + +
        + + +

        Getting started

        + +
        +
        +

        This is the usage guide for the libgit2 API. The machine generated + documentation for the C API can be found here; + this page is to show some examples and usage of libgit2 and the Ruby + bindings, Rugged. +

        + +

        To get started, you need to initialize the Repository + object. This is the starting point for most of what you will do with + the libgit2 API. +

        + +C +
        +#include <git.h>
        +git_repository *repo;
        +git_repository_open(&repo, "/path/to/repo.git");
        +git_repository_free(repo);
        +
        + +
        + +Ruby +
        +require 'rugged'
        +repo = Rugged::Repository.new(@path)
        +
        + +
        +
        + + + +

        SHA1 Conversion and Formatting

        +
        +
        + +

        Hex to Raw

        + +C +
        +char hex[] = "599955586da1c3ad514f3e65f1081d2012ec862d";
        +git_oid oid;
        +git_oid_mkstr(&oid, hex);
        +printf("Raw 20 bytes: [%s]\n", (&oid)->id);
        +
        + +
        + +Ruby +
        +raw = Rugged::hex_to_raw("ce08fe4884650f067bd5703b6a59a8b3b3c99a09")
        +puts "Raw 20 bytes: #{raw}"
        +
        + +

        Raw to Hex

        + +C +
        +git_oid oid;
        +char out[40];
        +
        +git_oid_mkraw(&oid, raw);
        +git_oid_fmt(out, &oid);
        +printf("SHA hex string: %s\n", out);$
        +
        + +
        + +Ruby +
        +hex = Rugged::raw_to_hex(Base64.decode64("FqASNFZ4mrze9Ld1ITwjqL109eA="))
        +puts "SHA hex string: #{hex}"
        +
        + +
        +
        + +

        Raw Data Reading and Writing

        +
        +
        + loose and packed +
        +
        + +

        Object Parsing and Writing

        +
        +
        + commit, tag, tree and blob parsing and write-back + tree traversal +
        +
        + +

        Revision Walking

        +
        +
        +
        +
        + +

        Index Manipulation

        +
        +
        +
        +
        + + + Fork me on GitHub + + + diff --git a/js/sh_lang/sh_c.min.js b/js/sh_lang/sh_c.min.js new file mode 100644 index 0000000000..fd911188ed --- /dev/null +++ b/js/sh_lang/sh_c.min.js @@ -0,0 +1 @@ +if(!this.sh_languages){this.sh_languages={}}sh_languages.c=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/^[ \t]*#(?:[ \t]*include)/g,"sh_preproc",10,1],[/^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",13],[/'/g,"sh_string",14],[/\b(?:__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|break|case|catch|cdecl|const|continue|default|do|else|enum|extern|for|goto|if|pascal|register|return|sizeof|static|struct|switch|typedef|union|volatile|while)\b/g,"sh_keyword",-1],[/\b(?:bool|char|double|float|int|long|short|signed|unsigned|void|wchar_t)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:?)|(?:?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[//g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[/