Skip to content
Browse files

Fixed some typos; linked to merge review docs.

  • Loading branch information...
1 parent 071661a commit 7713372c2551dc58eb97b62b575b77d55a4752b7 @chromatic chromatic committed Dec 11, 2010
Showing with 39 additions and 38 deletions.
  1. +39 −38 docs/project/git_workflow.pod
View
77 docs/project/git_workflow.pod
@@ -8,19 +8,19 @@ docs/project/git_workflow.pod - How to use Git to work on Parrot
To minimize the disruption of feature development on language and tool
developers, all major changes to Parrot core take place in a branch. Ideally,
-branches are short-lived, and contain the smallest set of changes possible.
-It is also good practice to have "atomic" commits, in the sense that each
-commit does one thing, so that it makes it easier to accept/revert some
-things while keeping others. Git provides many powerful tools in the
-maintainence of branches. This document aims to provide everything a Parrot
-developer needs to know about Git to successfully create a branch, work on
-it, keep it in sync with changes on master and finally merge the branch.
+branches are short-lived, and contain the smallest set of changes possible. It
+is also good practice to have "atomic" commits, in the sense that each commit
+does one thing, so that it makes it easier to accept/revert some things while
+keeping others. Git provides many powerful tools in the maintenance of
+branches. This document aims to provide everything a Parrot developer needs to
+know about Git to successfully create a branch, work on it, keep it in sync
+with changes on master and finally merge the branch.
=head2 Cloning the Git Repository
-To get the full version history Parrot, which is called "cloning a repository",
-you will use the C<git clone> command. This will show how to clone the repo from
-L<http://github.com> :
+To get the full version history of Parrot, which is called "cloning a
+repository", you will use the C<git clone> command. This will show how to clone
+the repo from L<http://github.com>:
git clone git://github.com/parrot/parrot.git
@@ -60,8 +60,8 @@ branch:
git checkout username/foo
-If you would like to checkout a branch that already exists, first make sure
-to get the lastest commits with:
+If you would like to checkout a branch that already exists, first make sure to
+get the latest commits with:
git fetch
@@ -119,9 +119,9 @@ or other branches.
=head2 How to commit
-Let's say you modified the file foo.c and added the file bar.c and you want to commit
-these changes. To add these changes to the staging area (the list of stuff
-that will be included in your next commit) :
+Let's say you modified the file foo.c and added the file bar.c and you want to
+commit these changes. To add these changes to the staging area (the list of
+stuff that will be included in your next commit):
git add foo.c bar.c
@@ -133,14 +133,14 @@ the --force flag:
git add --force ports/foo
-NOTE: Make sure these files should actually be added. Most files in .gitignore should
-never be added, but some, such as some files in "ports/" will need need the --force
-flag.
+NOTE: Make sure these files should actually be added. Most files in .gitignore
+should never be added, but some, such as some files in "ports/" will need need
+the --force flag.
-Now for actually creating your commit! Since Git is a distributed version control
-system, committing code is seperate from sending your changes to a remote server.
-Keep this in mind if you are used to Subversion or similar VCS's, where committing
-and sending changes are tied together.
+Now for actually creating your commit! Since Git is a distributed version
+control system, committing code is separate from sending your changes to a
+remote server. Keep this in mind if you are used to Subversion or similar
+VCS's, where committing and sending changes are tied together.
git commit -m "This is an awesome and detailed commit message"
@@ -177,21 +177,23 @@ To update your local git index from origin:
git fetch
-If you are following multiple remotes, you can fetch updates from all of them with
+If you are following multiple remotes, you can fetch updates from all of them
+with:
git fetch --all
Note that this command requires a recent (1.7.x.x) version of git.
-The command C<git fetch> only modifies the index, not your working copy or staging
-area. To update your working copy of the branch bobby/tables
+The command C<git fetch> only modifies the index, not your working copy or
+staging area. To update your working copy of the branch bobby/tables:
git checkout bobby/tables # make sure we are on the branch
git rebase origin/bobby/tables # get the latest sql injections
-If you have a topic branch and want to pick up the most recent changes in master
-since the topic branch diverged, you can merge the master branch into the topic
-branch. In this case, we assume the topic branch is called parrot/beak:
+If you have a topic branch and want to pick up the most recent changes in
+master since the topic branch diverged, you can merge the master branch into
+the topic branch. In this case, we assume the topic branch is called
+parrot/beak:
git checkout parrot/beak # make sure we are on the branch
git merge master # merge master into parrot/beak
@@ -202,7 +204,8 @@ branch.
=head2 Preparing to Merge a Branch
Post to parrot-dev@lists.parrot.org letting people know that you're about to
-merge a branch.
+merge a branch. Follow the guidelines in
+L<docs/project/merge_review_guidelines.pod>, especially:
=over
@@ -231,7 +234,7 @@ want tested.
=head2 Merging a Branch
When you're ready to merge your changes back into master, use the C<git merge>
-command. First, make sure you are on the master branch with
+command. First, make sure you are on the master branch with:
git checkout master
@@ -262,7 +265,7 @@ and mention the branch.
Why use "--no-ff" ? This flag mean "no fast forwards". Usually fast forwards
are good, but if there is a branch that has all the commits of master, plus
a few more, when you merge without --no-ff, there will be no merge commit.
-Git is smart enought to "fast forward." But for the purpose of looking at
+Git is smart enough to "fast forward." But for the purpose of looking at
history, Parrot would like to always have a merge commit for a merge, even
if it *could* be fast-forwarded.
@@ -336,7 +339,6 @@ pull request, since adding Signed-Off-By lines changes
the SHA1's which Github uses to automatically close
pull requests.
-
=head2 Announcing a Merge
Send a message to parrot-dev@lists.parrot.org letting people know that your
@@ -350,24 +352,23 @@ before merging but couldn't get any response from the responsible person, you
may want to include some warning in the announcement that you weren't able to
test that piece fully.
-
=head2 Deleting a Branch
-After merging a branch, you will have a local copy of the merged branch, as well
-as a copy of the branch on your remote. To remove the local branch:
+After merging a branch, you will have a local copy of the merged branch, as
+well as a copy of the branch on your remote. To remove the local branch:
git branch -d user/foo
-To remove the remote branch user/foo on the remote origin :
+To remove the remote branch user/foo on the remote origin:
git push origin :user/foo
This follows the general pattern of
git push origin local_branch_name:remote_branch_name
-When local_branch_name is empty, you are pushing "nothing" to the remote branch,
-which deletes it.
+When local_branch_name is empty, you are pushing "nothing" to the remote
+branch, which deletes it.
=cut

0 comments on commit 7713372

Please sign in to comment.
Something went wrong with that request. Please try again.