Changes for page Using Git

Last modified by Richard Kreissig on 2023/09/14 08:49

From version 19.1
edited by aas2
on 2015/11/10 21:36
Change comment: There is no comment for this version
To version 12.1
edited by msp
on 2012/11/07 13:29
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.aas2
1 +XWiki.msp
Content
... ... @@ -13,9 +13,22 @@
13 13  KIELER is essentially a large heap of Eclipse plug-ins that aren't easy to find your way through as a new developer. The [[doc:Overview]] page has a nice overview of our sub-projects and what plug-ins belong where. This section will tell you how to get the KIELER sources. As for what plug-ins you will actually need to checkout, ask your advisor.
14 14  
15 15  {{info title="Important Hint for Users Behind Firewalls"}}
16 -Repository access via SSH runs on port 7999. For accessing the repositories in read-only mode, HTTP transfer is also possible, but not recommended.
16 +The Git protocol runs on port 9418, and SSH runs on port 22. HTTP transfer is also possible in read-only mode, but is not recommended due to its bad performance.
17 17  {{/info}}
18 18  
19 +You essentially have the choice of either checking out the KIELER sources using our project sets (preconfigured sets of plug-ins that are automatically imported into your Eclipse environment), or by selecting the plug-ins you want manually.
20 +
21 +== Checkout Using Team Project Sets ==
22 +
23 +If you need a specific subset of the KIELER plugins, select a suitable project set, copy its URL, and select //File - Import - Team - Team Project Set//. There are two versions of the project sets:
24 +
25 +* [[Project sets for the Git protocol>>url:http://rtsys.informatik.uni-kiel.de/%7Ekieler/projectsets/git/||shape="rect"]] (read-only; don't take these if you'll be actively developing KIELER code)
26 +* [[Project sets for the SSH protocol>>url:http://rtsys.informatik.uni-kiel.de/%7Ekieler/projectsets/git-ssh/||shape="rect"]]
27 +
28 +For access using the SSH protocol you first need to do steps 1 to 3 of the //manual checkout// section below.
29 +
30 +== Manual Checkout ==
31 +
19 19  Checkout of the Git repository is possible either using the SSH or the HTTP protocol. We strongly recommend using SSH; if you still want to use HTTP, omit the SSH key creation and upload in the instructions below.
20 20  
21 21  1. If you don't have an SSH key yet, you have to create one. You can do this by:\\
... ... @@ -22,7 +22,7 @@
22 22  1*. Creating one using the command {{code language="none"}}ssh-keygen{{/code}} on the command line. Simply type {{code language="none"}}ssh-keygen{{/code}}, confirm the default destination file ~~/.ssh/id_rsa, and choose whether to give a passphrase. If you have a passphrase, you need to enter it whenever you use your SSH key for the first time in a session. You can omit the passphrase, but that makes the key less secure. As result, the tool generates a private key ~~/.ssh/id_rsa, which has to be kept secret, and a public key ~~/.ssh/id_rsa.pub.
23 23  1*. Using Eclipse to generate it. You can find this function under //Preferences - General - Network Connections - SSH2 - Key Management//.
24 24  1. Register with [[Stash>>url:http://git.rtsys.informatik.uni-kiel.de||shape="rect"]] and upload your public SSH key (//Profile - SSH Keys - Add Key//).
25 -1. Copy one of the following repository URIs into the clipboard: {{code language="none"}}ssh://git@git.rtsys.informatik.uni-kiel.de:7999/KIELER/the_repo_to_clone.git{{/code}} where {{code language="none"}}the_repo_to_clone{{/code}} is either {{code language="none"}}pragmatics{{/code}} or {{code language="none"}}semantics{{/code}} (if in doubt, ask your adviser which of these you need). If you for whatever reason insist on using the less efficient HTTP protocol, use the following URI: (% class="nolink" %)http:~/~/youraccountname@git.rtsys.informatik.uni-kiel.de/scm/KIELER/the_repo_to_clone.git{{code language="none"}}{{/code}}(%%))
38 +1. Copy the repository URI into the clipboard: {{code language="none"}}ssh://git@git.rtsys.informatik.uni-kiel.de:7999/KIELER/mainline.git{{/code}} (if you insist in using HTTP: (% class="nolink" %)http:~/~/msp@git.rtsys.informatik.uni-kiel.de/scm/KIELER/mainline.git{{code language="none"}}{{/code}}(%%))
26 26  1. Open the //Git Repositories// view, right-click it, select //Paste Repository Path or URI//, select //ssh// connection protocol, //Next//, select master branch, //Next//, select destination directory (e.g. /home/<username>/shared/kieler), //Finish//. Wait for the repository to be downloaded to your computer. Note that the whole history of the repository will be stored in your local filesystem, which is pretty awesome.
27 27  1. Right-click the //Working directory// entry in the //kieler// repository, select //Import Projects//, //Next//, select the projects that you want in your workspace, //Finish.//
28 28  
... ... @@ -33,39 +33,8 @@
33 33  If you have already cloned the KIELER repository and are only looking for a way to import it into EGit, follow these steps:
34 34  
35 35  1. Click the button //Add an existing local Git Repository to this view// in the //Git Repositories// view and enter the local path.
36 -1. Import the plugin projects that you need.
49 +1. Right-click the //Working directory// entry in the added repository, select //Import Projects//, //Next//, select the projects that you want in your workspace, //Finish.//
37 37  
38 -== Importing Plugins to the Eclipse Workspace ==
39 -
40 -In the Git Repository View, perform **Right-click > Import Projects...** on the //Working directory// or //Plugins// folder. Hit //Next//. In the following dialog you can //Deselect all// and afterwards select the plugins that you need for your developing task.
41 -
42 -[[image:attach:git_repo_browser_import_plugins.png]]
43 -
44 -For example, if you want to start **KIELER with SCCharts** you need to import
45 -
46 -1. (((
47 -**all core plugins** (core.*) from the semantics and pragmatics repositories
48 -)))
49 -1. **all SCCharts plugins** (sccharts.*) from the semantics repository, **unless sccharts.prio.dependencies**,** sccharts.prio.dependencies.klighd**, **sccharts.prio.s**,** sccharts.prio.sim.s**
50 -1. **all required plugins** for the already imported ones
51 -
52 -As a result you will have the following plugin projects in your workspace:
53 -
54 -1. **From** the **pragmatics repo**: core, core.kgraph, core.kgraph.text, core.kgraph.text.ui, core.kivi, core.krendering, core.krendering.extensions, core.ui, kiml, kiml.formats, kiml.graphviz.dot, kiml.graphviz.layouter, kiml.service, kiml.ui, klay.layered, klighd, klighd.piccolo, klighd.ui, edu.umd.cs.piccolo
55 -1. **From** the **semantics repo**: core.annotations, core.annotations.edit, core.annotations.text, core.annotations.text.ui, core.kexpressions, core.kexpressions.edit, core.kexpressions.keffects, core.kexpressions.keffects.edit, core.kexpressions.keffects.ui, core.kexpressions.text, core.kexpressions.text.ui, core.kexpressions.ui, core.model, core.perspectives, core.product, kex, kex.ui, kico, kico.klighd, kico.ui, kitt, kitt.klighd, klay.layered, klighd, klighd.piccolo, klighd.ui, prom, s, s.sc, s.sim, s.sim.kivi, s.sim.sc, s.sim.sj, s.sj, s.ui, sc, sccharts, sccharts.edit, sccharts.editor, sccharts.eso, sccharts.kivi, sccharts.klighd, sccharts.prom, sccharts.s, sccharts.scg, sccharts.sim.c, sccharts.sim.s, sccharts.text, sccharts.text.ui, scg, scg.s, scl, sim.benchmark, sim.instructions, sim.kiem, sim.kiem.config, sim.kiem.ui.datacomponent, sim.kivi, sim.signals, sim.signals.ui, sim.syncsignalreset, sim.table, sjl, org.freemarker, org.json
56 -
57 -=== Troubleshooting / Resolving Plugin Dependencies ===
58 -
59 -If there are errors in your workspace, they are most likely the result of missing plugins. To solve this, check if the MANIFEST.MF file of the project has error markers. **Import missing plugin dependencies** if required.
60 -
61 -[[image:attach:resolve_missing_plugins.png]]
62 -
63 -After all dependencies are solved and there are still errors, you should clean your workspace via **Project > Clean > All projects**.
64 -
65 -If there are errors in an xtend-gen folder you can delete this folder so that the contents are re-compiled. (It sometimes happens that this folder is not deleted as part of the clean.)
66 -
67 -There should not be any errors after all required plugins are imported and compiled correctly.
68 -
69 69  = Updating the Repository =
70 70  
71 71  Your working copy must be clean before you can merge any updates into it. Therefore, always commit your changes locally before you pull. If you don't want to commit them into the master branch, commit them into a new branch. Note that pulling is the same as fetching remote changes and merging them into your local branch. Since a normal merge operation is involved, this can lead to conflicts, which need to be resolved as described below. Note that pulling always merges the remote changes into your current branch. If that's not what you want, checkout the correct branch first or just do a //fetch//.
... ... @@ -176,6 +176,6 @@
176 176  
177 177  = Working With Multiple Remote Repositories =
178 178  
179 -Stash allows the creation of personal server-side clones of the KIELER repository, which is highly encouraged as described on the [[doc:Source Code Management]] page. When working with such clones, it is often necessary to synchronize the different server-side repositories with the local one. Git supports this by allowing to configure multiple //remotes// in the local repository. On the command line this is done simply by entering git remote add <name> <url>, where <name> is an arbitrary local identifier for the remote repository. For example, a remote named origin is automatically created when a local repository clone is created through git clone <url>.
161 +Gitorious allows the creation of personal server-side clones of the KIELER repository, which is highly encouraged as described on the [[doc:Source Code Management]] page. When working with such clones, it is often necessary to synchronize the different server-side repositories with the local one. Git supports this by allowing to configure multiple //remotes// in the local repository. On the command line this is done simply by entering git remote add <name> <url>, where <name> is an arbitrary local identifier for the remote repository. For example, a remote named origin is automatically created when a local repository clone is created through git clone <url>.
180 180  
181 -When you push or pull branches, simply select the remote you wish to interfere with. Pulling is done by {{code language="none"}}git pull <remote> <branch>{{/code}}, and pushing is done by {{code language="none"}}git push <remote> <branch>{{/code}}.
163 +When you push or pull branches, simply select the remote you wish to interfere with. Pulling is done by git pull <remote> <branch>, and pushing is done by git push <remote> <branch>.
Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -13763593
1 +3604608
URL
... ... @@ -1,1 +1,1 @@
1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/13763593/Using Git
1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/3604608/Using Git