Changes between Version 44 and Version 45 of SourceCodeGit
- Timestamp:
- Nov 3, 2014, 2:03:10 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SourceCodeGit
v44 v45 24 24 The 'clone' operation pulls down ~134 MB of source and gives you a copy that you can modify and compile locally. 25 25 However, you will not be able to push changes to the BOINC repository. 26 For write access, see furtherbelow.26 For write access, see below. 27 27 28 28 Change to the directory 'boinc'. … … 30 30 The development history of the project can be found in the 'boinc/.git' subdirectory. 31 31 32 You can replace the files on your 'master branch' by files from older branches or older tags using the appropriate git command - without 32 You can replace the files on your 'master branch' by files from older branches or older tags 33 using the appropriate git command - without 33 34 needing to contact the Git repository server again as all the history can be found under 'boinc/.git'. 34 35 This is called 'checking out'. … … 44 45 }}} 45 46 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: 47 Sometimes 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. 49 This can be done using: 47 50 {{{ 48 51 $ git clean -f -d -x … … 53 56 To access the BOINC Git repository you'll need the Git client software: 54 57 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]). 56 60 * On Linux, Git is usually provided by your distribution. 57 61 If not, check your package manager and look for "git" or "git-core". … … 74 78 == Browsing source code on the web == 75 79 76 You can browse the BOINC code using [/browser a web-based interface] ([http://boinc.berkeley.edu/gitweb/ alternative]). 80 You can browse the BOINC code using [/browser a web-based interface] 81 ([http://boinc.berkeley.edu/gitweb/ alternative]). 77 82 This is useful for getting individual files, or seeing the revision history. 78 83 79 84 == Tags & Branches == 85 86 For all software other than the client (i.e., server, web, and API) 87 use the master branch. 88 Don't use a client tag or branch; the server software in it probably isn't stable. 80 89 81 90 Various versions of the source code are available in the remote repository (and now, in your local copy of it): … … 89 98 Run `git tag` to list the remote tags. 90 99 * '''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: 93 103 * The '''remote master branch''': This is the most recent version of the source code. 94 104 It always exists, contains the freshest code and has not necessarily been thoroughly tested. 95 105 * '''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'. 97 108 98 109 Run `git remote show origin` to list the remote branches. 99 110 100 111 As 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. 112 This initially corresponds to the 'remote master branch', but once you start editing files, 113 it will of course deviate from it. 102 114 103 115 You can create local branches and tags (both invisible to anyone but yourself). … … 152 164 }}} 153 165 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 167 To go back to the remote master branch after you modified some files in a hasty fashion: 158 168 {{{ 159 169 git checkout master 160 170 }}} 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 branch164 after you modified some files in a hasty fashion.165 171 166 172 What is the absolutely latest tag issued? … … 187 193 }}} 188 194 189 271949 lines have differences. Not bad.195 271949 lines have differences. 190 196 191 197 You may want to see the differences to file 'version.h': … … 203 209 === Check out a specific tag for compilation === 204 210 205 As said above, the code for each client release is 'tagged'.211 As mentioned above, the code for each client release is 'tagged'. 206 212 For example, the code for version 7.2.9 is tagged with `client_release/7.2/7.2.9`. 207 213 … … 234 240 235 241 ...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 Run244 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'''.259 242 260 243 == Write Access to the Git Repository == … … 267 250 Direct write access to the main repository is currently available via the SSH protocol with public-key authentication. 268 251 If you want direct write access, contact David Anderson and/or Rom Walton. 269 They'll ask you for your public -key.252 They'll ask you for your public key. 270 253 Here's how you can create a public/private key pair and use it after you've been granted access to the repository: 271 254