Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "E4/Git"
(→Current Repos) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
Some resources: | Some resources: | ||
Line 8: | Line 4: | ||
* Pro Git - http://progit.org/book/ | * Pro Git - http://progit.org/book/ | ||
* Git tutorial http://www.vogella.de/articles/Git/article.html | * Git tutorial http://www.vogella.de/articles/Git/article.html | ||
+ | * [[Platform-releng/Git Workflows]] | ||
== Git in e4 == | == Git in e4 == | ||
Line 15: | Line 12: | ||
=== Current Repos === | === Current Repos === | ||
− | + | See them at [http://git.eclipse.org/c/e4/ http://git.eclipse.org/c/e4/]. | |
− | + | ||
− | + | ||
− | + | ||
A repo then follows our standard subdir convention: | A repo then follows our standard subdir convention: | ||
Line 24: | Line 18: | ||
* features | * features | ||
* examples | * examples | ||
+ | * releng | ||
* tests | * tests | ||
Line 38: | Line 33: | ||
# git clone ssh://pwebster@git.eclipse.org/gitroot/e4/component.id.git | # git clone ssh://pwebster@git.eclipse.org/gitroot/e4/component.id.git | ||
# cd component.id | # cd component.id | ||
− | # mkdir bundles features examples tests | + | # mkdir bundles features examples releng tests |
# add a useful .gitignore. See below | # add a useful .gitignore. See below | ||
# copy in your plugins into bundles, features into features, test plugins into tests, etc | # copy in your plugins into bundles, features into features, test plugins into tests, etc | ||
Line 55: | Line 50: | ||
*.rej | *.rej | ||
*.bak | *.bak | ||
+ | javacore.* | ||
+ | heapdump.* | ||
+ | core.* | ||
+ | Snap.* | ||
− | + | Our git repos no longer use the map files. | |
− | + | ||
− | + | ||
=== Submitting for a build === | === Submitting for a build === | ||
<blockquote>''Note:'' We have a policy that all commits have the associated bug number. Usually our format is: "Bug <number> - <bug title>" and then any specific comments after the title or on the next line. It's important that we only list 1 bug # per line, and at the beginning of the line. A line with "bug #" or "Bug #" without the title is also acceptable. <br> </blockquote> | <blockquote>''Note:'' We have a policy that all commits have the associated bug number. Usually our format is: "Bug <number> - <bug title>" and then any specific comments after the title or on the next line. It's important that we only list 1 bug # per line, and at the beginning of the line. A line with "bug #" or "Bug #" without the title is also acceptable. <br> </blockquote> | ||
+ | |||
+ | |||
+ | '''This information is now available for legacy information''', as we use "auto-tagging" of the '''master''' branch to submit changes to the build. | ||
+ | |||
We have 2 scripts used for submitting for the build. One to update the map files, and one to generate the submission report for our mailing list e4-dev@eclipse.org | We have 2 scripts used for submitting for the build. One to update the map files, and one to generate the submission report for our mailing list e4-dev@eclipse.org | ||
+ | |||
[http://dev.eclipse.org/viewcvs/index.cgi/e4/releng/org.eclipse.e4.builder/scripts/git-map.sh?view=co&content-type=text/plain git-map.sh] is used to update the map files.The output is a set of commands which should be captured, reviewed and then executed to update the map files.<br> | [http://dev.eclipse.org/viewcvs/index.cgi/e4/releng/org.eclipse.e4.builder/scripts/git-map.sh?view=co&content-type=text/plain git-map.sh] is used to update the map files.The output is a set of commands which should be captured, reviewed and then executed to update the map files.<br> |
Latest revision as of 12:25, 20 June 2014
Some resources:
- Git - http://git-scm.com/
- Pro Git - http://progit.org/book/
- Git tutorial http://www.vogella.de/articles/Git/article.html
- Platform-releng/Git Workflows
Git in e4
We have a place in e4 for git repositories.
Current Repos
See them at http://git.eclipse.org/c/e4/.
A repo then follows our standard subdir convention:
- bundles
- features
- examples
- releng
- tests
When creating a repo on the server, follow these steps (Please update them if there are better steps :-)
- log into git.eclipse.org
- cd /gitroot/e4
- mkdir component.id.git # ex: mkdir org.eclipse.e4.search.git
- cd component.id.git
- git init --bare
This creates a bare repo that can be cloned. Then on your work machine
- git clone ssh://pwebster@git.eclipse.org/gitroot/e4/component.id.git
- cd component.id
- mkdir bundles features examples releng tests
- add a useful .gitignore. See below
- copy in your plugins into bundles, features into features, test plugins into tests, etc
- add all of your files: git add -A
- commit them with a useful commit message
- add 2 tags. One will be initial-import. The other should be a time tag, like v20101124-0800
- I split the next step up into 2:
- git push origin master
- git push --tags origin
Example .gitignore
bin/ *~ *.rej *.bak javacore.* heapdump.* core.* Snap.*
Our git repos no longer use the map files.
Submitting for a build
Note: We have a policy that all commits have the associated bug number. Usually our format is: "Bug <number> - <bug title>" and then any specific comments after the title or on the next line. It's important that we only list 1 bug # per line, and at the beginning of the line. A line with "bug #" or "Bug #" without the title is also acceptable.
This information is now available for legacy information, as we use "auto-tagging" of the master branch to submit changes to the build.
We have 2 scripts used for submitting for the build. One to update the map files, and one to generate the submission report for our mailing list e4-dev@eclipse.org
git-map.sh is used to update the map files.The output is a set of commands which should be captured, reviewed and then executed to update the map files.
git-submission.sh is used to generate a build submission report. The last command output by git-map.sh will be a call to git-submission.sh saving the output to "report.txt".
When submitting for a build, the git repository clones should be checked out on the branch you wish to tag.
The git-map.sh takes the following arguments:
git-map.sh repoRoot relengRoot repoUrl [repoUrl]*
- repoRoot: an absolute path to a folder containing cloned git repositories
- relengRoot: an absolute path to the releng project containing the map files
- repoUrl - git repository URLs to tag
The script performs the following steps:
- Find all the map files under relengRoot
- For each map file, find all entries containing "repo=repoUrl" where repoUrl is one of the passed in git repositories
- For each git map file entry, find the corresponding project under the git repository clone under repoRoot.
- Check if the last commit in the project has the current tag from the map file, if not tag and output a command to update the map file
For example, consider a git repository git://git.eclipse.org/gitroot/org.eclipse.e4.deeplink.git. If repoRoot=/eclipse/git then the script expects a subfolder /eclipse/git/org.eclipse.e4.deeplink which is a clone of this repository. The releng map files are under /eclipse/workspace/e4-releng. The command line to invoke git-map.sh would be:
repoRoot: /eclipse/git /eclipse/git/org.eclipse.e4.deeplink #deeplink clone /eclipse/git/org.eclipse.e4.search #search clone relengRoot: /eclipse/workspace/e4-releng #project containing map files /eclipse/workspace/e4-releng/org.eclipse.e4.deeplink.releng/maps/deeplink.map /eclipse/workspace/e4-releng/org.eclipse.e4.search.releng/maps/search.map /bin/bash git-map.sh /eclipse/git \ /eclipse/workspace/e4-releng \ git://git.eclipse.org/gitroot/e4/org.eclipse.e4.deeplink.git \ git://git.eclipse.org/gitroot/e4/org.eclipse.e4.search.git > maps.txt more maps.txt #examine maps.txt grep -v ^OK maps.txt | grep -v ^Executed > run.txt #filter out status lines to create a runnable script /bin/bash run.txt #run the commands, the last command is a call to git-submission.sh more report.txt #examine submission report
The script does not commit the map file changes. The map files should be reviewed and manually commited.