From: lmage11@twcny.rr.com
To: git@vger.kernel.org
Subject: Proposed git mv behavioral change
Date: Thu, 18 Oct 2007 11:47:32 -0400 [thread overview]
Message-ID: <c594999b2337.2337c594999b@nyroc.rr.com> (raw)
Hey, all...
Based on a question I asked on freenode's #git channel a few days ago, it seems that most
people only use git
mv when the file they're moving is clean. Those that don't have become accustomed to the
behavior that git-mv
uses when the file is dirty - to pull all unstaged changes into the index. As far as I can tell,
this behavior is
largely historical. When git-mv was written in bash (or perl, or whatever it was initially written
in), it was most
convenient to implement it as "mv oldname newname; git add newname;", or something
similar, which would
result in pulling in all wd changes. However, it seems to me that this behavior violates git's
consistency. Usually
when I do something with git, I expect it to do only what it says it will do, and nothing more.
The
documentation for git-mv says "The index is updated after successful completion", but I
would tend to assume
that this was referring to the name change and not the change in the actual contents of the
file.
In my situation, I have some changes to a file that I'm not yet ready to commit. In the
meantime, I've started
working on another unrelated change that involves renaming one of the files which contain
unstaged changes.
I'd like to be able to perform this move without having my unstaged changes implicitly
staged without my
knowledge. When I want information put into the index, I either use git update-index if I
want to explicitly
stage an entire file or I use git add -i's patch command to explicitly stage individual chunks. I
like having very
fine-grained control over what goes into the index and what doesn't.
Therefore, I propose that git mv's behavior be changed. I think it would make far more sense
for a move to only
change the actual name of the file and to not pull in unstaged changes. In other words, I'd
like the index entry
for the original file name to be removed and an index entry to be added with a different
name, but using the
exact same blob hash as the original file. I don't know exactly how git manages the index
internally, but a
shortcut for this would be to simply rename the index entry in place.
I'm willing to look into what changes would need to be made to the code for this change to
happen; I'm not
asking for someone to do all the work for me. :)
So... Yeah. I'd like to know what people think about this before I put a significant amount of
effort into it. After
all, we know how lazy programmers are... :)
Thanks,
Ari
next reply other threads:[~2007-10-18 15:47 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-18 15:47 lmage11 [this message]
2007-10-19 1:47 ` Proposed git mv behavioral change Michael Witten
2007-10-19 1:57 ` Shawn O. Pearce
2007-10-19 2:07 ` Michael Witten
2007-10-19 2:15 ` Shawn O. Pearce
2007-10-19 2:16 ` Jeff King
2007-10-19 2:29 ` Michael Witten
2007-10-19 11:33 ` Wincent Colaiuta
2007-10-19 15:57 ` Michael Witten
2007-10-19 1:54 ` Shawn O. Pearce
2007-10-19 2:54 ` Michael Witten
2007-10-19 3:19 ` Shawn O. Pearce
2007-10-19 3:24 ` Jeff King
2007-10-19 3:26 ` Michael Witten
2007-10-19 3:35 ` Jeff King
2007-10-19 3:40 ` Michael Witten
2007-10-19 3:47 ` Jeff King
2007-10-19 3:53 ` Michael Witten
2007-10-19 3:58 ` Jeff King
2007-10-20 5:55 ` Ari Entlich
2007-10-20 6:24 ` Jeff King
2007-10-20 6:34 ` Michael Witten
2007-10-20 6:36 ` Jeff King
2007-10-20 6:36 ` Shawn O. Pearce
2007-10-20 6:40 ` Jeff King
2007-10-22 14:00 ` Karl Hasselström
2007-10-20 6:45 ` Michael Witten
2007-10-20 7:02 ` Shawn O. Pearce
2007-10-20 11:15 ` Wincent Colaiuta
2007-10-22 14:08 ` Karl Hasselström
2007-10-20 5:55 ` Ari Entlich
2007-10-20 6:30 ` Shawn O. Pearce
2007-10-20 7:46 ` Mike Hommey
2007-10-20 6:34 ` Jeff King
-- strict thread matches above, loose matches on Subject: below --
2007-10-19 4:41 lmage11
2007-10-20 5:55 Ari Entlich
2007-10-20 6:31 ` Jeff King
2007-10-20 11:02 ` Wincent Colaiuta
2007-10-20 11:06 ` Jeff King
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=c594999b2337.2337c594999b@nyroc.rr.com \
--to=lmage11@twcny.rr.com \
--cc=git@vger.kernel.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.
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).