unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: rms@gnu.org
Cc: sb@dod.no, emacs-devel@gnu.org
Subject: Re: Stash
Date: Mon, 06 Apr 2015 10:29:15 +0300	[thread overview]
Message-ID: <83iod9lnp0.fsf@gnu.org> (raw)
In-Reply-To: <E1YezwA-0002f4-FB@fencepost.gnu.org>

> Date: Mon, 06 Apr 2015 01:51:06 -0400
> From: Richard Stallman <rms@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> One superiority of CVS is 'cvs up' reports its actions in a clear and
> concise way.  Once you know what the letters mean, it is all
> straightforward.
> 
> If it updates a lot of files, I often do 'cvs up' a second time,
> knowing it will show me only the files I have changed and might want
> to install.

There's no alternative here but to learn to use a different command
for showing that:

  git status --short

It should produce approximately the same display as you are used to
with CVS:

   M modified-file1
   M modified-file2
  ?? unregistered-file1

etc.  You can see the entire set of two-letter status markers in the
man page of "git status".

> I have forgotten what Bzr's output looked like, but I recall that it
> was easy for me to see what conflicts there were.

Bzr would state the conflicted files at the end of the "status"
command.  It also had an explicit "bzr conflicts" command.

Git shows conflicts with two-letter codes; e.g., a file that was
modified both upstream and by you locally will be marked with "UU",
which means that both you and "them" Updated the file.

> Git outputs a mass of information.  As a Git beginner I don't
> understand what part of it might indicate a problem.  This is a
> serious concrete failing of Git.

Do you mean the information presented by "git pull", or do you mean
some other command?

"git pull" outputs roughly the same amount of information as CVS and
bzr would, just in slightly different format.  Here's an example:

  $ git pull
  remote: Counting objects: 215, done.
  remote: Compressing objects: 100% (98/98), done.
  remote: Total 98 (delta 88), reused 0 (delta 0)
  Unpacking objects: 100% (98/98), done.

This part is just status messages during "fetching" (i.e. bringing the
new stuff) from upstream.  It has no direct CVS equivalent; bzr had
something similar.

  From git.savannah.gnu.org:/srv/git/emacs
     ba0a6e9..b884ff3  master     -> origin/master
     21d4bf6..8272c1d  emacs-24   -> origin/emacs-24
   * [new tag]         emacs-24.5-rc3 -> emacs-24.5-rc3

This part describes repository-global events, like new branches, new
tags, etc.

  Updating ba0a6e9..b884ff3
  Fast-forward
   ChangeLog                      |   4 +-
   doc/misc/htmlfontify.texi      |  10 +--
   etc/NEWS                       |   6 ++
   lisp/ChangeLog                 |  17 ++++
   lisp/ChangeLog.16              |   2 +-
   lisp/gnus/ChangeLog            |   8 +-
   lisp/gnus/rtree.el             |   7 +-
   lisp/htmlfontify.el            |  11 +--
   lisp/org/ox-odt.el             |   7 +-
   lisp/progmodes/python.el       |  97 ++++++++++++++++-------
   test/ChangeLog                 |   9 +++
   test/automated/python-tests.el | 173 +++++++++++++++++++++++++++++++++++++++++
   12 files changed, 305 insertions(+), 46 deletions(-)

This is the main part that describes the "merge" step of "git pull":
it says it performed a "fast-forward" (see below), and then shows one
line for each updated file with "diffstat" form of statistics of
changes in each file.  The last line is a summary of the changes.

As you see, this is not very different from what CVS and bzr displayed
in these circumstances.

("Fast-forward" means the stuff fetched from upstream was pure
additions to what you had locally, i.e. your local branch did not
diverge from upstream since the last pull.  If you have local changes
that you committed, but didn't yet push upstream, you will generally
not see the fast-forward part.)

> I think Git ought to have an 'update' facility, for simple usage
> scenarios, that would be just as easy to use as cvs update.

