wiki:BoostSubversion

Version 7 (modified by Douglas Gregor, 15 years ago) ( diff )

MIME types and end-of-line styles

Subversion Repository

Boost uses Subversion to manage all of the data associated with Boost's development, including the source code to Boost, documentation for Boost libraries, and the Boost web site.

Accessing the Boost Subversion Repository

The Subversion repository can be accessed in several ways:

svn co http://svn.boost.org/svn/boost/stable boost-stable

  • Developer (read/write) access to the Boost Subversion repository is available for Boost contributors at https://svn.boost.org/svn/boost. For information about gaining developer access to the Boost Subversion repository, see below.

Organization of the Boost Subversion Repository

The Boost Subversion repository is organized into several top-level directories, reflecting various stages of Boost library development and subtasks within the Boost community. We have the following top-level directories:

  • stable: Contains the latest "stable" version of Boost.
  • devel: Contains the latest "development" version of Boost. This branch will typically be more volatile than the stable branc.
  • sandbox: Contains libraries and tools that are under active development and have not yet been reviewed or accepted into Boost. See BoostSandbox for information about organization of the sandbox.
  • website: Contains the upcoming Boost web site, which is not yet live.
  • branches: Contains various branches of Boost libraries, typically for non-trivial changes to Boost libraries that need to be made separately from the devel branch.
  • tags: Contains "tags" that mark certain points in the source tree, such as particular Boost releases.

Developer Access to Subversion

Boost contributors are given read/write access to the Boost Subversion repository when their Boost tasks warrant. There are three different areas of the Boost Subversion repository that contributors may need access to:

  • The main Boost development areas, including the devel and stable directories. This level of access is typically restricted to authors and maintainers of Boost libraries.
  • The sandbox area, which is used to develop new libraries and tools that have not yet come up for Boost review. This level of access is available to contributors who want to develop future Boost libraries and collaborate with other Boost contributors.
  • The web site, which stores the Boost web site.

To gain developer access to the Boost Subversion repository, please send a email to the Boost Moderators at boost-owner -at- lists.boost.org stating why you need write access to the Boost Subversion repository, and which parts of the repository--boost itself, the sandbox, or the web site--you need access to. If you had access to Boost CVS when it was hosted at SourceForge, please provide your SourceForge user ID. Once a moderator has approved you for access to the Subversion repository, you will receive an invitation via e-mail that asks you to provide a user name and a password, which will be used to access both the Boost Subversion repository and the Boost Trac. You will also be asked to grant permission for your past and future Boost contributions to be licensed under the Boost Software License version 1.0 and future versions: your permission is required to work with the Boost Subversion repository, so that we can ensure that Boost code is licensed under the Boost Software License. Once you have signed in, you should notify the moderator of your username, and he will complete the process.

Please be sure to read the section on MIME types and end-of-line styles, below, and adjust your Subversion configuration as necessary.

Once you have write access to Subversion, you may want to "upgrade" your anonymous checkouts to developer checkouts. You can do so with the svn switch command, run from your Subversion checkout:

svn switch --relocate http://svn.boost.org/svn/boost https://svn.boost.org/svn/boost

MIME Types and End-Of-Line Styles

Internally, Subversion stores all text files using the Unix line endings (i.e., a single line feed). When checking out a text file on a Windows machine, however, we would prefer the file to have Windows-style line endings (i.e., carriage return/line feed pairs). Blinding adding and committing files can lead to inconsistent line endings, causing problems with some tools. Boost adopts an approach using properties to provide native line endings for users on all platforms. Each text file in the Boost Subversion repository must have its MIME type set appropriately and have the svn:eol-style property set to native. These settings will be verified by the Subversion repository itself, to keep the repository consistent.

To automatically maintain correct MIME types and end-of-line styles, modify your Subversion configuration file by merging the following code. This code enables the automatic setting of properties when you add files to Subversion, including the MIME type and end-of-line style:

  enable-auto-props = yes

  [auto-props]
  *.bat = svn:eol-style=native
  *.c = svn:eol-style=native
  *.cmake = svn:eol-style=native
  *.cpp = svn:eol-style=native
  *.dsp = svn:eol-style=CRLF
  *.dsw = svn:eol-style=CRLF
  *.dtd = svn:eol-style=native
  *.gif = svn:mime-type=image/gif
  *.h = svn:eol-style=native
  *.hpp = svn:eol-style=native
  *.htm = svn:eol-style=native
  *.html = svn:eol-style=native
  *.ico = svn:mime-type=image/x-icon
  *.ipp = svn:eol-style=native
  *.jam = svn:eol-style=native
  *.jpg = svn:mime-type=image/jpeg
  *.pdf = svn:mime-type=application/pdf
  *.pl = svn:eol-style=native
  *.png = svn:mime-type=image/png
  *.py = svn:eol-style=native
  *.qbk = svn:eol-style=native
  *.rst = svn:eol-style=native
  *.sh = svn:eol-style=native;svn:executable
  *.tpp = svn:eol-style=native
  *.txt = svn:eol-style=native
  *.xhtml = svn:eol-style=native
  *.xml = svn:eol-style=native
  configure = svn:eol-style=native
  Jamfile = svn:eol-style=native
  Jamfile.v2 = svn:eol-style=native
  Jamrules = svn:eol-style=native
  Makefile = svn:eol-style=native
  README = svn:eol-style=native

On Unix machines, the Subversion configuration file lives in ~/.subversion/config. On Windows, configuration data lives in %APPDATA%\Subversion\config.

Subversion Commit Messages

To receive e-mail each time a change is committed to the Boost Subversion repository, join the Boost-commit mailing list at http://lists.boost.org/mailman/listinfo.cgi/boost-commit

Note: See TracWiki for help on using the wiki.