From: Pierre Habouzit <madcoder@debian.org>
To: Bill Lear <rael@zopyra.com>
Cc: git@vger.kernel.org
Subject: Re: pull into dirty working tree
Date: Wed, 13 Jun 2007 16:38:45 +0200 [thread overview]
Message-ID: <20070613143845.GD5311@artemis.intersec.eu> (raw)
In-Reply-To: <18031.64456.948230.375333@lisa.zopyra.com>
[-- Attachment #1: Type: text/plain, Size: 2697 bytes --]
On Wed, Jun 13, 2007 at 09:14:32AM -0500, Bill Lear wrote:
> We have some CVS users who complain that they cannot do a pull
> into a dirty working tree, as they could under CVS. Here is
> their scenario: they make a few changes to their code and want
> to test it out; someone else pushes changes to the central repo
> that they then want to add to their working tree to test also;
> they then want to pull in these changes and test everything, as
> if they had done 'mv stuff stuff-; git pull; mv stuff- stuff'.
>
> They would like an option (perhaps a config option) to do a "dirty
> pull".
>
> The git-merge documentation states:
>
> You may have local modifications in the working tree files. In other
> words, git-diff is allowed to report changes. However, the merge uses
> your working tree as the working area, and in order to prevent the
> merge operation from losing such changes, it makes sure that they do
> not interfere with the merge. Those complex tables in read-tree
> documentation define what it means for a path to "interfere with the
> merge". And if your local modifications interfere with the merge,
> again, it stops before touching anything.
>
> But my colleagues are still wondering: why can't git just do it as
> CVS does?
>
> I know there are workarounds: I myself documented a set of commands
> to "put things on a shelf", but they still are whining.
>
> I need a convincing argument: not a technical one, but one that is
> practical (e.g. where CVS would do harm that git is preventing).
>
> So, any explanation that I can give them why we can't have a 'git pull
> --dirty' that moves things out of the way, then does the merge, then
> moves thing back, aside from that it is stupid?
I suppose the following way would work:
$ git commit -a -m "temporary commit" # save current work
$ git branch -f dirty # ..in a separate branch
$ git reset --hard HEAD~1 # unwind this commit
$ git pull # perform a clean pull
$ git rebase master dirty # rewrite the work
<you may have to fix some conficts here>
$ git reset master # "undo" the commit
So that's definitely doable.
Though, in git, if you really work in a "pure" git environment, you
never pull until your work in your topic branch is ready for a merge.
It's a very bad habit to do otherwise: you don't _need_ to pull until
you have a clean slate.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-06-13 14:38 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-13 14:14 pull into dirty working tree Bill Lear
2007-06-13 14:38 ` Pierre Habouzit [this message]
2007-06-13 14:43 ` Pierre Habouzit
2007-06-13 14:47 ` Pierre Habouzit
2007-06-13 14:45 ` Bill Lear
2007-06-13 14:53 ` Pierre Habouzit
2007-06-13 15:01 ` Randal L. Schwartz
2007-06-13 19:28 ` Alex Riesen
2007-06-13 19:32 ` Randal L. Schwartz
2007-06-13 20:47 ` Alex Riesen
2007-06-13 20:52 ` Randal L. Schwartz
2007-06-13 21:39 ` Alex Riesen
2007-06-13 22:01 ` Randal L. Schwartz
2007-06-13 22:27 ` Alex Riesen
2007-06-13 15:01 ` Johannes Schindelin
2007-06-13 15:40 ` Andy Parkins
2007-06-13 15:54 ` Johannes Schindelin
2007-06-13 15:56 ` Bill Lear
2007-06-13 16:07 ` Johannes Schindelin
2007-06-13 16:30 ` Bill Lear
2007-06-13 17:13 ` Junio C Hamano
2007-06-14 4:22 ` Daniel Barkalow
2007-06-14 5:21 ` Linus Torvalds
2007-06-14 7:49 ` Junio C Hamano
2007-06-14 8:01 ` Raimund Bauer
2007-06-14 8:06 ` Steven Grimm
2007-06-14 14:25 ` Nicolas Pitre
2007-06-14 12:46 ` Bill Lear
2007-06-14 15:46 ` Linus Torvalds
2007-06-14 20:20 ` Olivier Galibert
2007-06-14 20:30 ` Linus Torvalds
2007-06-15 0:46 ` Martin Langhoff
2007-06-15 1:07 ` Linus Torvalds
2007-06-15 3:33 ` Martin Langhoff
2007-06-15 18:26 ` Robin Rosenberg
-- strict thread matches above, loose matches on Subject: below --
2007-06-13 15:03 MichaelTiloDressel
2007-06-13 15:36 ` Bill Lear
2007-06-13 17:31 ` Michael Dressel
2007-06-13 18:12 ` Bill Lear
2007-06-13 18:30 ` Johannes Schindelin
2007-06-13 18:56 ` Bill Lear
2007-06-13 20:17 ` Robin Rosenberg
2007-06-13 23:32 ` Johannes Schindelin
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=20070613143845.GD5311@artemis.intersec.eu \
--to=madcoder@debian.org \
--cc=git@vger.kernel.org \
--cc=rael@zopyra.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 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.