wiki:DeveloperGuidelines/Git

Version 1 (modified by Fran Boon, 10 years ago) ( diff )

--

Git

Sahana Eden has decided to move from Bzr/LaunchPad to Git/GitHub

Why?

  • The current repository is huge & bloated, taking too long to download.
  • Even simple changes take an age to Pull down to servers
  • Web2py no longer supports Bzr/LaunchPad, so we want to be able to maintain a common tool to work with both repositories.
  • New developers are likely to be more familiar with Git/GitHub

How?

The preferred approach is to have a clean repository, in order to get the maximum benefit from the migration...although it is technically possible to migrate the commit history. Commit History will instead be maintained on the LaunchPad site as an archive

Migrating Branches

Fork on GitHub: https://github.com/flavour/eden/fork_select

mv eden <mybranch>
git clone git@github.com:<mygitusername>/eden.git
cd eden
diff -u ../<mybranch> > ../mybranch.diff
patch -p0 < ../mybranch.diff
git commit -a
git push origin master
git remote add upstream git://github.com/flavour/eden.git

Developer Workflow

We suggest adopting the Story Branch pattern, which allows squashing commits in order to keep the main origin

cd <mybranch>

Developer Configuration

git config --global user.name "Your Name"
git config --global user.email your@email.com
git config --global github.user yourgithubusername
git config --global github.token yourtoken
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
git config --global merge.tool diffmerge
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'C:/Program Files (x86)/Git/etc/wrappers/git-diff-diffmerge-wrapper.sh' "$LOCAL" "$REMOTE"
git config --global difftool.prompt false
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'C:/Program Files (x86)/Git/etc/wrappers/git-merge-diffmerge-wrapper.sh' "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE" "$PWD/$MERGED"
git config --global mergetool.prompt false
git config --global mergetool.trustExitCode false
git config --global mergetool.keepBackup false

Windows

Install Console & Diffmerge & configure Powershell.

Developer Tools

Pre-commit hook to update VERSION (& run tests?), e.g. based on http://tech.yipit.com/2011/11/16/183772396/

Resources

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.