1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-12 20:23:02 +01:00
Find a file
Jeff King 4f7cb99ada merge-recursive: don't detect renames of empty files
Merge-recursive detects renames so that if one side modifies
"foo" and the other side moves it to "bar", the modification
is applied to "bar". However, our rename detection is based
on content analysis, it can be wrong (i.e., two files were
not intended as a rename, but just happen to have the same
or similar content).

This is quite rare if the files actually contain content,
since two unrelated files are unlikely to have exactly the
same content.  However, empty files present a problem, in
that there is nothing to analyze. An uninteresting
placeholder file with zero bytes may or may not be related
to a placeholder file with another name.

The result is that adding content to an empty file may cause
confusion if the other side of a merge removed it; your
content may end up in another random placeholder file that
was added.

Let's err on the side of caution and not consider empty
files as renames. This will cause a modify/delete conflict
on the merge, which will let the user sort it out
themselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-03-23 13:52:51 -07:00
block-sha1
builtin drop casts from users EMPTY_TREE_SHA1_BIN 2012-03-23 13:52:05 -07:00
compat
contrib Merge branch 'th/git-diffall' 2012-03-15 21:54:42 -07:00
Documentation Update draft release notes to 1.7.10 2012-03-16 08:42:22 -07:00
git-gui
git_remote_helpers
gitk-git
gitweb Merge branch 'maint-1.7.8' into maint 2012-03-20 15:53:30 -07:00
mergetools mergetools: add a plug-in to support DeltaWalker 2012-03-05 09:31:47 -08:00
perl perl/Makefile: install Git::I18N under NO_PERL_MAKEMAKER 2012-03-16 09:15:28 -07:00
po l10n: Improve zh_CN translation for msg "not something we can merge" 2012-03-09 00:22:56 +08:00
ppc
t merge-recursive: don't detect renames of empty files 2012-03-23 13:52:51 -07:00
templates
vcs-svn
xdiff
.gitattributes
.gitignore
.mailmap
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
base85.c
bisect.c
bisect.h rev-list: fix --verify-objects --quiet becoming --objects 2012-02-28 10:47:30 -08:00
blob.c
blob.h
branch.c
branch.h
builtin.h
bulk-checkin.c
bulk-checkin.h
bundle.c Merge branch 'tr/maint-bundle-boundary' into maint 2012-03-12 15:46:54 -07:00
bundle.h
cache-tree.c
cache-tree.h
cache.h make is_empty_blob_sha1 available everywhere 2012-03-23 13:52:13 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
combine-diff.c
command-list.txt
commit.c
commit.h
config.c Merge branch 'ms/maint-config-error-at-eol-linecount' 2012-03-13 12:35:53 -07:00
config.mak.in
configure.ac configure: allow user to prevent $PATH "sanitization" on Solaris 2012-03-09 11:39:51 -08:00
connect.c
connected.c fetch/receive: remove over-pessimistic connectivity check 2012-03-15 15:23:17 -07:00
connected.h
convert.c Merge branch 'jk/maint-avoid-streaming-filtered-contents' into maint 2012-03-04 22:16:40 -08:00
convert.h teach convert_to_git a "dry run" mode 2012-02-24 14:11:27 -08:00
copy.c
COPYING
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c
csum-file.h
ctype.c Merge branch 'jc/pickaxe-ignore-case' 2012-03-07 12:12:59 -08:00
daemon.c
date.c
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c teach diffcore-rename to optionally ignore empty content 2012-03-23 13:52:49 -07:00
diff.h teach diffcore-rename to optionally ignore empty content 2012-03-23 13:52:49 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c pickaxe: allow -i to search in patch case-insensitively 2012-02-28 16:15:29 -08:00
diffcore-rename.c teach diffcore-rename to optionally ignore empty content 2012-03-23 13:52:49 -07:00
diffcore.h
dir.c
dir.h
editor.c
entry.c
environment.c
exec_cmd.c
exec_cmd.h
fast-import.c two fixes for fast-import's "ls" command 2012-03-16 08:19:18 -07:00
fetch-pack.h
fixup-builtins
fmt-merge-msg.h
fsck.c
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-am.sh am: officially deprecate -b/--binary option 2012-03-13 12:21:04 -07:00
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'jc/pickaxe-ignore-case' 2012-03-07 12:12:59 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-parse-remote.sh Make git-{pull,rebase} message without tracking information friendlier 2012-03-04 23:00:57 -08:00
git-pull.sh Make git-{pull,rebase} message without tracking information friendlier 2012-03-04 23:00:57 -08:00
git-quiltimport.sh
git-rebase--am.sh
git-rebase--interactive.sh
git-rebase--merge.sh rebase -m: only call "notes copy" when rewritten exists and is non-empty 2012-02-26 16:32:37 -08:00
git-rebase.sh Make git-{pull,rebase} message without tracking information friendlier 2012-03-04 23:00:57 -08:00
git-relink.perl
git-remote-testgit.py
git-repack.sh
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh i18n: fix auto detection of gettext scheme for shell scripts 2012-03-12 14:41:15 -07:00
git-sh-setup.sh
git-stash.sh
git-submodule.sh submodules: fix ambiguous absolute paths under Windows 2012-03-04 21:22:46 -08:00
git-svn.perl
GIT-VERSION-GEN Git 1.7.10-rc1 2012-03-14 15:47:45 -07:00
git-web--browse.sh
git.c
git.spec.in
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c Merge branch 'jc/pickaxe-ignore-case' 2012-03-07 12:12:59 -08:00
grep.h
hash.c
hash.h
help.c
help.h
hex.c
http-backend.c
http-fetch.c
http-push.c
http-walker.c
http.c http: support proxies that require authentication 2012-03-02 14:40:14 -08:00
http.h
ident.c
imap-send.c
INSTALL
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
list-objects.c
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c
log-tree.h
mailmap.c
mailmap.h
Makefile Merge branch 'master' into git-po 2012-02-28 12:23:26 +08:00
match-trees.c
merge-file.c
merge-file.h
merge-recursive.c merge-recursive: don't detect renames of empty files 2012-03-23 13:52:51 -07:00
merge-recursive.h
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h
notes.c
notes.h
object.c
object.h
pack-check.c
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branches zj/decimal-width, zj/term-columns and jc/diff-stat-scaler 2012-02-24 16:07:04 -08:00
parse-options-cb.c
parse-options.c parse-options: typo check for unknown switches 2012-03-04 18:28:59 -08:00
parse-options.h parse-options: remove PARSE_OPT_NEGHELP 2012-02-28 11:48:11 -08:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c
pkt-line.c
pkt-line.h
preload-index.c
pretty.c
progress.c
progress.h
prompt.c
prompt.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c make is_empty_blob_sha1 available everywhere 2012-03-23 13:52:13 -07:00
README
reflog-walk.c
reflog-walk.h
refs.c
refs.h
RelNotes Git 1.7.9.4 2012-03-12 15:52:52 -07:00
remote-curl.c
remote.c
remote.h
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jc/pickaxe-ignore-case' 2012-03-07 12:12:59 -08:00
revision.h
run-command.c
run-command.h
send-pack.h
sequencer.c drop casts from users EMPTY_TREE_SHA1_BIN 2012-03-23 13:52:05 -07:00
sequencer.h
server-info.c
setup.c
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'jk/maint-avoid-streaming-filtered-contents' into maint 2012-03-04 22:16:40 -08:00
sha1_name.c
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c Merge branch 'tr/maint-bundle-long-subject' into maint 2012-03-04 22:16:30 -08:00
strbuf.h Merge branch 'tr/maint-bundle-long-subject' into maint 2012-03-04 22:16:30 -08:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule.c
submodule.h
symlinks.c Add threaded versions of functions in symlinks.c. 2012-03-02 23:56:28 -08:00
tag.c
tag.h
tar.h
test-chmtime.c
test-credential.c
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mktemp.c
test-parse-options.c test-parse-options: convert to OPT_BOOL() 2012-02-26 15:18:41 -08:00
test-path-utils.c
test-run-command.c
test-scrap-cache-tree.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-subprocess.c
test-svn-fe.c
thread-utils.c
thread-utils.h
trace.c
transport-helper.c Merge branch 'sp/smart-http-failure-to-push' into maint 2012-03-04 22:16:33 -08:00
transport.c Merge branch 'fc/push-prune' 2012-02-26 23:05:45 -08:00
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c
unpack-trees.h
upload-pack.c
url.c
url.h
usage.c
userdiff.c
userdiff.h
utf8.c
utf8.h
walker.c
walker.h
wrap-for-bin.sh
wrapper.c
write_or_die.c
ws.c
wt-status.c
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public License.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

Many Git online resources are accessible from http://git-scm.com/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://marc.theaimsgroup.com/?l=git and other archival
sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.