--
FW/1 on RIAForge: http://fw1.riaforge.org/
FW/1 on github: http://github.com/seancorfield/fw1
FW/1 on Google Groups: http://groups.google.com/group/framework-one
You should blog this as an example to everyone in the CF community using git!
Sean
My only additional recommendation is to look into the "git rebase"
command instead of doing a "git merge" if you are working on feature
branches (it seems to streamline the commits better).
I dont think I can do as good a job as you have done in describing
this process but here is a resource that does a pretty good job of
describing the procedure:
http://wiki.github.com/ginatrapani/thinktank/developer-guide-get-the-source-code-from-github-and-keep-it-updated
In a nutshell:
1. Fork on GitHub (click Fork button)
2. Clone to computer ($ git clone git @ github.com:YOU/fw1.git )
3. Set up remote upstream ($ git remote add upstream
git://github.com/seancorfield/fw1.git)
4. Branch for new issue ($ git branch 100-new-feature;git checkout
100-new-feature)
5. Develop on issue branch. [Time passes, the originating FW/1
repository accumulates new commits]
6. Fetch upstream ($ git fetch upstream)
7. Rebase master ($ git checkout master; git rebase upstream)
8. Rebase issue branch ($ git checkout 100-new-feature; git rebase master)
9. Repeat steps 5-9 till dev is complete
10. Branch from dev branch to release candidate branch ($ git checkout
100-new-feature;git branch 100-new-feature-rc;git checkout
100-new-feature-rc)
11. Squash multiple commits into clean, descriptive tree ($ git rebase
-i HEAD~5)
12. Push RC branch to GitHub ($ git push origin 100-new-feature-rc)
13. Issue pull request (Click Pull Request button)
I haven't really had many conflicts while merging/rebasing yet, so I
can't be sure on what the best approach is. I have been following the
ThinkUp project for a while, so I picked up a lot of Git tips from
there over the past year.
To answer your question, I was still thinking of pulling in a feature
into the "master" branch of your repo (on Github) and then sending the
pull request to Sean. I wasn’t really thinking of using Git rebase to
squash commits (as Bob Silverberg has done) but it does make the final
merge of the feature branch easier. I also haven't used the "git pull
--rebase". I was specifically referring to using git rebase to bring
your feature branch current and up-to-date with the "master" branch.
Pardon me if I have further confused the issue. I just wanted to
highlight that the rebase command is worth looking into.
Thanks,
Eapen.
Just a heads up - I've mentioned this before but I want to remind
people again...
Once 1.2 goes gold, I will restructure the git repo a bit:
* I'll tag v1.2 (as I've done for 1.0, 1.1 etc)
* I'll branch to create a release-1.3 branch for maintenance and a
migration release at some future point
* I'll branch to create a develop branch for 2.0 development (be
warned: lots of churn as this will be almost a full rewrite)
* master will remain 1.2 until 1.3 hits and will remain 1.3 until 2.0 hits
* I'll create hotfix branches as needed for any critical bug fixes for
the 'current' version (hopefully very few of these)
I will support 1.2 until 1.3 is available. I'll support 1.3 and 2.0 in
parallel for about a year (making a branch for v1.3 hotfixes if
needed).
So, post-1.2, the repo will contain:
* master (1.2, inviolate except for hotfixes)
* release-1.3 (evolving into v1.3)
* develop (the 2.0 all-script rewrite)
--
Sean A Corfield -- (904) 302-SEAN
Railo Technologies, Inc. -- http://getrailo.com/
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
I was specifically referring to using git rebase to bringyour feature branch current and up-to-date with the "master" branch.
Pardon me if I have further confused the issue. I just wanted to
highlight that the rebase command is worth looking into.
I meant to add this link when I posted that info about future git structures:
http://nvie.com/git-model