El 20/10/2007, a las 7:55, Ari Entlich escribió:Well, my point was that sometimes you want to rename a dirty file *right now* without having your modifications staged in the index yet, and only later go ahead and stage the hunks (or the whole file) when they're ready. Basically, without this feature you have to manually unstage the stuff that you don't want staged: [hack on dirty foo] git mv foo bar [oops... you just staged unfinished changes] git reset HEAD bar [hack until bar is ready] git add bar So in order to unstage the stuff that wasn't ready you unstaged the whole file and had to re-add it later, in which case what was the point of using "git-mv" in the first place? You may as well have just done: [hack on dirty foo] mv foo bar [hack until bar is ready] git rm foo git add bar The other alternative is to use git-stash: [hack on dirty foo] git stash git mv foo bar git stash apply [hack until bar is ready] git add bar So, yes, you can do this with git-stash. It just means that "git-mv -- cached" would be a convenient short-cut. No, sorry, I didn't make that clear. I meant that "git mv --cached foo bar" would have the following effect (which if I understand it correctly is basically what you proposed in your first email): 1. Copying "foo" directly to "bar" (even if dirty). 2. When adding "bar" to the the index add the blob corresponding to "foo" as it is staged in the index (or at the HEAD if there are no staged changes). 3. Removing the old file "foo". The actual mechanics of this don't matter; those are just the perceived effects. You could get exactly the same perceived effects by doing it this way: 1. Creating a new file (or overwriting an existing one) named "bar", whose contents would match those of the file "foo" not as it appears in the working tree but as it is staged in the index. 2. If "foo" has unstaged changes, they should be applied to "bar" as well (but not staged). 3. Removing the old file "foo". Whoops. I think I just inadvertently proposed a feature... my most common use of "git-add --interactive" is when I want to stage only specific hunks of a particular file, and so instead of typing "git add bar" I want to type "git add -i bar" and have it jump straight to the "patch" subcommand (5) for that file. Would anyone else find this useful? Cheers, Wincent - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Greg Kroah-Hartman | [PATCH 006/196] Chinese: add translation of oops-tracing.txt |
| Andrew Morton | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
| Eric W. Biederman | [PATCH] nfs lockd reclaimer: Convert to kthread API |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
