all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <stephen@xemacs.org>
To: Achim Gratz <Stromeko@nexgo.de>
Cc: emacs-devel@gnu.org
Subject: Re: Git transition workflow
Date: Wed, 13 Aug 2014 12:59:42 +0900	[thread overview]
Message-ID: <87iolxhwep.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <87lhqtv7vf.fsf@Rainer.invalid>

Achim Gratz writes:
 > Jan Nieuwenhuizen writes:
 > >     Daily work
 > >     If you’re using the command-line:
 > >
 > >     git pull
 > >
 > > May I suggest to change this to
 > >  
 > >     git pull --rebase / git pull -r
 > >
 > > or we're going to see a whole lot of merge commits.

This requires people who don't already know how to "git rebase" to
learn it (I mean the resolution workflow, not the command, of course).
It will get a lot of pushback, and I expect that those users will
revert to "git pull".  On the other hand, merge conflicts are familiar
from ancient times, and doesn't require learning a new workflow.

You'll probably get used to it; I did when XEmacs moved to hg (and
after several years of git use with rebasing before pushing, I was
pretty disgusted by the XEmacs repo's DAG in the early days).  It was
not a big deal for most of our developers, so I accepted the
inevitable.  You probably should too.

It should be "easy" to write a commit hook that just exchanges parents
of a merge commit when the first parent's committer (author?) is the
same as the merge commit's and the other parent is different.  This
(with high probability) preserves the mainline in a bzr-like fashion,
and would be easy for CVS-like users to adopt (since only the merge
commit object is manipulated, and that is automagic, no workflow
change is involved).

Then developers who really hate "redundant" merge commits can use
"log --first-parent" to see pretty much what they want (the merge
commit that integrates a trivial one-or-two-commit branch, and rebased
commits that fast-forward when pushed).  You'll miss important history
from a few feature branches, but that's generally fixable with
"log --committer" (plus --date or --skip to drill down).  This is a
workflow change for you, I grant, but you are more able to adopt it
easily or do without, and your decision affects only you.

Note that I generally agree with you about best practice (and disagree
with the "even private history is sacred"/"rebased commits need
testing" crowd).  However, as I wrote before, Emacs doesn't *need*
such best practice (let alone generally conform to it currently), and
my experience with the Python, XEmacs, and Emacs CVCS-to-DVCS
migrations is that trying to implement workflow changes at the same as
changing VCSes doesn't work -- people too important to discipline balk
and/or threaten to delay the move (cf. "vc-find-conflicting-files must
work"), new committers don't know about the policies, etc.

Take an improvement in 



  reply	other threads:[~2014-08-13  3:59 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-11 11:36 Git transition workflow Paul Michael Reilly
2014-08-12  2:28 ` Stephen J. Turnbull
2014-08-12  2:58   ` Eric S. Raymond
2014-08-12  4:09     ` Paul Michael Reilly
2014-08-12  4:14       ` Eric S. Raymond
2014-08-12  3:16 ` Richard Stallman
2014-08-12  8:07   ` Rüdiger Sonderfeld
2014-08-12  8:33     ` Jan Nieuwenhuizen
2014-08-12 19:13       ` Achim Gratz
2014-08-13  3:59         ` Stephen J. Turnbull [this message]
2014-08-13  4:14           ` Ashton Kemerling
2014-08-13 10:30           ` Sergey Organov
2014-08-13 12:52             ` Stefan Monnier
2014-08-13 14:16               ` Sergey Organov
2014-08-13 15:59                 ` Stefan Monnier
2014-08-13 18:15                 ` David Caldwell
2014-08-13 16:17             ` Stephen J. Turnbull
2014-08-13 16:28               ` John Yates
2014-08-13 17:16                 ` Stephen J. Turnbull
2014-08-13 17:20                   ` Achim Gratz
2014-08-13 18:34                     ` Stephen J. Turnbull
2014-08-13 21:09               ` Sergey Organov
2014-08-14 10:44                 ` Michael Mattie
2014-08-13  3:56     ` Richard Stallman

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=87iolxhwep.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=stephen@xemacs.org \
    --cc=Stromeko@nexgo.de \
    --cc=emacs-devel@gnu.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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.