From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johannes Schindelin Subject: Re: git pull opinion Date: Tue, 6 Nov 2007 12:05:39 +0000 (GMT) Message-ID: References: <3abd05a90711051352t2f6be00bsa862585abd370fb1@mail.gmail.com> <7vd4uomfn8.fsf@gitster.siamese.dyndns.org> <18223.46848.109961.552827@lisa.zopyra.com> <472FBB3F.8080307@op5.se> <47302D07.9030703@op5.se> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: Bill Lear , Junio C Hamano , Aghiles , git@vger.kernel.org To: Andreas Ericsson X-From: git-owner@vger.kernel.org Tue Nov 06 13:07:00 2007 Return-path: Envelope-to: gcvg-git-2@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by lo.gmane.org with esmtp (Exim 4.50) id 1IpNCi-00016T-9W for gcvg-git-2@gmane.org; Tue, 06 Nov 2007 13:06:48 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755197AbXKFMGf (ORCPT ); Tue, 6 Nov 2007 07:06:35 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754677AbXKFMGe (ORCPT ); Tue, 6 Nov 2007 07:06:34 -0500 Received: from mail.gmx.net ([213.165.64.20]:46335 "HELO mail.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1753891AbXKFMGe (ORCPT ); Tue, 6 Nov 2007 07:06:34 -0500 Received: (qmail invoked by alias); 06 Nov 2007 12:06:32 -0000 Received: from unknown (EHLO [138.251.11.74]) [138.251.11.74] by mail.gmx.net (mp038) with SMTP; 06 Nov 2007 13:06:32 +0100 X-Authenticated: #1490710 X-Provags-ID: V01U2FsdGVkX18NoypVR80N1wp4QFP27rvpw5bBy7uDbEUCi4ZA79 kCwrKbmO791hrz X-X-Sender: gene099@racer.site In-Reply-To: <47302D07.9030703@op5.se> X-Y-GMX-Trusted: 0 Sender: git-owner@vger.kernel.org Precedence: bulk X-Mailing-List: git@vger.kernel.org Archived-At: Hi, On Tue, 6 Nov 2007, Andreas Ericsson wrote: > Johannes Schindelin wrote: > > > On Tue, 6 Nov 2007, Andreas Ericsson wrote: > > > > > Bill Lear wrote: > > > > On Monday, November 5, 2007 at 15:33:31 (-0800) Junio C Hamano writes: > > > > > Aghiles writes: > > > > > > > > > > > Is there an "easier" way to pull into a dirty directory ? I am > > > > > > asking this to make sure I understand the problem and not > > > > > > because I find it annoying to type those 4 commands to perform > > > > > > a pull (although some of my colleagues do find that annoying :). > > > > > You need to switch your mindset from centralized SVN workflow. > > > > > > > > > > The beauty of distributedness is that it redefines the meaning > > > > > of "to commit". In distributed systems, the act of committing > > > > > is purely checkpointing and it is not associated with publishing > > > > > the result to others as centralized systems force you to. > > > > > > > > > > Stop thinking like "I need to integrate the changes from > > > > > upstream into my WIP to keep up to date." You first finish what > > > > > you are currently doing, at least to the point that it is > > > > > stable, make a commit to mark that state, and then start > > > > > thinking about what other people did. You may most likely do a > > > > > "git fetch" followed by "git rebase" to update your WIP on top > > > > > of the updated work by others. > > > > > > > > > > Once you get used to that, you would not have "a dirty > > > > > directory" problem. > > > > I respectfully beg to differ. I think it is entirely reasonable, and > > > > not a sign of "centralized" mindset, to want to pull changes others > > > > have made into your dirty repository with a single command. > > > > > > > I find it much more convenient to just fetch them. I'd rather see > > > git-pull being given a --rebase option (which would ultimately mean > > > teaching git-merge about it) to rebase already committed changes on > > > top of the newly fetched tracking branch. It's being worked on, but > > > rather slowly. > > > > git-pull learning about --rebase does not mean teaching git-merge about it. > > See my patch, which you (and others) failed to enthusiastically embrace, > > which is the sole reason it is stalled. > > > > I must have missed it. Found the thread now though. Gonna try the patch in > production for a while and see how it pans out. > > I'm curious about this hunk though. It seems unaffiliated with the --rebase > option as such, but was still in the patch. Would you care to clarify? > > @@ -86,7 +95,6 @@ merge_head=$(sed -e '/ not-for-merge /d' \ > > case "$merge_head" in > '') > - curr_branch=$(git symbolic-ref -q HEAD) > case $? in > 0) ;; > 1) echo >&2 "You are not currently on a branch; you must > explicitly" > No, it is not unaffiliated. If you go back to the patch, you will find that this line was not deleted, but moved to the start of git-rebase.sh. We need to know the branch name to get the config settings, and might just as well reuse the branch name for the merge_head case. Hth, Dscho