From: Junio C Hamano <junkio@cox.net>
To: Linus Torvalds <torvalds@osdl.org>
Cc: git@vger.kernel.org
Subject: [PATCH] Documentation: update recommended workflow when working with others.
Date: Fri, 15 Jul 2005 20:56:12 -0700 [thread overview]
Message-ID: <7vslyfo143.fsf@assigned-by-dhcp.cox.net> (raw)
Clarify that the hierarchy implied by the recommended workflow
is only informal.
Refer readers to nice illustration by Rundy Dunlap.
Separate out the step to "push" to own public repository in the
workflow.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
Documentation/tutorial.txt | 65 ++++++++++++++++++++++++++++++--------------
1 files changed, 44 insertions(+), 21 deletions(-)
70a7f8c18de2006a500059f3cb23d353250d0a9d
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -967,7 +967,19 @@ unpacked in the destination, unless rsyn
Working with Others
-------------------
-A recommended work cycle for a "project lead" is like this:
+Although git is a truly distributed system, it is often
+convenient to organize your project with an informal hierarchy
+of developers. Linux kernel development is run this way. There
+is a nice illustration (page 17, "Merges to Mainline") in Rundy
+Dunlap's presentation (http://tinyurl.com/a2jdg).
+
+It should be stressed that this hierarchy is purely "informal".
+There is nothing fundamental in git that enforces the "chain of
+patch flow" this hierarchy implies. You do not have to pull
+from only one remote repository.
+
+
+A recommended workflow for a "project lead" goes like this:
(1) Prepare your primary repository on your local machine. Your
work is done there.
@@ -978,23 +990,28 @@ A recommended work cycle for a "project
repository.
(4) "git repack" the public repository. This establishes a big
- pack that contains the initial set of objects.
-
- (5) Keep working in your primary repository, and push your
- changes to the public repository. Your changes include
- your own, patches you receive via e-mail, and merge resulting
- from pulling the "public" repositories of your "subsystem
- maintainers".
+ pack that contains the initial set of objects as the
+ baseline, and possibly "git prune-packed" if the transport
+ used for pulling from your repository supports packed
+ repositories.
+
+ (5) Keep working in your primary repository. Your changes
+ include modifications of your own, patches you receive via
+ e-mails, and merges resulting from pulling the "public"
+ repositories of your "subsystem maintainers".
You can repack this private repository whenever you feel
like.
- (6) Every once in a while, "git repack" the public repository.
+ (6) Push your changes to the public repository, and announce it
+ to the public.
+
+ (7) Every once in a while, "git repack" the public repository.
Go back to step (5) and continue working.
-A recommended work cycle for a "subsystem maintainer" that
-works on that project and has own "public repository" is like
-this:
+
+A recommended work cycle for a "subsystem maintainer" that works
+on that project and has own "public repository" goes like this:
(1) Prepare your work repository, by "git clone" the public
repository of the "project lead".
@@ -1006,21 +1023,27 @@ this:
currently not automated.
(4) Push into the public repository from your primary
- repository.
-
- (5) Keep working in your primary repository, and push your
- changes to your public repository, and ask your "project
- lead" to pull from it. Your changes include your own,
- patches you receive via e-mail, and merge resulting from
- pulling the "public" repositories of your "project lead"
- and possibly your "sub-subsystem maintainers".
+ repository. Run "git repack" (and possibly "git
+ prune-packed" if the transport used for pulling from your
+ repository supports packed repositories.
+
+ (5) Keep working in your primary repository. Your changes
+ include modifications of your own, patches you receive via
+ e-mails, and merges resulting from pulling the "public"
+ repositories of your "project lead" and possibly your
+ "sub-subsystem maintainers".
You can repack this private repository whenever you feel
like.
- (6) Every once in a while, "git repack" the public repository.
+ (6) Push your changes to your public repository, and ask your
+ "project lead" and possibly your "sub-subsystem
+ maintainers" to pull from it.
+
+ (7) Every once in a while, "git repack" the public repository.
Go back to step (5) and continue working.
+
A recommended work cycle for an "individual developer" who does
not have a "public" repository is somewhat different. It goes
like this:
next reply other threads:[~2005-07-16 3:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-16 3:56 Junio C Hamano [this message]
2005-07-16 4:39 ` [PATCH] Documentation: update recommended workflow when working with others randy_dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vslyfo143.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).