From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Steffen Prohaska <prohaska@zib.de>
Cc: Peter Baumann <waste.manager@gmx.de>,
Andreas Ericsson <ae@op5.se>,
"J. Bruce Fields" <bfields@fieldses.org>,
Jakub Narebski <jnareb@gmail.com>,
Federico Mena Quintero <federico@novell.com>,
git@vger.kernel.org
Subject: Re: best git practices, was Re: Git User's Survey 2007 unfinished summary continued
Date: Wed, 24 Oct 2007 23:14:25 +0100 (BST) [thread overview]
Message-ID: <Pine.LNX.4.64.0710242258201.25221@racer.site> (raw)
In-Reply-To: <05B279A2-98A3-45F1-9661-AB361F7CAA37@zib.de>
Hi,
On Wed, 24 Oct 2007, Steffen Prohaska wrote:
> On Oct 24, 2007, at 11:28 PM, Peter Baumann wrote:
>
> > You can't check what got added in your pull, e.g you can't review the
> > new code with something like
> >
> > gitk next..origin/next
>
> You're not forced to pull. Just use "git fetch" if you want to do this.
> Or is something missing if you'd be limited to "git fetch"?
I am more concerned about having very fuzzy meanings of our nomenclature.
As of now, "pull = fetch + merge". You want to change that, and I am sure
that it is harder to explain, Andreas' insistence on my being wrong
notwithstanding.
Whenever I told people "pull = fetch + merge", they got it. Often I would
start a talk about git by introducing distributed development. By stating
that working in a working directory is already forking, only without
commiting. Then I'd go into details, by saying that there are multiple
repositories, and that you can update local copies of the remote branches
by "git fetch". And you can merge by "git merge". And then I would write
down on the blackboard -- the first written thing in my talk! -- pull =
fetch + merge.
My "pupils" _always_ liked the preciseness of the nomenclature. And they
made many less mistakes because they had a clear mental model of what is
remote, and what is local. And that local branches are always forks.
> > I often do something like this, just to see what got changed. So at
> > least in my opinion you have to add a third point:
> >
> > * the branch has no modifications what so ever
> > * the branch is set up to auto-merge with the particular branch
> > fetched from the particular remote
> > AND
> > * the user set a config option to always autofastfoward if the above
> > conditions are true! This could be implemented as a global option with
> > a per branch overwrite.
>
> I (and, as I understood, Andreas, too) want to change the default.
> Because we believe that git would be easier to use in workflows based on
> a shared repository.
And here I have to disagree strongly. In a workflow based on a shared
repository, you do not want to merge. You want to rebase. First thing
you do when switching to another branch is fetch + rebase (that's why I
want an option to "pull --rebase" other branches).
But _even if_ you merge instead of rebase, I fail to see how the current
situation is different from CVS (which many people maintain is _easier_
than gi), where first thing you do is to "cvs update". Just for git it is
"git pull".
But I think I have to drive my message home again: if what you desire
becomes reality, you take away the clear distinction between local
and remote branches. In fact, those branches are neither local (because
the next pull will automatically update them with remote changes, but
_only_ if they fast-forward) nor remote (because you plan to work on them
locally).
But here is a proposal which should make you and your developers happy,
_and_ should be even easier to explain:
Work with topic branches. And when you're done, delete them.
So the beginning of the day could look like this:
git fetch
git checkout -b todays-topic origin/master
[hack hack hack]
[test test test]
[debug debug debug]
[occasionally commit]
[occasionally git rebase -i origin/master]
and the end of the topic
git branch -M master
git push origin master
If you should not be ready to push by the end of the day, no need to
worry. Just stay on that topic branch, and before pushing, do
git fetch
git rebase origin/master
In _every_ case where I explained git, I found that people appreciated the
two-step procedures (like you will find in the examples I showed you
above): one git command to work locally, and one to push/fetch to/from
origin.
Ciao,
Dscho
next prev parent reply other threads:[~2007-10-24 22:15 UTC|newest]
Thread overview: 161+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-08 20:55 Git User's Survey 2007 unfinished summary continued Jakub Narebski
2007-10-12 22:08 ` Jakub Narebski
2007-10-12 23:36 ` Frank Lichtenheld
2007-10-13 0:46 ` Johannes Schindelin
2007-10-13 2:13 ` J. Bruce Fields
2007-10-13 2:53 ` Shawn O. Pearce
2007-10-13 12:58 ` Frank Lichtenheld
2007-10-13 13:04 ` Johannes Schindelin
2007-10-13 18:00 ` Andreas Ericsson
2007-10-13 19:59 ` David Kastrup
2007-10-13 20:27 ` J. Bruce Fields
2007-10-13 20:57 ` David Kastrup
2007-10-14 0:36 ` Johannes Schindelin
2007-10-14 1:13 ` Linus Torvalds
2007-10-14 1:44 ` Shawn O. Pearce
2007-10-14 3:15 ` Linus Torvalds
2007-10-14 3:43 ` david
2007-10-14 3:55 ` Linus Torvalds
2007-10-14 10:20 ` Reece Dunn
2007-10-14 18:12 ` Steven Grimm
2007-10-14 18:40 ` J. Bruce Fields
2007-10-14 19:25 ` Steven Grimm
2007-10-14 19:50 ` Andreas Ericsson
2007-10-14 20:18 ` Johannes Schindelin
2007-10-14 20:22 ` Andreas Ericsson
2007-10-14 20:24 ` J. Bruce Fields
2007-10-14 19:44 ` Nicolas Pitre
2007-10-15 23:20 ` Shawn O. Pearce
2007-10-16 2:48 ` Nicolas Pitre
2007-10-16 10:51 ` Johannes Schindelin
2007-10-14 2:06 ` Johannes Schindelin
2007-10-14 8:45 ` Andreas Ericsson
2007-10-14 9:21 ` David Kastrup
2007-10-14 21:49 ` Jakub Narebski
2007-10-14 22:08 ` Johannes Schindelin
2007-10-14 22:17 ` David Kastrup
2007-10-14 22:12 ` David Kastrup
2007-10-14 22:15 ` Jakub Narebski
2007-10-14 22:23 ` Matthew Andrews
2007-10-14 22:30 ` David Kastrup
2007-10-14 21:10 ` David Tweed
2007-10-19 20:57 ` Federico Mena Quintero
2007-10-19 23:27 ` Jakub Narebski
2007-10-19 23:37 ` Johannes Schindelin
2007-10-22 14:28 ` Federico Mena Quintero
2007-10-20 8:03 ` Andreas Ericsson
2007-10-20 10:19 ` Steffen Prohaska
2007-10-20 11:29 ` Andreas Ericsson
2007-10-21 6:08 ` Dmitry Potapov
2007-10-20 23:06 ` Jakub Narebski
2007-10-20 23:33 ` Johannes Schindelin
2007-10-21 7:17 ` Andreas Ericsson
2007-10-21 22:15 ` Johannes Schindelin
2007-10-22 7:59 ` Andreas Ericsson
2007-10-22 11:04 ` best git practices, was " Johannes Schindelin
2007-10-22 12:44 ` Andreas Ericsson
2007-10-22 13:48 ` Johannes Schindelin
2007-10-22 14:31 ` Andreas Ericsson
2007-10-22 15:00 ` Johannes Schindelin
2007-10-22 15:16 ` Andreas Ericsson
2007-10-22 15:42 ` Steffen Prohaska
2007-10-22 19:36 ` Federico Mena Quintero
2007-10-22 23:21 ` Johannes Schindelin
2007-10-25 19:04 ` Carl Worth
2007-10-22 23:35 ` Jakub Narebski
2007-10-23 5:38 ` Steffen Prohaska
2007-10-23 10:58 ` Johannes Schindelin
2007-10-24 18:48 ` Steffen Prohaska
2007-10-24 19:20 ` J. Bruce Fields
2007-10-24 19:41 ` Andreas Ericsson
2007-10-24 19:48 ` J. Bruce Fields
2007-10-24 20:12 ` Steffen Prohaska
2007-10-24 20:33 ` J. Bruce Fields
2007-10-24 21:06 ` Andreas Ericsson
2007-10-24 21:20 ` J. Bruce Fields
2007-10-24 21:28 ` Peter Baumann
2007-10-24 21:47 ` Steffen Prohaska
2007-10-24 22:14 ` Johannes Schindelin [this message]
2007-10-24 22:33 ` Steffen Prohaska
2007-10-24 22:38 ` J. Bruce Fields
2007-10-24 22:51 ` Steffen Prohaska
2007-10-24 23:28 ` Johannes Schindelin
2007-10-25 6:02 ` Steffen Prohaska
2007-10-25 10:27 ` Johannes Schindelin
2007-10-25 12:04 ` Steffen Prohaska
2007-10-25 7:15 ` Andreas Ericsson
2007-10-25 7:31 ` Peter Baumann
2007-10-25 7:57 ` Andreas Ericsson
2007-10-25 8:25 ` Steffen Prohaska
2007-10-25 10:17 ` Johannes Schindelin
2007-10-25 10:33 ` Andreas Ericsson
2007-10-25 12:09 ` Steffen Prohaska
2007-10-25 12:58 ` Johannes Schindelin
2007-10-25 13:24 ` Theodore Tso
2007-10-25 14:58 ` Andreas Ericsson
2007-10-25 15:21 ` Theodore Tso
2007-10-25 17:05 ` Andreas Ericsson
2007-10-25 18:33 ` Junio C Hamano
2007-10-25 20:18 ` Andreas Ericsson
2007-10-26 6:18 ` Steffen Prohaska
2007-10-26 7:53 ` Andreas Ericsson
2007-10-25 18:02 ` best git practices, was Re: Git User's Survey 2007 unfinishedsummary continued Federico Mena Quintero
2007-10-25 18:04 ` Mike Hommey
2007-10-25 18:18 ` J. Bruce Fields
2007-10-25 18:23 ` Theodore Tso
2007-10-25 20:08 ` Andreas Ericsson
2007-10-26 20:01 ` David Kastrup
2007-10-25 16:06 ` Federico Mena Quintero
2007-10-25 16:38 ` J. Bruce Fields
2007-10-25 18:06 ` Federico Mena Quintero
2007-10-25 18:16 ` J. Bruce Fields
2007-10-25 20:19 ` Andreas Ericsson
2007-10-25 20:27 ` J. Bruce Fields
2007-10-26 9:17 ` David Kastrup
2007-10-26 4:41 ` [PATCH] Make rebase smarter Steven Walter
2007-10-26 7:42 ` Andreas Ericsson
2007-10-26 9:57 ` Johannes Schindelin
2007-10-26 21:02 ` Junio C Hamano
2007-10-26 23:13 ` Johannes Schindelin
2007-10-26 23:29 ` Junio C Hamano
2007-10-24 21:54 ` best git practices, was Re: Git User's Survey 2007 unfinished summary continued Andreas Ericsson
2007-10-24 22:17 ` Johannes Schindelin
2007-10-25 8:07 ` Andreas Ericsson
2007-10-25 10:12 ` Johannes Schindelin
2007-10-25 10:24 ` Andreas Ericsson
2007-10-25 11:39 ` Johannes Schindelin
2007-10-25 12:46 ` Andreas Ericsson
2007-10-25 14:51 ` Karl Hasselström
2007-10-25 17:10 ` Andreas Ericsson
2007-10-25 7:26 ` Peter Baumann
2007-10-24 21:16 ` Steffen Prohaska
2007-10-24 20:13 ` Andreas Ericsson
2007-10-24 23:48 ` Jakub Narebski
2007-10-25 7:42 ` Andreas Ericsson
2007-10-25 10:07 ` Johannes Schindelin
2007-10-25 10:39 ` Steffen Prohaska
2007-10-25 16:16 ` Federico Mena Quintero
2007-10-23 7:24 ` Andreas Ericsson
2007-10-22 18:06 ` Daniel Barkalow
2007-10-22 13:17 ` Wincent Colaiuta
2007-10-22 13:33 ` David Symonds
2007-10-22 13:38 ` Johannes Schindelin
2007-10-22 17:48 ` Robin Rosenberg
2007-10-23 22:13 ` Alex Riesen
2007-10-22 13:36 ` Nguyen Thai Ngoc Duy
2007-10-22 15:24 ` best git practices, was Re: Git User's Survey 2007 unfinished summarycontinued Federico Mena Quintero
2007-10-24 2:06 ` best git practices, was Re: Git User's Survey 2007 unfinished summary continued Jakub Narebski
2007-10-24 10:29 ` Karl Hasselström
2007-10-24 11:04 ` Jakub Narebski
2007-10-24 11:31 ` Karl Hasselström
2007-10-24 23:27 ` Jakub Narebski
2007-10-25 6:10 ` Karl Hasselström
2007-10-24 13:15 ` Catalin Marinas
2007-10-22 12:26 ` Jakub Narebski
2007-10-22 13:45 ` Johannes Schindelin
2007-10-22 14:29 ` Andreas Ericsson
2007-10-22 14:53 ` Federico Mena Quintero
2007-10-22 23:27 ` Jakub Narebski
2007-10-22 22:53 ` Steven Grimm
2007-10-21 22:12 ` J. Bruce Fields
2007-10-13 3:04 ` Shawn O. Pearce
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0710242258201.25221@racer.site \
--to=johannes.schindelin@gmx.de \
--cc=ae@op5.se \
--cc=bfields@fieldses.org \
--cc=federico@novell.com \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--cc=prohaska@zib.de \
--cc=waste.manager@gmx.de \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).