...
- MySQL Windows installation instructions
- MySQL Workbench - GUI tool for interacting with the MySQL database
...
Git
For general SVN info see the SVN bookGit info see the Git page. Or maybe you're interested in our Git Workflow instead.
Moving files and directories
The eclipse plugin for svn generally does a decent job Git is pretty smart about moving files and directories. See also http://svnbook.red-bean.com/en/1.1/re18.html
Here is an example:
- You can see that there is a "deleted" file here but it was actually "svn moved" http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common
- Old filename http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common/TestHelpers.java#r9
- New filename http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common/Helpers.java#r41
- You can see that the full svn history is shown on each page.
svn gets really upset though when you do more complicated things like created a file, delete that file, then make a directory with the same name in the same location as the deleted file. (but that is a pretty odd thing to do anyway)
When in doubt, make a developer branch and try it there first.http://svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.1
Developer branches
Want to make a drastic change and run it by the team before merging it to trunk? Want to check in broken code? Make a branch and do it there.
Resources
- SVN branch documentation http://svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.1
- svnmerge.py Documentation http://www.orcaware.com/svn/wiki/Svnmerge.py
- Rationale http://kenkinder.com/subversion-merge-tracking-with-svnmerge/
- the
svn switch
command is handy to change the branch for your local checked out copy of code
How to Set Up Merge Tracking
- Download svnmerge.py
Make a branch directory for yourself (you'll only need to do this once)
Code Block svn mkdir https://sagebionetworks.jira.com/svn/PLFM/branches/deflaux
Make a new branch from trunk
Code Block svn copy https://sagebionetworks.jira.com/svn/PLFM/trunk https://sagebionetworks.jira.com/svn/PLFM/branches/deflaux/automatedIntegrationTesting
Have both trunk and your new branch on your local hard drive, this assumes you already have trunk checked out in directory ~/platform
Code Block cd ~/platform svn update trunk svn checkout https://sagebionetworks.jira.com/svn/PLFM/branches/deflaux/automatedIntegrationTesting
Initialize merge tracking
Code Block cd trunk svnmerge.py init ../automatedIntegrationTesting svn commit -F svnmerge-commit-message.txt cd ../automatedIntegrationTesting svnmerge.py init ../trunk svn commit -F svnmerge-commit-message.txt
Alternative: Initialize merge tracking and switch to your new branch
Code Block |
---|
cd trunk
svnmerge.py init https://sagebionetworks.jira.com/svn/PLFM/branches/deflaux/sts
svn commit -F svnmerge-commit-message.txt
svn switch https://sagebionetworks.jira.com/svn/PLFM/branches/deflaux/sts
svnmerge.py init https://sagebionetworks.jira.com/svn/PLFM/trunk
svn commit -F svnmerge-commit-message.txt
|
How to merge
Merge from trunk to your branch
Best Practice: merge changes from trunk to your branch every morning Monday through Friday. This reduces the pain later when you want to merge from your branch to trunk.
- Ensure the branch is working and committed to SVN.
To see what changes and/or branches are available for importing, use this command from the branch distribution:
Code Block python svnmerge.py avail -l
- Windows Users: One of the results should be '/PLFM/trunk'.
- import the changes from trunk into the branch:
to merge all changes
Code Block python svnmerge.py merge -S /PLFM/trunk
to merge one or more particular changes
Code Block python svnmerge.py merge -r #,#,# -S /PLFM/trunk
Resolve conflicts, compile, test and commit EVERYTHING in the branch.
Code Block svn ci -F svnmerge-commit-message.txt
Merge from your branch to trunk
...
Use the following command to find the revision(s) of interest:
Code Block |
---|
python svnmerge.py avail -S <your branch>
|
...
For all changes
Code Block python svnmerge.py merge -S <your branch>
For particular changes
Code Block python svnmerge.py merge -r <your revisions comma separated> -S <your branch>
...
It can even detect that you've renamed a file without you having to tell it so explicitly. Basically, you shouldn't have problems. If you do, write about the solution you found here.
Developer branches
Bottom line. They're easy in git, so USE THEM! For more info see the Git page for resources.
Tools To Know About
Pretty-Print JSON
...