Changes between Version 42 and Version 43 of SourceCodeGit


Ignore:
Timestamp:
Apr 11, 2014, 3:37:02 PM (11 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SourceCodeGit

    v42 v43  
    33= BOINC source code =
    44
    5 == Browsing source code on the web ==
    6 
    7 You can browse the BOINC code using [/browser a web-based interface] ([http://boinc.berkeley.edu/gitweb/ alternative]).
    8 This is useful for getting individual files, or seeing the revision history.
     5== Getting a copy of the BOINC source ==
     6
     7The BOINC source is stored in a [http://www.git-scm.com Git] repository.
     8To clone the repository into a directory called (for example) 'boinc', run:
     9
     10{{{
     11git clone git://boinc.berkeley.edu/boinc-v2.git boinc
     12}}}
     13
     14or, using HTTP:
     15
     16{{{
     17git clone http://boinc.berkeley.edu/git/boinc-v2.git boinc
     18}}}
     19
     20On Windows, you'll need a Git client such as !TortoiseGit (see below).
     21Right-click on the parent directory, select 'Git Clone...', and fill in the dialog with one of the above URLs.
     22Don't forget to remove both 'git clone' and 'boinc' from the commands above.
     23
     24The 'clone' operation pulls down ~134 MB of source and gives you a copy that you can modify and compile locally.
     25However, you will not be able to push changes to the BOINC repository.
     26For write access, see further below.
     27
     28Change to the directory 'boinc'.
     29Here you find the files corresponding to the HEAD of the 'remote master branch'.
     30The development history of the project can be found in the 'boinc/.git' subdirectory.
     31
     32You can replace the files on your 'master branch' by files from older branches or older tags using the appropriate git command - without
     33needing to contact the Git repository server again as all the history can be found under 'boinc/.git'.
     34This is called 'checking out'.
     35
     36Run `git status` to see whether there are any changes relative to the HEAD of the 'remote master branch':
     37
     38{{{
     39$ cd boinc
     40
     41$ git status
     42# On branch master
     43nothing to commit, working directory clean
     44}}}
    945
    1046== Installing Git ==
    1147
    12 The BOINC source is stored in a [http://www.git-scm.com Git] repository. To access the BOINC Git repository you'll need the Git client software:
     48To access the BOINC Git repository you'll need the Git client software:
    1349
    1450 * On Windows, get a Git client like 'Git for Windows' (console) and !TortoiseGit (GUI) (see this [SourceCodeGit/Windows guide for Windows]).
     
    2258   [http://gitx.laullon.com GitX] ([https://github.com/laullon/gitx latest])
    2359
    24 To get a copy of the BOINC source code you don't need to fully understand Git, just skim the instructions below. However, if you intend to modify BOINC or to look at branches, you'll need to know at least the basics.
     60To get a copy of the BOINC source code you don't need to fully understand Git, just skim the instructions below.
     61However, if you intend to modify BOINC or to look at branches, you'll need to know at least the basics.
    2562
    2663Recommended reading/watching:
     
    3067 * [http://git-scm.com/doc All the rest]: Cheat sheets, tutorials and more videos
    3168
    32 == Getting a copy of the BOINC source ==
    33 
    34 To clone the BOINC Git repository into a local directory called (for example) 'boinc', run:
    35 
    36 {{{
    37 git clone git://boinc.berkeley.edu/boinc-v2.git boinc
    38 }}}
    39 
    40 or, using HTTP:
    41 
    42 {{{
    43 git clone http://boinc.berkeley.edu/git/boinc-v2.git boinc
    44 }}}
    45 
    46 On Windows, you'll need a Git client such as !TortoiseGit (see below).
    47 Right-click on the parent directory, select 'Git Clone...', and fill in the dialog with one of the above URLs. Don't forget to remove both 'git clone' and 'boinc' from the commands above.
    48 
    49 The 'clone' operation pulls down ~134 MiB of source and gives you a copy that you can modify and compile locally. However, you will not be able to push changes to the BOINC repository. For write access, see further below.
    50 
    51 Change to the directory 'boinc'. Here you find the files corresponding to the HEAD of the 'remote master branch', the bleeding edge of development. The fully navigable development history of the project can be found in the 'boinc/.git' subdirectory.
    52 
    53 You can replace the files on your 'master branch' by files from older branches or older tags using the appropriate git command - without
    54 needing to contact the Git repository server again as all the history can be found under 'boinc/.git'. This is called 'checking out'.
    55 
    56 Run `git status` to see whether there are any changes relative to the HEAD of the 'remote master branch':
    57 
    58 {{{
    59 $ cd boinc
    60 
    61 $ git status
    62 # On branch master
    63 nothing to commit, working directory clean
    64 }}}
     69== Browsing source code on the web ==
     70
     71You can browse the BOINC code using [/browser a web-based interface] ([http://boinc.berkeley.edu/gitweb/ alternative]).
     72This is useful for getting individual files, or seeing the revision history.
    6573
    6674== Tags & Branches ==
     
    6876Various versions of the source code are available in the remote repository (and now, in your local copy of it):
    6977
    70    * '''remote tags''':
    71    These are snapshots of the state of development taken at a specific point in time. You can check out a 'remote tag', but you should not modify the files thus checked out - for that you need a separate branch (which can be created later though).
    72    The tag's name indicates what's in there. For example, the release of BOINC client version 7.0.60 has been given then tag 'client_release/7.0/7.0.60'.
     78 * '''remote tags''':
     79   These are snapshots of the state of development taken at a specific point in time.
     80   You can check out a 'remote tag', but you should not modify the files thus checked out -
     81   for that you need a separate branch (which can be created later though).
     82   The tag's name indicates what's in there. For example, the release of BOINC client version 7.0.60
     83   has been given then tag 'client_release/7.0/7.0.60'.
    7384   Run `git tag` to list the remote tags.
    74    * '''remote branches''':
    75    BOINC developers perform long-running work on source code that needs to be visible to other members of the team by working on a 'remote branch'. There are:
    76       * The '''remote master branch''': This is the most recent version of the source code. It always exists, contains the freshest code and has not necessarily been thoroughly tested.
    77       * '''Other branches''': For example, work on version 6.12 of BOINC that is not done in the 'remote master branch', (let's say because of the need for a immediate bugfix) may be done in a remote branch called 'client_release/6/6.12'.
    78         Run `git remote show origin` to list the remote branches.
     85 * '''remote branches''':
     86   BOINC developers perform long-running work on source code that needs to be visible to other members of the team
     87   by working on a 'remote branch'. There are:
     88  * The '''remote master branch''': This is the most recent version of the source code.
     89   It always exists, contains the freshest code and has not necessarily been thoroughly tested.
     90  * '''Other branches''': For example, work on version 6.12 of BOINC that is not done in the 'remote master branch',
     91   (let's say because of the need for a immediate bugfix) may be done in a remote branch called 'client_release/6/6.12'.
     92
     93Run `git remote show origin` to list the remote branches.
    7994       
    80 As you cloned the Git repository, a 'local master branch' was created. This initially corresponds to the 'remote master branch', but once you start editing files, it will of course deviate from it.
    81 
    82 You can create local branches and tags (both invisible to anyone but yourself). You can check out a specific 'remote tag' to compile, or you can create a local branch based on a specific 'remote tag' to work on the code.
     95As you cloned the Git repository, a 'local master branch' was created.
     96This initially corresponds to the 'remote master branch', but once you start editing files, it will of course deviate from it.
     97
     98You can create local branches and tags (both invisible to anyone but yourself).
     99You can check out a specific 'remote tag' to compile,
     100or you can create a local branch based on a specific 'remote tag' to work on the code.
    83101
    84102   * See [http://git-scm.com/book/en/Git-Basics-Tagging Git Basics - Tagging] for the concept of 'tagging'.
    85    * See [http://git-scm.com/book/en/Git-Branching-Remote-Branches Git Branching - Remote Branches] for the concept of 'remote branches' and the concepts of the 'local' and 'remote' master branches.
     103   * See [http://git-scm.com/book/en/Git-Branching-Remote-Branches Git Branching - Remote Branches]
     104     for the concept of 'remote branches' and the concepts of the 'local' and 'remote' master branches.
    86105   * See [http://stackoverflow.com/questions/1457103/what-is-the-difference-between-a-tag-and-a-branch-in-git What is the difference between a tag and a branch in git?] for a short intro on 'tags' and 'branches'.
    87106   * See [http://stackoverflow.com/questions/5582208/checkout-git-tag Checkout GIT tag] for an explanation about 'checking out git tags'.
    88107
    89 If you want to have an overview of the development history, refer to [http://stackoverflow.com/questions/1057564/pretty-git-branch-graphs - this discussion on stack overflow] about generating pretty pictures of the same.
    90 
    91 For the impatient living on Unix, follow Slipp D. Thompson's idead and edit (or create) your '~/.gitconfig' file, adding the following command aliases:
     108If you want to have an overview of the development history,
     109refer to [http://stackoverflow.com/questions/1057564/pretty-git-branch-graphs - this discussion on stack overflow]
     110about generating pretty pictures of the same.
     111
     112For the impatient living on Unix, follow Slipp D. Thompson's idead and edit (or create)
     113your '~/.gitconfig' file, adding the following command aliases:
    92114
    93115{{{
     
    133155}}}
    134156
    135 Actually this has already happened when you cloned the repository, so the above command is mainly useful if you want to go back to the remote master branch after you modified some files in a hasty fashion.
     157Actually this has already happened when you cloned the repository,
     158so the above command is mainly useful if you want to go back to the remote master branch
     159after you modified some files in a hasty fashion.
    136160
    137161What is the absolutely latest tag issued?
     
    168192}}}
    169193
    170 Looks like the HEAD is an as-yet-untagged 7.3.0. The choice is yours ... what do you want to compile? You probably want something more stable.
     194Looks like the HEAD is an as-yet-untagged 7.3.0.
     195The choice is yours ... what do you want to compile?
     196You probably want something more stable.
    171197
    172198=== Check out a specific tag for compilation ===
    173199
    174 As said above, the code for each release is 'tagged'. For example, the code for version 7.2.9 is tagged with `client_release/7.2/7.2.9`.
     200As said above, the code for each client release is 'tagged'.
     201For example, the code for version 7.2.9 is tagged with `client_release/7.2/7.2.9`.
    175202
    176203Run
     
    179206}}}
    180207
    181 to list all the visible tags. Note that the tags come in '''lexicographical order''', not in '''version order'''! If you want to sort them by version number:
     208to list all the visible tags.
     209Note that the tags come in '''lexicographical order''',
     210not in '''version order'''! If you want to sort them by version number:
    182211
    183212{{{
     
    217246Notes:
    218247
    219  * There is no formal testing process for server software. Every so often, when no bugs have been reported for some time, we tag the '''master''' branch to '''server_release'''.
     248 * There is no formal testing process for server software.
     249   Every so often, when no bugs have been reported for some time,
     250   we tag the '''master''' branch to '''server_release'''.
    220251 * Because of limited resources, bug fixes to server software are normally NOT back-ported from '''master''' to '''server_release'''.
    221252
    222 For these reasons: '''the master branch is typically a better choice than server_release for server software''' (should this not be the reverse?? .ed)
     253For these reasons: '''the master branch is typically a better choice than server_release for server software'''.
    223254
    224255== Write Access to the Git Repository ==
     
    344375|| '''samples''' || Several [ExampleApps example applications] together with Windows and Mac project files and a Linux makefile for building the applications. It also includes Windows versions of some libraries (GLUT, jpeglib, etc.) that many applications will need, but which are not part of BOINC. ||
    345376|| '''sched''' || The scheduling server, feeder, and file upload handler. ||
    346 || '''stripchart''' || Generate plots using gnuplot || 
     377|| '''stripchart''' || Generate plots using gnuplot ||
    347378|| '''test''' || Test scripts. ||
    348379|| '''tools''' || Operational utility programs. ||