From: Steven Grimm <koreth@midwinter.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: GIT vs Other: Need argument
Date: Wed, 18 Apr 2007 18:24:09 -0700 [thread overview]
Message-ID: <4626C4B9.1040707@midwinter.com> (raw)
In-Reply-To: <f06d4m$3rs$1@sea.gmane.org>
Jakub Narebski wrote:
> In my opinion the update-then-commit workflow CVS and SVN forces on users
> is one of the more annoying features, forcing the user to resolve conflicts
> if he/she wants to be up-to-date.
>
I'm not eager to jump to svn's defense -- there's a reason I'm using git
and trying to get my coworkers to do the same -- but how does git allow
you to stay up to date without resolving conflicts? Granted that git is
smarter about resolving certain kinds of conflicts automatically, but
fundamentally if the latest revision you've pulled down (from any kind
of version control system) makes a change that conflicts with a local
change (whether or not you've committed it locally first) you're going
to have to resolve it by hand, yes?
Also, last I checked, git wouldn't let me push into a branch that had
revisions I hadn't yet pulled down. Isn't that just another way of
enforcing an update-then-commit workflow? If anything, svn wins in that
area -- it allows me to commit without updating as long as my change
doesn't touch any files that have changed upstream.
One can argue about whether allowing partial commits like that is a good
idea, but it's just not true that svn forces you to always update before
you commit, and if you're pushing into a branch that other people are
also updating, the ability to commit files that didn't change upstream
means it is actually *less* insistent on update-then-commit than git is
(if you take "commit" to mean "commit-and-push" on the git side as was
suggested in the message I replied to originally.)
Unless, of course, I'm misinterpreting you here.
> The update-then-commit assumes that you merge on update local modifications
> with current server version, assuming that ancestor is current local
> committed version. This makes off-line committing impossible, and makes
> rare updates (server version advanced by more than one commit) unnecessary
> hard.
That last point is completely counter to my experience. At my company
(where the svn repository is still the official code base) the
repository is constantly changing. I'll sometimes let hundreds or even
thousands of revisions go by between updates of my svn client. When I'm
at a good point to do integration testing and I'm using an svn client
instead of a git-svn one, I type "svn up", do roughly the same manual
conflict resolution I'd do after a "git pull" that brought down a
similar number of new revisions -- often none at all if I'm the only one
working on a particular corner of the code base -- and I'm good to go.
What's unnecessarily hard about that? How would it be any better in git?
Local commit capability is absolutely a huge win in git, though, and is
one of the main features I use to sell people on it internally. No
argument there. I just don't like being *forced* to do a local commit
when I have no reason to do so other than to satisfy the version control
tool. I end up either cluttering my history with dummy revisions or
having to type extra commands to get rid of them.
And in particular -- this being the original topic of the thread -- when
an svn user sees me doing that, they do not immediately think of the
fact that merging between immutable revisions may have some benefits.
They see me typing four commands (commit, fetch, rebase, reset) to do
the same thing they can do in one command with svn, and conclude that
git is harder to use. That some of them choose to use it anyway is a
testament to how great git is in other areas.
-Steve
next prev parent reply other threads:[~2007-04-19 1:24 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-17 9:02 GIT vs Other: Need argument Pietro Mascagni
2007-04-17 9:13 ` Matthieu Moy
2007-04-17 10:26 ` Andy Parkins
2007-04-17 14:32 ` Alex Riesen
2007-04-17 10:37 ` Martin Langhoff
2007-04-17 15:28 ` Linus Torvalds
2007-04-17 17:07 ` Matthieu Moy
2007-04-17 10:33 ` Martin Langhoff
2007-04-17 14:39 ` Alex Riesen
2007-04-25 8:58 ` Dana How
2007-04-25 10:35 ` Alex Riesen
2007-04-17 10:45 ` Tomash Brechko
2007-04-17 15:41 ` Guilhem Bonnefille
2007-04-17 17:18 ` Andy Parkins
2007-04-17 17:30 ` Shawn O. Pearce
2007-04-17 19:36 ` Marcin Kasperski
2007-04-18 10:05 ` Johannes Schindelin
2007-04-18 16:07 ` Linus Torvalds
2007-04-18 16:31 ` Nicolas Pitre
2007-04-18 16:49 ` Bill Lear
2007-04-18 17:43 ` Matthieu Moy
2007-04-18 17:50 ` Nicolas Pitre
2007-04-19 13:16 ` Matthieu Moy
2007-04-19 18:44 ` Petr Baudis
2007-04-20 9:04 ` Matthieu Moy
2007-04-18 20:57 ` Theodore Tso
2007-04-18 20:08 ` Guilhem Bonnefille
2007-04-18 20:19 ` Linus Torvalds
2007-04-18 21:45 ` Daniel Barkalow
2007-04-18 21:21 ` Michael K. Edwards
2007-04-19 8:37 ` Johannes Schindelin
2007-04-19 13:29 ` Matthieu Moy
2007-04-19 9:24 ` Johannes Schindelin
2007-04-19 12:21 ` Alex Riesen
2007-04-19 12:22 ` Christian MICHON
2007-04-19 12:37 ` Johannes Schindelin
2007-04-19 12:54 ` Christian MICHON
2007-04-19 16:43 ` Linus Torvalds
2007-04-19 17:49 ` Marcin Kasperski
2007-04-19 20:57 ` Linus Torvalds
2007-04-23 18:54 ` Carl Worth
2007-04-23 19:52 ` Josef Weidendorfer
2007-04-23 22:12 ` Carl Worth
2007-04-23 22:23 ` Junio C Hamano
2007-04-23 22:58 ` Carl Worth
2007-04-23 23:24 ` Linus Torvalds
2007-04-23 23:55 ` Brian Gernhardt
2007-04-24 1:31 ` Daniel Barkalow
2007-04-24 5:15 ` Junio C Hamano
2007-04-24 14:23 ` J. Bruce Fields
2007-04-24 15:01 ` Linus Torvalds
2007-04-30 4:31 ` J. Bruce Fields
2007-04-25 13:12 ` Making git disappear when talking about my code (was: Re: GIT vs Other: Need argument) Carl Worth
2007-04-25 14:09 ` Carl Worth
2007-04-25 14:55 ` Linus Torvalds
2007-04-25 16:28 ` Carl Worth
2007-04-25 18:07 ` Nicolas Pitre
2007-04-25 19:03 ` Carl Worth
2007-04-25 19:17 ` Making git disappear when talking about my code Junio C Hamano
2007-04-25 19:22 ` Nicolas Pitre
2007-04-25 20:26 ` Carl Worth
2007-04-25 20:23 ` Making git disappear when talking about my code (was: Re: GIT vs Other: Need argument) Nicolas Pitre
2007-04-25 14:51 ` Linus Torvalds
2007-04-25 19:44 ` Daniel Barkalow
2007-04-25 19:56 ` Making git disappear when talking about my code Junio C Hamano
2007-04-25 20:29 ` Linus Torvalds
2007-04-25 20:32 ` Nicolas Pitre
2007-04-25 21:38 ` Daniel Barkalow
2007-04-25 20:29 ` Making git disappear when talking about my code (was: Re: GIT vs Other: Need argument) Carl Worth
2007-04-25 22:39 ` Daniel Barkalow
2007-04-25 20:31 ` Nicolas Pitre
2007-04-23 23:22 ` GIT vs Other: Need argument Junio C Hamano
2007-04-19 20:49 ` Johannes Schindelin
2007-04-20 15:54 ` History cleanup/rewriting script for git Jan Harkes
2007-04-20 18:39 ` Johannes Schindelin
2007-04-20 18:44 ` Petr Baudis
2007-04-20 20:36 ` Jan Harkes
2007-04-19 12:15 ` GIT vs Other: Need argument Marcin Kasperski
2007-04-19 12:33 ` Johannes Schindelin
2007-04-19 12:42 ` Marcin Kasperski
2007-04-19 13:36 ` Johannes Schindelin
2007-04-19 14:27 ` J. Bruce Fields
2007-04-19 12:45 ` Theodore Tso
2007-04-19 12:46 ` [ANNOUNCE] Cogito is for sale Petr Baudis
2007-04-19 13:32 ` Matthieu Moy
2007-04-19 20:23 ` Junio C Hamano
2007-04-19 20:42 ` Johannes Schindelin
[not found] ` <1176984208.30690.18.camel@cauchy.softax.local>
2007-04-19 12:28 ` GIT vs Other: Need argument Johannes Schindelin
2007-04-19 12:37 ` Marcin Kasperski
2007-04-19 13:32 ` Johannes Schindelin
[not found] ` <200704172239.20124.andyparkins@gmail.com>
2007-04-19 11:59 ` Marcin Kasperski
2007-04-19 12:48 ` Alex Riesen
2007-04-19 12:57 ` Andy Parkins
2007-04-20 6:22 ` Shawn O. Pearce
2007-04-20 13:03 ` Eric Blake
2007-04-18 12:40 ` Guilhem Bonnefille
2007-04-18 13:26 ` Andy Parkins
2007-04-18 17:08 ` Steven Grimm
2007-04-19 0:33 ` Jakub Narebski
2007-04-19 1:24 ` Steven Grimm [this message]
2007-04-19 2:08 ` Jakub Narebski
2007-04-19 8:48 ` Johannes Schindelin
2007-04-19 8:57 ` Julian Phillips
2007-04-19 19:03 ` Steven Grimm
2007-04-19 21:00 ` Johannes Schindelin
2007-04-19 2:11 ` Junio C Hamano
2007-04-19 6:02 ` Junio C Hamano
2007-04-19 18:18 ` Steven Grimm
2007-04-19 23:30 ` Junio C Hamano
2007-04-20 5:32 ` Shawn O. Pearce
2007-04-20 9:04 ` Jakub Narebski
2007-04-20 10:18 ` Karl Hasselström
2007-04-20 10:39 ` Junio C Hamano
2007-04-20 13:57 ` Petr Baudis
2007-04-20 8:36 ` Junio C Hamano
2007-04-20 16:42 ` Steven Grimm
2007-04-18 20:54 ` Yann Dirson
2007-04-18 3:09 ` Sam Vilain
2007-04-18 20:49 ` Yann Dirson
2007-04-25 8:55 ` Dana How
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=4626C4B9.1040707@midwinter.com \
--to=koreth@midwinter.com \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
/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.
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 NNTP newsgroup(s).