git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: "Robert Anderson" <rwa000@gmail.com>
Cc: "Stephen Sinclair" <radarsat1@gmail.com>,
	"Git Mailing List" <git@vger.kernel.org>
Subject: Re: An alternate model for preparing partial commits
Date: Sat, 28 Jun 2008 10:12:14 -0700 (PDT)	[thread overview]
Message-ID: <m3d4m1iivq.fsf@localhost.localdomain> (raw)
In-Reply-To: <9af502e50806280930u788f81e2j77adf147a0e4d135@mail.gmail.com>

"Robert Anderson" <rwa000@gmail.com> writes:

> On Sat, Jun 28, 2008 at 7:34 AM, Stephen Sinclair <radarsat1@gmail.com> wrote:
> > The answer is simple: you should not be making partial commits to a
> > repo that has been cloned.  You should instead be working somewhere
> > else and then pushing to it.  So this whole sentence is just a moot
> > point itself.
> 
> Let me amplify my objection to this.
> 
> Who has 100% foresight that what they are doing is going to end up in
> a state where they'd like to make partial commits?  To take a quote
> from a blog post, 'Git means never having to say, "you should have"'.
> And mostly it doesn't, and that's big improvement over other systems.
> But, that is what you are saying here.  I "should have" realized that
> I should have pulled and fiddled with my changes there, and then
> pushed.
> 
> Well, Dmitri and others will now say, why not just always pull and
> work somewhere else?  And the reason is that because this creates
> extra, unnecessary steps the vast majority of the time when I do
> create a commit that I like and want to keep as-is in the first try.
> Why should I have to pull, commit, hack, and push, when hack and
> commit is all I need to do the vast majority of the time?  It is
> redundant, unnecessary work and complexity that I should not have to
> pay for when I don't need it.

I think that in most cases the setup looks like the following: there
is private non-bare repository, ehere you can use topic branches,
and change and rewrite those changes at will, be it using plain rebase,
rebase --interactive, or some patch management interface like StGit
or Guilt.  That is where you clean up your commits till they all fill
some standards / convention, like compiling (at least), or pass the
testsuite.

Then you merge it into one of long-lived "development" branches, and
push to your public (usually bare) publishing repository, which can
be for example on repo.or.cz, or on kernel.org.


That said "git stash (save|apply) --interactive" would be good
improvement for the situation where you have realized that you have
several unrelated changes in working directory, and want to decouple
them.  One solution would be to commit, then split using interactive
rebase (or patch management tool), but with stash I guess it could be
simpler.

You should avoid such situation by stashing and changing the branch,
or refrshing current patch (to return to it later) and generating new
one if you use StGit or Guilt...

-- 
Jakub Narebski
Poland
ShadeHawk on #git

  reply	other threads:[~2008-06-28 17:13 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-27  6:50 An alternate model for preparing partial commits Robert Anderson
2008-06-27  7:10 ` Björn Steinbrink
2008-06-27 14:37   ` [PATCH/RFC] stash: introduce 'stash save --keep-index' option SZEDER Gábor
2008-06-27 18:26     ` Junio C Hamano
2008-06-27 16:54   ` An alternate model for preparing partial commits Robert Anderson
2008-06-27 17:27     ` Björn Steinbrink
2008-06-27 17:34       ` Robert Anderson
2008-06-27  8:35 ` Johannes Sixt
2008-06-27 17:01   ` Robert Anderson
2008-06-27  8:50 ` Petr Baudis
2008-06-27 17:02   ` Robert Anderson
2008-06-27 13:33 ` Johannes Schindelin
2008-06-27 13:49   ` Miklos Vajna
2008-06-27 17:14   ` Robert Anderson
2008-06-27 17:45     ` Johannes Schindelin
2008-06-27 17:49       ` Robert Anderson
     [not found]         ` <alpine.DEB.1.00.0806271854120.9925@racer>
2008-06-27 18:07           ` Robert Anderson
2008-06-27 18:20         ` Dana How
2008-06-27 20:31     ` Stephen Sinclair
     [not found]       ` <willow-jeske-01l7H4tHFEDjCgPV-01l7ZhB8FEDjCdJs>
2008-06-27 20:45         ` David Jeske
2008-06-27 20:45         ` David Jeske
2008-06-28 17:23           ` Wincent Colaiuta
2008-06-28  2:14     ` Dmitry Potapov
2008-06-28  2:57       ` Robert Anderson
2008-06-28  4:03         ` Dmitry Potapov
     [not found]           ` <9af502e50806272320p23f01e8eo4a67c5f6f4476098@mail.gmail.com>
2008-06-28  6:31             ` Fwd: " Robert Anderson
2008-06-28 12:38               ` Dmitry Potapov
     [not found]             ` <20080628123522.GL5737@dpotapov.dyndns.org>
2008-06-28 15:53               ` Robert Anderson
2008-06-28 16:52                 ` Dmitry Potapov
2008-06-27 18:15   ` Junio C Hamano
2008-06-27 18:43     ` Robert Anderson
2008-06-28  5:03     ` Jeff King
2008-06-28  7:03       ` Robert Anderson
2008-06-28  8:53         ` Jeff King
2008-06-28 21:53           ` Junio C Hamano
2008-06-28 14:51       ` Johannes Schindelin
2008-07-08  4:58         ` Jeff King
     [not found] ` <willow-jeske-01l7H4tHFEDjCgPV-01l7H4sOFEDjCbyi>
2008-06-27 20:29   ` David Jeske
2008-06-27 20:29   ` David Jeske
2008-06-27 20:47     ` Jakub Narebski
     [not found]       ` <willow-jeske-01l7H4tHFEDjCgPV-01l7[1OFFEDjCYJV>
2008-06-27 20:51         ` David Jeske
2008-06-27 20:51         ` David Jeske
     [not found]       ` <-8386235276716376372@unknownmsgid>
2008-06-27 22:55         ` Robert Anderson
2008-06-27 23:14           ` Junio C Hamano
2008-06-28  0:08             ` Robert Anderson
2008-06-28  2:57               ` Dmitry Potapov
2008-06-28  3:31                 ` Robert Anderson
2008-06-28 14:34               ` Stephen Sinclair
2008-06-28 16:00                 ` Robert Anderson
2008-06-28 16:30                 ` Robert Anderson
2008-06-28 17:12                   ` Jakub Narebski [this message]
2008-06-28 18:25                     ` Robert Anderson
     [not found]                       ` <willow-jeske-01l7H4tHFEDjCgPV-01l82hwbFEDjCX70>
2008-06-28 19:12                         ` David Jeske
2008-06-28 19:12                         ` David Jeske
2008-06-28 19:13                   ` Stephen Sinclair
     [not found]           ` <willow-jeske-01l7H4tHFEDjCgPV-01l7buicFEDjCagd>
2008-06-28  0:22             ` David Jeske
2008-06-28  0:22             ` David Jeske
  -- strict thread matches above, loose matches on Subject: below --
2008-06-28  1:17 Theodore Tso
2008-06-28  1:56 ` Miklos Vajna
2008-06-28  1:23 Theodore Tso
2008-06-28  9:30 Stephen R. van den Berg

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=m3d4m1iivq.fsf@localhost.localdomain \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=radarsat1@gmail.com \
    --cc=rwa000@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).