Get git
Windows
http://code.google.com/p/msysgit/
Linux
Code Block | ||||
---|---|---|---|---|
| ||||
$ sudo apt-get install git-core
|
Essential git commands
checkout, branch, clone, remote, rebase
Initial Simplified Sprinting Workflow
Fork https://github.com/openpentaho/Recipes to your Github account.
Clone to local directory
git clone YOUR_FORK_URL
Configure your "origin" remote to pull from the openpentaho repository, yet push to your fork.
git remote set-url origin git@github.com:openpentaho/Recipes.git
git remote set-url --push origin YOUR_FORK_URL
Go ahead and do your work in the "master" branch
Make some changes to the Margarita recipe, add a new one, whatever. Add the changes and commit
git commit -a -m "My Awesome Commit Message"
Refresh "master" with latest changes from upstream
git pull --rebase
Push your changes up to your github location
git push
Issue pull request for your work from within github
When notified that your pull request has been processed do the following:
Refresh "master" with lastest changes:
git pull --rebase
Github
fork
...
Git Configurations
Here are some suggested tweaks you can make to the base git configuration.
Code Block | ||
---|---|---|
| ||
[alias]
ci = commit
st = status
br = branch
co = checkout
df = diff
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
[core]
# WINDOWS
# autocrlf = true
# Mac or Linux
autocrlf = input
|
Developing for Pentaho with Git
Pentaho is in the process of migrating all active projects from Subversion to Git hosted on GitHub.com. You can track which projects have been migrated, see their old and new locations at Git Migration List
Tips and tricks
Avoid the issue where you have modified files that you don't want to prevent you from "pull"'ing in new code.
Thanks to Tim Kafalas for this one
Git detects .classpath as local changes and will not allow a “pull” while these changes are present in your working folder. One way to get around this is to stash the local changes, do the pull, then pop the stash. There is another way, however, that will not stress out Eclipse with a re-index.
By default, Git uses a bit in git metadata to determine if a file has changed. This is much more efficient than actually comparing the contents of the file.
The command…
Code Block |
---|
git update-index --assume-unchanged {myClassPathFile}
|
… will reset that bit so that it looks like the file is unchanged. So if you issue this command for each classpath file you should never have to stash them again.
This bit can be changed in Egit by selecting Team -> Advanced -> Assume Unchanged on the file in question.
Note that this setting will “stick” until turned off manually, or until you re-clone the repository. So don’t use it on files you have changed but don’t want to commit yet, unless you are prepared to manually set the bit afterword.
Ignore whitespace when viewing pull requests on github
Github easter egg: add ?w=0 to diff URLs (eg a commit, compare view or pull request) to ignore whitespace
Good article on pull request best practices:
http://codeinthehole.com/writing/pull-requests-and-other-good-practices-for-teams-using-github/
Get Git
Follow the instructions for your environment here:
http://git-scm.com/
git-completion
For the linux/mac users, there is a nice script available called git-completion that provides auto-completion of git commands, branch names and other helpful things. It also provides a way to display the active branch on your commandline prompt.
Download the appropriate git-completion script (https://github.com/git/git/tree/master/contrib/completion) and put it in your ~/bin folder. Then source this file in your .profile or .bash-profile. To add the active git branch to your prompt, set your PS1 setting (for the display prompt on a terminal) to something like this:
Code Block |
---|
PS1='[\u@\h \w$(__git_ps1 " (%s)")]\$ '
|
Sign-up for a GitHub account.
Accessing Pentaho code hosted on GitHub
All projects migrated to Git are hosted on the Pentaho organization: https://github.com/pentaho
Contributing code
Pentaho has no special procedures for working with our GitHub repositories. Follow the general workflow and instruction on GitHub:
https://help.github.com/
When you're ready to submit code with a Pull Request, create a Jira case and use the case number in your commit messages, e.g. "[JIRA-1234] adding new functionality". When submitted update the Jira case with a link to the pull request on GitHub.
Advanced Topics
Advanced Git Topics - Preferred workflow, get yourself out of git trouble, and other cool stuff