Junio C Hamano <junkio@xxxxxxx> wrote: > David Kågedal <davidk@xxxxxxxxxxxxxx> writes: > > > I'm wondering what the best way to commit the removal of a file is. > > $ rm -f foo > $ git-commit -a > > > git status shows: > > > > $ git status > > # On branch refs/heads/messages > > # Changed but not added: > > # (use "git add <file>..." to incrementally add content to commit) > > # > > # deleted: foo > > Suggesting "git add" to record the deletion feels insane. Is > this what we still do? I think there have been much work > in this area recently so the wordings might have already fixed. > > > Ok, so that didn't work. Let's try rm instead: > > > > $ git rm foo > > fatal: pathspec 'foo' did not match any files > > > > The above message is from an older version of git-rm, but the > one that will be in v1.5.0 is not any better. It errs out with > "No such file or directory". A workaround using today's tool is > to do "git rm --cached fo" > > I think the right fix is to suggest "git add/rm" in status > output and make "git rm" not barf if the user has already > removed the file from the working tree. Would having a command like 'hg addremove' make things easier? I've been using the below script since my early days of using git, but I don't think I've ever published it. If you want I can create a patch against git.git ----------------------------------------------------------------------- #!/bin/sh # like the addremove command in mercurial if test "x$1" = "x-h" then echo "Usage: git-addrm [<path>]" exit 0 fi SUBDIRECTORY_OK=1 . git-sh-setup || die "Not a git archive" EXCLUDE_ARGS=--exclude-per-directory=.gitignore if test -f "$GIT_DIR/info/exclude" then EXCLUDE_ARGS="$EXCLUDE_ARGS --exclude-from=$GIT_DIR/info/exclude" fi set -e git-ls-files -z --deleted $EXCLUDE_ARGS "$@"| \ git-update-index --remove -z --stdin git-ls-files -z --others $EXCLUDE_ARGS "$@" | \ git-update-index --add -z --stdin ----------------------------------------------------------------------- -- Eric Wong - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html