Changes between Version 16 and Version 17 of SourceCodeGit


Ignore:
Timestamp:
Nov 5, 2012, 4:30:49 PM (11 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SourceCodeGit

    v16 v17  
    1 = Getting source code =
     1[[PageOutline]]
     2
     3= Getting BOINC source code =
    24
    35The BOINC source code is stored in a [http://www.git-scm.com Git] repository.
    46Various versions of the code are available at any given point:
    57
    6 == Development ==
     8== Branches ==
     9
     10=== Development ===
    711
    812The '''master''' branch contains the latest source code for all components of BOINC.
    913It is always under development, and has not necessarily been thoroughly tested.
    10 Use it if you need a recently-added feature.
    11 
    12 == Client software ==
     14
     15=== Client releases ===
    1316
    1417The client software (client and manager) is maintained as follows:
     
    1922  For example, the branch '''client_release_6_2''' is the code for the latest release of version 6.2.
    2023
    21 == Server software ==
     24=== Server releases ===
    2225
    2326For all software other than the client (i.e., server, web, and API)
     
    3538than server_stable for server software'''.
    3639
    37 = Using Git =
    38 
    39 == Recommended reading/watching ==
     40== Browsing source code via the web ==
     41
     42You can browse the boinc code via [/browser a web-based interface]
     43([http://boinc.berkeley.edu/git alternative]).
     44This is useful for getting individual files, or seeing the revision history.
     45
     46== Installing Git ==
     47
     48 * On Windows, get a Git client like [SourceCodeGit/Windows Git for Windows (console)
     49   and TortoiseGit (GUI)].
     50 * On Linux, Git is usually provided by all modern distributions.
     51   If not, check your package manager and look for "git" or "git-core"
     52 * On Mac OS X, use [http://www.macports.org MacPorts]
     53   (to keep git up to date, recommended) or a manual
     54   [http://code.google.com/p/git-osx-installer installation package].
     55  * Recommended free GUIs: [http://www.sourcetreeapp.com SourceTree (includes an embedded git)],
     56   [http://www.syntevo.com/smartgit/ SmartGit (free for non-commercial use)],
     57   [http://gitx.laullon.com GitX] ([https://github.com/laullon/gitx latest])
     58
     59
     60== Getting a copy of the BOINC source ==
     61
     62Note: this will give you a copy that you'll be able to modify locally,
     63but not push changes to the BOINC repository.
     64For write access, see the next section.
     65
     66On Linux, use the the following commands to clone the repository:
     67{{{
     68git clone git://boinc.berkeley.edu/boinc.git
     69or
     70git clone http://boinc.berkeley.edu/git/boinc.git
     71}}}
     72
     73On Windows, using !TortoiseGit:
     74
     75Right-click on the parent directory, select 'Git Clone...',
     76and fill in the dialog with one of the above URLs,
     77with no 'git clone' in front of it.
     78
     79== Using Git ==
     80
     81Recommended reading/watching:
    4082
    4183 * [http://vimeo.com/14629850 Getting Git]: 1 hour video (technical, but highly recommended)
     
    4385 * [http://git-scm.com/doc All the rest]: Cheat sheets, tutorials and more videos
    4486
    45 == Installation ==
    46 
    47  * On Windows, get a Git client like [SourceCodeGit/Windows Git for Windows (console) and TortoiseGit (GUI)].
    48  * On Linux git is usually provided by all modern distributions. Check your package manager and look for "git" or "git-core"
    49  * On Mac OS X you want to use [http://www.macports.org MacPorts] (to keep git up to date, recommended) or a manual [http://code.google.com/p/git-osx-installer installation package].
    50   * Recommended free GUIs: [http://www.sourcetreeapp.com SourceTree (includes an embedded git)], [http://www.syntevo.com/smartgit/ SmartGit (free for non-commercial use)], [http://gitx.laullon.com GitX] ([https://github.com/laullon/gitx latest])
    51 
    52 == Read-only access (cloning / checkout code) ==
    53 
    54 Note: this will give you anonymous read-only access only. For direct write access, please refer to the next section.
    55 
    56 In a shell/terminal, use the the following commands to clone the repository:
    57 {{{
    58 git clone git://boinc.berkeley.edu/boinc.git
    59 or
    60 git clone http://boinc.berkeley.edu/git/boinc.git
    61 }}}
    62 
    63 On Windows, using !TortoiseGit:
    64 
    65 Right-click on the parent directory, select 'Git Clone...',
    66 and fill in the dialog with one of the above URLs. There is no need to add 'git clone' in front of it.
    67 
    6887== Direct write access ==
    6988
    70 Note: you don't need direct write access to contribute code to BOINC. Given the [http://git-scm.com/about/distributed distributed nature] of git you can also publish your contributions elsewhere (e.g. on [https://github.com GitHub]) or send your patches via mail (using {{{git format-patch}}}).
    71 
    72 Direct write access to the official repositories in currently available via the SSH protocol (with public-key authentication). If you think you need direct write you should contact David Anderson and/or Rom Walton. They'll ask you for your public-key.[[BR]]
    73 Here's how you can create a public/private key pair and use it after you've been grated access to the repository:
    74 
    75 ==== Windows users ====
     89Note: you don't need direct write access to contribute code to BOINC.
     90Given the [http://git-scm.com/about/distributed distributed nature] of Git
     91you can publish your contributions elsewhere (e.g. on [https://github.com GitHub])
     92or send your patches via mail (using {{{git format-patch}}}).
     93
     94Direct write access to the main repository is currently available via the SSH protocol
     95with public-key authentication.
     96If you want direct write access, contact David Anderson and/or Rom Walton.
     97They'll ask you for your public-key.
     98Here's how you can create a public/private key pair and use it after you've been
     99granted access to the repository:
     100
     101=== Windows ===
    76102
    77103Please see [http://boinc.berkeley.edu/trac/wiki/SourceCodeGit/Windows this page] for details.
    78104
    79 ==== !Linux/Mac OS X users ====
    80 
    81  * General note: before you start, please check whether you already have an existing key at {{{~/.ssh/id_rsa}}}. If so, please choose a different key filename for the commands below! Alternatively, you could also reuse the existing key and continue with the final step.
    82  * Note to Mac OS X users: if you prefer "Finder" over "Terminal" hit {{{CMD+SHIFT+G}}} in "Finder", then enter {{{~/.ssh}}} to go to that hidden folder.
    83 
    84 The following shell/terminal command will create a key pair that gets stored in your {{{~/.ssh}}} directory:
     105=== !Linux/Mac OS X ===
     106
     107 * General note: before you start, please check whether you already have an existing key
     108  at {{{~/.ssh/id_rsa}}}.
     109  If so, please choose a different key filename for the commands below!
     110  Alternatively, you could also reuse the existing key and continue with the final step.
     111 * Note to Mac OS X users: if you prefer "Finder" over "Terminal" hit {{{CMD+SHIFT+G}}} in "Finder",
     112  then enter {{{~/.ssh}}} to go to that hidden folder.
     113
     114The following shell/terminal command will create a key pair that gets stored
     115in your {{{~/.ssh}}} directory:
    85116 * Public key: {{{~/.ssh/id_rsa.pub}}}
    86117 * Private key: {{{~/.ssh/id_rsa}}}
     
    89120}}}
    90121
    91 If you used the standard key filename id_rsa and you want the repository named boinc.git, use the following URL to access the repository:
     122If you used the standard key filename id_rsa and you want the repository named boinc.git,
     123use the following URL to access the repository:
    92124{{{
    93125ssh://gitolite@boinc.berkeley.edu/boinc.git
    94126}}}
    95127
    96 If you had to use a different key filename because of an existing key that you don't want to overwrite or reuse, you can define a so called ssh host alias that allows you to specify which key to use when accessing the BOINC repo.[[BR]]
    97 In order to do so, add the following to {{{~/.ssh/config}}} (create the file if necessary), assuming that you created the ssh key as {{{~/.ssh/boinc-key}}}:
     128If you had to use a different key filename because of an existing key
     129that you don't want to overwrite or reuse,
     130you can define a so called ssh host alias that allows you to specify which key to use
     131when accessing the BOINC repo.
     132To do so, add the following to {{{~/.ssh/config}}} (create the file if necessary),
     133assuming that you created the ssh key as {{{~/.ssh/boinc-key}}}:
    98134{{{
    99135host boinc-git-server
     
    104140}}}
    105141
    106 Now that you have the host alias defined you may access the repo using the alias in the clone URL (instead of the full user/hostname information):
     142Now that you have the host alias defined you may access the repo using the alias
     143in the clone URL (instead of the full user/hostname information):
    107144
    108145{{{
     
    110147}}}
    111148
    112 Finally, send the ''public'' key to David or Rom. Important: the private key should never leave your system! Keep it safe!
    113 
    114 = Windows build dependencies =
    115 
    116 All the additional dependency files are now stored in [source:build-depends-vs2005 build-depends-vs2005], get them using {{{git clone git://boinc.berkeley.edu/build-depends-vs2005.git}}}.
     149Finally, send the ''public'' key to David or Rom.
     150Important: the private key should never leave your system! Keep it safe!
     151
     152== Windows build dependencies ==
     153
     154All the additional dependency files are now stored in
     155[source:build-depends-vs2005 build-depends-vs2005];
     156get them using {{{git clone git://boinc.berkeley.edu/build-depends-vs2005.git}}}.
    117157The dependencies should be stored in the same parent directory as the BOINC source code, for example:
    118158{{{
     
    134174}}}
    135175
    136 When you have older source code, I found that deleting all previous source code and downloading it fresh, will fix the breaks in building BOINC. Make sure to backup your own code prior to deleting the source code.
    137 
    138 = Browsing source code via the web =
    139 
    140 You can browse the boinc code via [/browser a web-based interface] ([http://boinc.berkeley.edu/git alternative]).
    141 This is useful for getting individual files, or seeing the revision history.
    142 
    143 = Source code road map =
     176When you have older source code,
     177deleting all previous source code and downloading it fresh
     178will sometimes fix the breaks in building BOINC.
     179Make sure to back up your own code prior to deleting the source code.
     180
     181== Source code road map ==
    144182
    145183The BOINC source tree includes the following directories:
     
    185223 '''zip'''::
    186224        Compression functions; not used by BOINC, but may be useful for applications.
     225