Changes between Version 44 and Version 45 of SourceCodeGit


Ignore:
Timestamp:
Nov 3, 2014, 2:03:10 PM (10 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SourceCodeGit

    v44 v45  
    2424The 'clone' operation pulls down ~134 MB of source and gives you a copy that you can modify and compile locally.
    2525However, you will not be able to push changes to the BOINC repository.
    26 For write access, see further below.
     26For write access, see below.
    2727
    2828Change to the directory 'boinc'.
     
    3030The development history of the project can be found in the 'boinc/.git' subdirectory.
    3131
    32 You can replace the files on your 'master branch' by files from older branches or older tags using the appropriate git command - without
     32You can replace the files on your 'master branch' by files from older branches or older tags
     33using the appropriate git command - without
    3334needing to contact the Git repository server again as all the history can be found under 'boinc/.git'.
    3435This is called 'checking out'.
     
    4445}}}
    4546
    46 Sometimes it is necessary to purge all untracked files created by build tools (_autosetup, configure, make) and reset the source directory without pulling a new clone. This can be done using:
     47Sometimes it is necessary to purge all untracked files created by build tools
     48(_autosetup, configure, make) and reset the source directory without pulling a new clone.
     49This can be done using:
    4750{{{
    4851$ git clean -f -d -x
     
    5356To access the BOINC Git repository you'll need the Git client software:
    5457
    55  * On Windows, get a Git client like 'Git for Windows' (console) and !TortoiseGit (GUI) (see this [SourceCodeGit/Windows guide for Windows]).
     58 * On Windows, get a Git client like 'Git for Windows' (console) and !TortoiseGit (GUI)
     59  (see this [SourceCodeGit/Windows guide for Windows]).
    5660 * On Linux, Git is usually provided by your distribution.
    5761   If not, check your package manager and look for "git" or "git-core".
     
    7478== Browsing source code on the web ==
    7579
    76 You can browse the BOINC code using [/browser a web-based interface] ([http://boinc.berkeley.edu/gitweb/ alternative]).
     80You can browse the BOINC code using [/browser a web-based interface]
     81([http://boinc.berkeley.edu/gitweb/ alternative]).
    7782This is useful for getting individual files, or seeing the revision history.
    7883
    7984== Tags & Branches ==
     85
     86For all software other than the client (i.e., server, web, and API)
     87use the master branch.
     88Don't use a client tag or branch; the server software in it probably isn't stable.
    8089
    8190Various versions of the source code are available in the remote repository (and now, in your local copy of it):
     
    8998   Run `git tag` to list the remote tags.
    9099 * '''remote branches''':
    91    BOINC developers perform long-running work on source code that needs to be visible to other members of the team
    92    by working on a 'remote branch'. There are:
     100   BOINC developers perform long-running work on source code that needs to be visible
     101   to other members of the team by working on a 'remote branch'.
     102   There are:
    93103  * The '''remote master branch''': This is the most recent version of the source code.
    94104   It always exists, contains the freshest code and has not necessarily been thoroughly tested.
    95105  * '''Other branches''': For example, work on version 6.12 of BOINC that is not done in the 'remote master branch',
    96    (let's say because of the need for a immediate bugfix) may be done in a remote branch called 'client_release/6/6.12'.
     106   (let's say because of the need for a immediate bugfix)
     107   may be done in a remote branch called 'client_release/6/6.12'.
    97108
    98109Run `git remote show origin` to list the remote branches.
    99110       
    100111As you cloned the Git repository, a 'local master branch' was created.
    101 This initially corresponds to the 'remote master branch', but once you start editing files, it will of course deviate from it.
     112This initially corresponds to the 'remote master branch', but once you start editing files,
     113it will of course deviate from it.
    102114
    103115You can create local branches and tags (both invisible to anyone but yourself).
     
    152164}}}
    153165
    154 === Development on the bleeding edge ===
    155 
    156 If you want to work on the HEAD of the 'remote master branch', check it out locally:
    157 
     166
     167To go back to the remote master branch after you modified some files in a hasty fashion:
    158168{{{
    159169git checkout master
    160170}}}
    161 
    162 Actually this has already happened when you cloned the repository,
    163 so the above command is mainly useful if you want to go back to the remote master branch
    164 after you modified some files in a hasty fashion.
    165171
    166172What is the absolutely latest tag issued?
     
    187193}}}
    188194
    189 271949 lines have differences. Not bad.
     195271949 lines have differences.
    190196
    191197You may want to see the differences to file 'version.h':
     
    203209=== Check out a specific tag for compilation ===
    204210
    205 As said above, the code for each client release is 'tagged'.
     211As mentioned above, the code for each client release is 'tagged'.
    206212For example, the code for version 7.2.9 is tagged with `client_release/7.2/7.2.9`.
    207213
     
    234240
    235241...and proceed with compilation.
    236 
    237 == Server releases ==
    238 
    239 For all software other than the client (i.e., server, web, and API)
    240 a "stable" version is kept in a branch, '''server_release'''.
    241 Don't use the server software in a client tag or branch; it probably isn't stable.
    242 
    243 Run
    244 
    245 {{{
    246 git tag --list 'server_release*'
    247 }}}
    248 
    249 to list the available tags for stable server releases.
    250 
    251 Notes:
    252 
    253  * There is no formal testing process for server software.
    254    Every so often, when no bugs have been reported for some time,
    255    we tag the '''master''' branch to '''server_release'''.
    256  * Because of limited resources, bug fixes to server software are normally NOT back-ported from '''master''' to '''server_release'''.
    257 
    258 For these reasons: '''the master branch is typically a better choice than server_release for server software'''.
    259242
    260243== Write Access to the Git Repository ==
     
    267250Direct write access to the main repository is currently available via the SSH protocol with public-key authentication.
    268251If you want direct write access, contact David Anderson and/or Rom Walton.
    269 They'll ask you for your public-key.
     252They'll ask you for your public key.
    270253Here's how you can create a public/private key pair and use it after you've been granted access to the repository:
    271254