提交 399144f2 编写于 作者: L Linus Torvalds

Add a "git rename" to help with - surprise surprise - renames

It's stupid.  We'd want to rename directories too, but this doesn't do
that yet - easy enough to do per se, we just need to carefully list all
the pathnames that got moved (and remember to ignore the files that
weren't tracked but are in the subdirectory that got moved).

Doing the directory case will require a bit more scripting.. Something like

	oldfiles=($(git-ls-files | grep '^$src'))
	newfiles=($(git-ls-files | sed ':^$src: s:^$src:$dst:'))
	mv $src $dst && git-update-cache --add --remove -- "${oldfiles[@]}" "${newfiles[@]}"

might do it, except it needs to be done right, and carefully.  Methinks
perl is probably better at this. Hint hint..
上级 fd1fcd9f
......@@ -37,7 +37,7 @@ SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
gitk git-cherry git-rebase-script git-relink-script git-repack-script \
git-format-patch-script git-sh-setup-script git-push-script \
git-branch-script git-parse-remote git-verify-tag-script \
git-ls-remote-script git-clone-dumb-http
git-ls-remote-script git-clone-dumb-http git-rename-script
PROG= git-update-cache git-diff-files git-init-db git-write-tree \
git-read-tree git-commit-tree git-cat-file git-fsck-cache \
......
#!/bin/sh
. git-sh-setup-script || die "Not a git archive"
[ -f "$1" ] || [ -h "$1" ] || die "git rename: bad source"
[ -e "$2" ] && die "git rename: destination already exists"
mv -- "$1" "$2" && git-update-cache --add --remove -- "$1" "$2"
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册