This page describes the format and usage of special URI's that can be used inside the SRC_URI field of a BepFile file. The purpose of which are to download source code from a version control system for use during the software build process. = Schema of the URI = {{{ type://[username[:password]@]hostname[:port]/path[#revision] }}} ''The username, password, port, and revision specifiers are optional.'' === Supported version control types === * cvs:// * svn:// * svn+http:// * svn+https:// * hg+http:// * hg+https:// * git:// * git+http:// * git+https:// === The revision specifier === For subversion this is a revision number. For mercurial and git this is any changeset, tag, or branch identifier. Usually you would want to use it to specify a changeset id though. For CVS this is a date specifier. Usually you would use MM/DD/YYYY, but it can be any format that CVS accepts. === Notes for CVS === The CVS schema is slightly different than the others. The path should also include the module name at the end and it will almost always need :pserver: just after the type specifier. {{{ cvs://:pserver:[username[:password]@]hostname[:port]/path/module[#date] }}} ---- = Real world examples = === Subversion === Checking out the latest revision: {{{ SRC_URI="svn+http://svn.ruby-lang.org/repos/ruby/trunk" }}} Checking out a specific revision: {{{ SRC_URI="svn+http://svn.ruby-lang.org/repos/ruby/trunk#26849" }}} === Mercurial === Cloning the tip of a repository: {{{ SRC_URI="hg+http://bitbucket.org/durin42/hgsubversion/" }}} Cloning a specific changeset: {{{ SRC_URI="hg+http://bitbucket.org/durin42/hgsubversion/#9eb6bf2be1e7" }}} === Git === Cloning a specific changeset: {{{ SRC_URI="git://cmake.org/cmake.git#c6fdff2b223d8527600a7df13638cd0258db4de7" }}} === CVS === Checking out the HEAD of a repository(with password): '' This is with a username of 'anonymous', password of 'cmake', and module 'CMake' '' {{{ SRC_URI="cvs://:pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake/CMake" }}} Checking out a specific date of a repository: '' This is with a username of 'anonymous', password of 'cmake', and module 'CMake' '' {{{ SRC_URI="cvs://:pserver:anonymous:cmake@www.cmake.org:/cvsroot/CMake/CMake#4/14/2006" }}} Checking out the HEAD of a repository(with no password): '' This is with a username of 'anonymous', empty password, and module 'zsh' '' {{{ SRC_URI="cvs://:pserver:anonymous@zsh.cvs.sourceforge.net:/cvsroot/zsh/zsh" }}}