[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: git pull fails with merge conflicts. How can this possibly happen?

From: Stephen J. Turnbull
Subject: Re: git pull fails with merge conflicts. How can this possibly happen?
Date: Sat, 15 Nov 2014 18:20:29 +0900

Eli Zaretskii writes:
 > > Date: Sat, 15 Nov 2014 12:41:12 +0700
 > > From: Yuri Khan <address@hidden>
 > > Cc: Emacs developers <address@hidden>, David Caldwell <address@hidden>
 > > 
 > > On Sat, Nov 15, 2014 at 3:54 AM, Alan Mackenzie <address@hidden> wrote:
 > > 
 > > > gitk doesn't work on my system, of course.  (Nothing ever does without a
 > > > lot of effort).
 > > 
 > > I want to propose a couple of rules of thumb for beginner Git users.
 > I'm sorry, but after using Git for a year on several live projects, I
 > cannot disagree more with your rules.

+1 to Eli's comment, -1 to those rules.  They make some sense for
developers who are working on feature branches in a free-branching
project with weak gatekeeping, but in a project with a strong sense of
trunk like Emacs they are unnecessarily complex, especially for people
not working on long-lived feature branches.

 > Mind you, I come from the same population of the confused whom you are
 > trying to teach here: my mind still doesn't wrap itself easily around
 > Git semantics,

This "confusion" I still don't get.  Git semantics are singly-linked
list semantics: commit ~ cons (object), tree ~ array of tree-or-blob,
blob ~ atom, ref ~ list-valued symbol, branch = ref where the commit
command has push (cl-macro) semantics, tag = ref where the commit
command has cons (primitive function) semantics.  Everything else
follows from list-traversing semantics, rather than the array
reference semantics that svn and bzr provide with refnos.  Only merges
("cons with multiple parents") fail to follow the pattern, but I've
never heard anyone complain that merges are particularly hard to

What's so hard about list semantics for an Emacs developer?

[1]  Granted, submodules *are* hard; it's not just that tree is
generalized to array of tree-or-blob-or-commit, but that commits also
change semantics when used in submodules.  But we're not talking about
submodules in Emacs yet.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]