wiki/howto/onboarding.md
... ...
@@ -12,7 +12,7 @@ First of all, make sure you've looked at http://www.amazon.de/Patterns-Elements-
12 12
2. Eclipse Extensions
13 13
* Install GWT Eclipse plugin for Eclipse (https://github.com/gwt-plugins/gwt-eclipse-plugin/tree/gpe-fork using http://storage.googleapis.com/gwt-eclipse-plugin/release as the update site URL)
14 14
* Install Eclipse debugger for GWT SuperDevMode (master version: http://p2.sapsailing.com/p2/sdbg; public release: http://sdbg.github.io/p2)
15
-3. Git (e.g. msysGit for Windows v2.9.2), http://git-scm.com
15
+3. Git (e.g. Git for Windows v2.12.2), http://git-scm.com / https://git-for-windows.github.io/
16 16
4. MongoDB (e.g. Production Release 2.6.7), download: http://www.mongodb.org/
17 17
5. RabbitMQ, download from http://www.rabbitmq.com/. Requires Erlang to be installed. RabbitMQ installer will assist in installing Erlang.
18 18
6. JDK 1.7 (Java SE 7), http://jdk7.java.net
... ...
@@ -95,6 +95,12 @@ Be aware hat the installation may take several minutes depending on your Interne
95 95
* For TracTrac Events: (Date 27.11.2012) Use Live URI tcp://10.18.22.156:4412, Stored URI tcp://10.18.22.156:4413, JSON URL http://germanmaster.traclive.dk/events/event_20120905_erEuropean/jsonservice.php
96 96
* Press List Races
97 97
98
+#### Git repository configuration essentials
99
+
100
+The project has some configuration of line endings for specific file types in ".gitattributes". To make this work as intended, you need to set the git attribute "core.autocrlf" to "false". This can be done by navigating to your local repository in a Bach/Git Bach/Cygwin instance and executing the command `git config core.autocrlf false`.
101
+
102
+If you are first time git user, don't forget to specify your user metadata. Use the commands `git config user.name "My Name"` and `git config user.email my.email@sap.com` to tell git your name and email address.
103
+
98 104
#### Maven Setup
99 105
Copy the settings.xml **and** the toolchains.xml from the top-level git folder to your ~/.m2 directory. Adjust the proxy settings in settings.xml accordingly (suggested settings for corporate network inside). Set the paths inside of toolchains.xml to your JDKs depending on where you installed them (this is like setting the compiler for your IDE, but for Maven; This makes it possible to build with the same Maven configuration on every system). Make sure the mvn executable you installed above is in your path. Open a shell (preferrably a git bash or a cygwin bash), cd to the git workspace's root folder and issue "./configuration/buildAndUpdateProduct.sh build". This should build the software and run all the tests. If you want to avoid the tests being executed, use the -t option. If you only want to build one GWT permutation (Chrome/English), use the -b option. When inside the SAP VPN, add the -p option for proxy use. Run the build script without arguments to get usage hints.
100 106
... ...
@@ -102,6 +108,16 @@ Copy the settings.xml **and** the toolchains.xml from the top-level git folder t
102 108
- Configure Eclipse to use Chrome or Firefox as the default browser
103 109
- Install the GWT Browser Plugin for the GWT Development mode <del>(Chrome or Firefox; as of this writing (2013-11-05), Firefox is the only platform where the plug-in runs stably)</del> (As of 2016-08-31 Firefox is the only browser supporting the GWT plugin, you have to download Firefox version 24 for it to work)
104 110
111
+#### Git usage troubleshooting
112
+
113
+There are some inconsistencies regarding line endings (unix vs windows) in our git repository. There is a configuration named ".gitattributes" committed to the root folder of the repository that helps to prevent inconsistencies of line endings when committing files. Files that existed before are partially using unix (LF) or windows (CRLF) line endings. When committing files, git will ensure unix line endings for e.g. *.java files. This can lead to big diffs that hurt when trying to merge/diff.
114
+
115
+When merging branches that potentially have conflicts regarding line endings, you can specifically parameterize the git command line to not produce a big bunch of conflicts. Using the parameter `-Xignore-space-at-eol` while doing a merge will drastically reduce such conflicts. Using this, the commandline to merge "master" into your current branch is `git merge -Xignore-space-at-eol master`.
116
+
117
+In cases where code was reformatted, you can also ignore all whitespace changes by using the parameter `-Xignore-space-change`.
118
+
119
+When doing a diff, you can also use the parameters `--ignore-space-at-eol` and `--ignore-space-change`.
120
+
105 121
#### Additional steps required for Android projects
106 122
107 123
To ensure that all components of the Analysis Suite are working, you should also import all Android projects (mobile/) into your workspace. There are some additional requirements to enable the build process of these projects.