37 | | = Using Git = |
38 | | |
39 | | == Recommended reading/watching == |
| 40 | == Browsing source code via the web == |
| 41 | |
| 42 | You can browse the boinc code via [/browser a web-based interface] |
| 43 | ([http://boinc.berkeley.edu/git alternative]). |
| 44 | This 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 | |
| 62 | Note: this will give you a copy that you'll be able to modify locally, |
| 63 | but not push changes to the BOINC repository. |
| 64 | For write access, see the next section. |
| 65 | |
| 66 | On Linux, use the the following commands to clone the repository: |
| 67 | {{{ |
| 68 | git clone git://boinc.berkeley.edu/boinc.git |
| 69 | or |
| 70 | git clone http://boinc.berkeley.edu/git/boinc.git |
| 71 | }}} |
| 72 | |
| 73 | On Windows, using !TortoiseGit: |
| 74 | |
| 75 | Right-click on the parent directory, select 'Git Clone...', |
| 76 | and fill in the dialog with one of the above URLs, |
| 77 | with no 'git clone' in front of it. |
| 78 | |
| 79 | == Using Git == |
| 80 | |
| 81 | Recommended reading/watching: |
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 | | |
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 ==== |
| 89 | Note: you don't need direct write access to contribute code to BOINC. |
| 90 | Given the [http://git-scm.com/about/distributed distributed nature] of Git |
| 91 | you can publish your contributions elsewhere (e.g. on [https://github.com GitHub]) |
| 92 | or send your patches via mail (using {{{git format-patch}}}). |
| 93 | |
| 94 | Direct write access to the main repository is currently available via the SSH protocol |
| 95 | with public-key authentication. |
| 96 | If you want direct write access, contact David Anderson and/or Rom Walton. |
| 97 | They'll ask you for your public-key. |
| 98 | Here's how you can create a public/private key pair and use it after you've been |
| 99 | granted access to the repository: |
| 100 | |
| 101 | === Windows === |
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 | |
| 114 | The following shell/terminal command will create a key pair that gets stored |
| 115 | in your {{{~/.ssh}}} directory: |
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}}}: |
| 128 | If you had to use a different key filename because of an existing key |
| 129 | that you don't want to overwrite or reuse, |
| 130 | you can define a so called ssh host alias that allows you to specify which key to use |
| 131 | when accessing the BOINC repo. |
| 132 | To do so, add the following to {{{~/.ssh/config}}} (create the file if necessary), |
| 133 | assuming that you created the ssh key as {{{~/.ssh/boinc-key}}}: |
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}}}. |
| 149 | Finally, send the ''public'' key to David or Rom. |
| 150 | Important: the private key should never leave your system! Keep it safe! |
| 151 | |
| 152 | == Windows build dependencies == |
| 153 | |
| 154 | All the additional dependency files are now stored in |
| 155 | [source:build-depends-vs2005 build-depends-vs2005]; |
| 156 | get them using {{{git clone git://boinc.berkeley.edu/build-depends-vs2005.git}}}. |
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 = |
| 176 | When you have older source code, |
| 177 | deleting all previous source code and downloading it fresh |
| 178 | will sometimes fix the breaks in building BOINC. |
| 179 | Make sure to back up your own code prior to deleting the source code. |
| 180 | |
| 181 | == Source code road map == |