The only major difference between "git pull" and "cvs/bzr update" is
that the latter didn't expose the "fetch" and the "merge" parts to the
user (CVS couldn't expose it because everything was done on the
server).  Git does expose that, so when pull fails due to conflicts,
it tells you about the failed merge.  You need to realize that the
merge in question is an integral part of pull, and simply deal with
the conflicts much in the same way as you'd do for CVS and bzr.

What other parts of "git pull" are "not simple", which you think need
to be simplified?



  reply	other threads:[~2015-04-06  7:29 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-05 17:42 Stash Richard Stallman
2015-04-05 18:31 ` Stash Steinar Bang
2015-04-05 18:38   ` Stash Eli Zaretskii
2015-04-06  5:50   ` Stash Richard Stallman
2015-04-06  6:37     ` Stash Steinar Bang
2015-04-06  7:35     ` Stash Eli Zaretskii
2015-04-06  7:57       ` Stash Eli Zaretskii
2015-04-07 19:31       ` Stash Stephen J. Turnbull
2015-04-08  5:28         ` Stash Eli Zaretskii
2015-04-06  5:50   ` Stash Richard Stallman
2015-04-06  6:50     ` Stash Steinar Bang
2015-04-06  6:55       ` Stash Eli Zaretskii
2015-04-06 11:25         ` Stash Mathias Megyei
2015-04-06 11:30           ` Stash Eli Zaretskii
2015-04-06 11:56             ` Stash Yuri Khan
2015-04-06 12:06               ` Stash João Távora
2015-04-06 12:25                 ` Stash Eli Zaretskii
2015-04-06 12:19               ` Stash Eli Zaretskii
2015-04-06 11:59             ` Stash João Távora
2015-04-06 12:21               ` Stash Eli Zaretskii
2015-04-06 13:06                 ` Stash João Távora
2015-04-06  6:55       ` Stash Eli Zaretskii
2015-04-06 14:53       ` Stash Steinar Bang
2015-04-06 15:07         ` Stash Harald Hanche-Olsen
2015-04-06 18:48           ` Stash Steinar Bang
2015-04-06  5:51   ` Stash Richard Stallman
2015-04-06  7:29     ` Eli Zaretskii [this message]
2015-04-06  7:55       ` Stash Harald Hanche-Olsen
2015-04-07 16:13       ` Stash Richard Stallman
2015-04-07 16:48         ` Stash Eli Zaretskii
2015-04-07 19:51           ` Stash Stephen J. Turnbull
2015-04-08 18:20             ` Stash Richard Stallman
2015-04-08 18:21           ` Stash Richard Stallman
2015-04-08 18:33             ` Stash Eli Zaretskii
2015-04-09 13:16               ` Stash Richard Stallman
2015-04-09 13:45                 ` Stash Eli Zaretskii
2015-04-10 10:57                   ` Stash Richard Stallman
2015-04-08 18:21           ` Stash Richard Stallman
2015-04-07 16:58         ` Stash Andreas Schwab
2015-04-08 18:21           ` Stash Richard Stallman
2015-04-09 17:07             ` Stash Andreas Schwab
2015-04-10 10:58               ` Stash Richard Stallman
2015-04-07 20:12     ` Stash Stephen J. Turnbull
2015-04-09 13:16       ` Stash Richard Stallman
2015-04-09 16:53         ` Stash Stephen J. Turnbull
2015-04-10 10:58           ` Stash Richard Stallman
2015-04-10 11:18             ` Stash Eli Zaretskii
2015-04-10 13:52             ` Stash Stephen J. Turnbull
2015-04-05 18:40 ` Stash Paul Eggert
2015-04-05 19:25   ` Stash Harald Hanche-Olsen
2015-04-05 19:59     ` Stash Paul Eggert
2015-04-05 19:26   ` Stash Steinar Bang
2015-04-05 20:18     ` Stash Stephen J. Turnbull
2015-04-05 19:41 ` Stash Harald Hanche-Olsen

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: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83iod9lnp0.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    --cc=sb@dod.no \
    /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://git.savannah.gnu.org/cgit/emacs.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).