From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Sergey Organov Newsgroups: gmane.emacs.devel Subject: Re: VC mode and git Date: Wed, 01 Apr 2015 12:28:25 +0300 Message-ID: References: <838ueezgyk.fsf@gnu.org> <878ueejnjz.fsf@uwakimon.sk.tsukuba.ac.jp> <83twx2xoc8.fsf@gnu.org> <87619hke3u.fsf@uwakimon.sk.tsukuba.ac.jp> <551A3F17.6020903@math.ntnu.no> <20150331085055.GA2871@acm.fritz.box> <87zj6tiko1.fsf@uwakimon.sk.tsukuba.ac.jp> <20150331104935.GB2871@acm.fritz.box> <87y4mdi7tj.fsf@uwakimon.sk.tsukuba.ac.jp> <20150331214347.GH2871@acm.fritz.box> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1427880614 10533 80.91.229.3 (1 Apr 2015 09:30:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 1 Apr 2015 09:30:14 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Apr 01 11:30:05 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YdEyF-0006AH-Vb for ged-emacs-devel@m.gmane.org; Wed, 01 Apr 2015 11:30:00 +0200 Original-Received: from localhost ([::1]:48412 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YdEyF-0006BE-6M for ged-emacs-devel@m.gmane.org; Wed, 01 Apr 2015 05:29:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43265) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YdEy3-00069Q-Ku for emacs-devel@gnu.org; Wed, 01 Apr 2015 05:29:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YdEy0-0000dw-Bi for emacs-devel@gnu.org; Wed, 01 Apr 2015 05:29:47 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:32831) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YdEy0-0000dd-5V for emacs-devel@gnu.org; Wed, 01 Apr 2015 05:29:44 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1YdExD-0005HV-N2 for emacs-devel@gnu.org; Wed, 01 Apr 2015 11:28:55 +0200 Original-Received: from 89.175.180.246 ([89.175.180.246]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 01 Apr 2015 11:28:55 +0200 Original-Received: from sorganov by 89.175.180.246 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 01 Apr 2015 11:28:55 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 67 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 89.175.180.246 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:184697 Archived-At: Alan Mackenzie writes: > Hello, Stephen. > > On Tue, Mar 31, 2015 at 11:02:16PM +0900, Stephen J. Turnbull wrote: >> Alan Mackenzie writes: [...] >> > Part of the problem is that the git-merge man page doesn't say that >> > it messes with the working tree > >> What else would it do? Merge tools have changed the working tree from >> time immemorial. > > That's poor, Stephen. It might well merge in the repository without > touching the working tree. The fact is, the documentation doesn't say > this - it doesn't even say where the two sources for its merge come from, > or where it puts the result. That's pure insinuation. Git documentation could be far from ideal, but it has most of information there. Here is quote from Git manual page on merge for you. It mentions what merge does to working tree 4 times, and tells you exactly where it puts the two sources of conflicting merges: [QUOTE=git help merge] TRUE MERGE Except in a fast-forward merge (see above), the branches to be merged must be tied together by a merge commit that has both of them as its parents. A merged version reconciling the changes from all branches to be merged is committed, and your HEAD, index, and working tree are updated to it. It is possible to have modifications in the working tree as long as they do not overlap; the update will preserve them. When it is not obvious how to reconcile the changes, the following happens: 1. The HEAD pointer stays the same. 2. The MERGE_HEAD ref is set to point to the other branch head. 3. Paths that merged cleanly are updated both in the index file and in your working tree. 4. For conflicting paths, the index file records up to three versions: stage 1 stores the version from the common ancestor, stage 2 from HEAD, and stage 3 from MERGE_HEAD (you can inspect the stages with git ls-files -u). The working tree files contain the result of the "merge" program; i.e. 3-way merge results with familiar conflict markers <<< === >>>. 5. No other changes are made. In particular, the local modifications you had before you started merge will stay the same and the index entries for them stay as they were, i.e. matching HEAD. If you tried a merge which resulted in complex conflicts and want to start over, you can recover with git merge --abort. [/QUOTE] P.S. You sound like pure Git hater most of times. Haters will hate. No matter what. -- Sergey.