<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Chapter 8. Embedding Subversion</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /> <style type="text/css"> body { background-image: url('images/draft.png'); background-repeat: no-repeat; background-position: top left; /* The following properties make the watermark "fixed" on the page. */ /* I think that's just a bit too distracting for the reader... */ /* background-attachment: fixed; */ /* background-position: center center; */ }</style> <link rel="home" href="index.html" title="Version Control with Subversion [DRAFT]" /> <link rel="up" href="svn.content.html" title="Part I. Getting to Know Subversion" /> <link rel="prev" href="svn.customization.summary.html" title="Summary" /> <link rel="next" href="svn.developer.layerlib.html" title="Layered Library Design" /> </head> <body> <div xmlns="" id="vcws-version-notice"> <p>This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a> for stable versions of this book.</p> </div> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">Chapter 8. Embedding Subversion</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="svn.customization.summary.html">Prev</a> </td> <th width="60%" align="center">Part I. Getting to Know Subversion</th> <td width="20%" align="right"> <a accesskey="n" href="svn.developer.layerlib.html">Next</a></td> </tr> </table> <hr /> </div> <div class="chapter" title="Chapter 8. Embedding Subversion"> <div class="titlepage"> <div> <div> <h2 class="title"><a id="svn.developer"></a>Chapter 8. Embedding Subversion</h2> </div> </div> </div> <div class="toc"> <p> <strong>Table of Contents</strong> </p> <dl> <dt> <span class="sect1"> <a href="svn.developer.layerlib.html">Layered Library Design</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="svn.developer.layerlib.html#svn.developer.layerlib.repos">Repository Layer</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.layerlib.html#svn.developer.layerlib.ra">Repository Access Layer</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.layerlib.html#svn.developer.layerlib.client">Client Layer</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="svn.developer.usingapi.html">Using the APIs</a> </span> </dt> <dd> <dl> <dt> <span class="sect2"> <a href="svn.developer.usingapi.html#svn.developer.usingapi.apr">The Apache Portable Runtime Library</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.usingapi.html#svn.developer.usingapi.funcsbatons">Functions and Batons</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.usingapi.html#svn.developer.usingapi.urlpath">URL and Path Requirements</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.usingapi.html#svn.developer.usingapi.otherlangs">Using Languages Other Than C and C++</a> </span> </dt> <dt> <span class="sect2"> <a href="svn.developer.usingapi.html#svn.developer.usingapi.codesamples">Code Samples</a> </span> </dt> </dl> </dd> <dt> <span class="sect1"> <a href="svn.developer.summary.html">Summary</a> </span> </dt> </dl> </div> <p> <a id="idp19119152" class="indexterm"></a> <a id="idp19120192" class="indexterm"></a>Subversion has a modular design: it's implemented as a collection of libraries written in C. Each library has a well-defined purpose and application programming interface (API), and that interface is available not only for Subversion itself to use, but for any software that wishes to embed or otherwise programmatically control Subversion. Additionally, Subversion's API is available not only to other C programs, but also to programs written in higher-level languages such as Python, Perl, Java, and Ruby.</p> <p>This chapter is for those who wish to interact with Subversion through its public API or its various language bindings. If you wish to write robust wrapper scripts around Subversion functionality to simplify your own life, are trying to develop more complex integrations between Subversion and other pieces of software, or just have an interest in Subversion's various library modules and what they offer, this chapter is for you. If, however, you don't foresee yourself participating with Subversion at such a level, feel free to skip this chapter with the confidence that your experience as a Subversion user will not be affected.</p> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="svn.customization.summary.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="svn.content.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="svn.developer.layerlib.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Summary </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Layered Library Design</td> </tr> </table> </div> <div xmlns="" id="vcws-footer"> <hr /> <img src="images/cc-by.png" style="float: right;" /> <p>You are reading <em>Version Control with Subversion</em> (for Subversion 1.8), by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato.</p> <p>This work is licensed under the <a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons Attribution License v2.0</a>.</p> <p>To submit comments, corrections, or other contributions to the text, please visit <a href="http://www.svnbook.com/">http://www.svnbook.com/</a>.</p> </div> </body> </html>