Difference between revisions of "E4/Git"
(→Submitting for a build)
|Line 105:||Line 105:|
more report.txt #examine submission report
more report.txt #examine submission report
Revision as of 16:50, 12 August 2011
For working in git lately I've been using the latest eGit. Functionality has been increasing week over week, so I just use their latest nightly:
Git in e4
We have a place in e4 for git repositories.
A repo then follows our standard subdir convention:
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://firstname.lastname@example.org/gitroot/e4/component.id.git
- cd component.id
- mkdir bundles features examples 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
bin/ *~ *.rej *.bak
We build our git repos still using map files, checked into CVS in the /cvsroot/eclipse e4/releng module. You can generate a default map file for your initial commit from your repo root using git-gen-map.sh. ex:
/bin/bash git-gen-map.sh git://git.eclipse.org/gitroot/e4/org.eclipse.e4.search.git v20101124-0800 bundles tests features
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.
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 email@example.com
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 > run.txt more run.txt #examine run.txt /bin/bash run.txt more report.txt #examine submission report
The script does not commit the map file changes. The map files should be reviewed and manually commited.