1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-08 02:03:12 +01:00
Find a file
Johan Herland 1838685780 fast-import: Fix incorrect fanout level when modifying existing notes refs
This fixes the bug uncovered by the tests added in the previous two patches.

When an existing notes ref was loaded into the fast-import machinery, the
num_notes counter associated with that ref remained == 0, even though the
true number of notes in the loaded ref was higher. This caused a fanout
level of 0 to be used, although the actual fanout of the tree could be > 0.
Manipulating the notes tree at an incorrect fanout level causes removals to
silently fail, and modifications of existing notes to instead produce an
additional note (leaving the old object in place at a different fanout level).

This patch fixes the bug by explicitly counting the number of notes in the
notes tree whenever it looks like the num_notes counter could be wrong (when
num_notes == 0). There may be false positives (i.e. triggering the counting
when the notes tree is truly empty), but in those cases, the counting should
not take long.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-28 16:38:46 -08:00
block-sha1
builtin builtin-branch: Fix crash on invalid use of --force 2011-11-23 13:23:33 -08:00
compat Revert "upload-archive: use start_command instead of fork" 2011-11-15 15:39:33 -08:00
contrib Merge branch 'sn/complete-bash-wo-process-subst' 2011-11-09 05:46:39 -08:00
Documentation Git 1.7.8-rc4 2011-11-28 14:07:22 -08:00
git-gui Merge git://repo.or.cz/git-gui 2011-10-16 03:01:44 -07:00
git_remote_helpers Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
gitk-git
gitweb Merge branch 'jm/maint-gitweb-filter-forks-fix' into maint 2011-11-08 16:26:50 -08:00
mergetools mergetools: use the correct tool for Beyond Compare 3 on Windows 2011-10-15 20:13:55 -07:00
perl libperl-git: refactor Git::config_* 2011-10-18 12:00:33 -07:00
po
ppc
t fast-import: Fix incorrect fanout level when modifying existing notes refs 2011-11-28 16:38:46 -08:00
templates Merge branch 'maint-1.7.6' into maint 2011-10-26 16:09:28 -07:00
vcs-svn
xdiff Merge branch 'rs/diff-cleanup-records-fix' into maint 2011-10-21 10:49:25 -07:00
.gitattributes
.gitignore
.mailmap
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c archive.c: use OPT_BOOL() 2011-09-27 17:00:06 -07:00
archive.h
argv-array.c refactor argv_array into generic code 2011-09-14 11:56:36 -07:00
argv-array.h refactor argv_array into generic code 2011-09-14 11:56:36 -07:00
attr.c attr.c: respect core.ignorecase when matching attribute patterns 2011-10-11 09:43:05 -07:00
attr.h
base85.c
bisect.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
bisect.h
blob.c
blob.h
branch.c revert: write REVERT_HEAD pseudoref during conflicted revert 2011-11-22 13:34:44 -08:00
branch.h branch --set-upstream: regression fix 2011-09-16 21:47:47 -07:00
builtin.h
bundle.c Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
bundle.h Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
cache-tree.c
cache-tree.h
cache.h Merge branch 'jk/maint-pack-objects-compete-with-delete' 2011-10-21 16:04:33 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
combine-diff.c Merge branch 'jk/color-and-pager' 2011-08-28 21:19:16 -07:00
command-list.txt Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages 2011-10-16 11:09:35 -07:00
commit.c Merge branch 'nd/maint-autofix-tag-in-head' into maint 2011-10-21 10:49:26 -07:00
commit.h Merge branch 'nd/maint-autofix-tag-in-head' into maint 2011-10-21 10:49:26 -07:00
config.c config.c: Fix a static buffer overwrite bug by avoiding mkpath() 2011-11-20 19:32:09 -08:00
config.mak.in
configure.ac
connect.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
connected.c check_everything_connected(): libify 2011-09-09 15:19:02 -07:00
connected.h check_everything_connected(): libify 2011-09-09 15:19:02 -07:00
convert.c convert.c: Fix return type of git_path_check_eol() 2011-11-21 11:00:57 -08:00
convert.h
copy.c
COPYING
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'jk/daemon-msgs' 2011-10-21 16:04:32 -07:00
date.c date.c: Support iso8601 timezone formats 2011-09-12 16:49:14 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c Merge branch 'cn/eradicate-working-copy' into maint 2011-10-26 16:13:31 -07:00
diff-no-index.c
diff.c Merge branch 'jc/maint-diffstat-numstat-context' into maint 2011-11-01 16:10:56 -07:00
diff.h diff: add option to show whole functions as context 2011-10-10 12:05:07 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c pickaxe: factor out pickaxe 2011-10-07 15:46:14 -07:00
diffcore-rename.c
diffcore.h
dir.c rename pathspec_prefix() to common_prefix() and move to dir.[ch] 2011-09-12 14:38:32 -07:00
dir.h rename pathspec_prefix() to common_prefix() and move to dir.[ch] 2011-09-12 14:38:32 -07:00
editor.c
entry.c
environment.c Merge branch 'bc/attr-ignore-case' 2011-10-17 21:37:14 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c fast-import: Fix incorrect fanout level when modifying existing notes refs 2011-11-28 16:38:46 -08:00
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-am.sh Merge branch 'gb/am-hg-patch' 2011-10-05 12:36:17 -07:00
git-archimport.perl
git-bisect.sh Merge branch 'js/bisect-no-checkout' into maint 2011-11-01 16:03:35 -07:00
git-compat-util.h git-compat-util: don't assume value for undefined variable 2011-11-15 16:09:34 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-difftool--helper.sh git-difftool: allow skipping file by typing 'n' at prompt 2011-10-10 10:21:11 -07:00
git-difftool.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-filter-branch.sh Merge branch 'jk/filter-branch-require-clean-work-tree' into maint 2011-10-15 20:46:38 -07:00
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh Merge branch 'js/maint-merge-one-file-osx-expr' into maint 2011-10-21 10:49:25 -07:00
git-merge-resolve.sh
git-mergetool--lib.sh Merge branch 'maint' 2011-09-19 20:46:48 -07:00
git-mergetool.sh Merge branch 'jm/mergetool-pathspec' into maint-1.7.6 2011-10-26 16:12:25 -07:00
git-parse-remote.sh
git-pull.sh Merge branch 'jk/pull-rebase-with-work-tree' into maint 2011-11-01 16:11:00 -07:00
git-quiltimport.sh
git-rebase--am.sh
git-rebase--interactive.sh "rebase -i": support special-purpose editor to edit insn sheet 2011-10-17 14:40:07 -07:00
git-rebase--merge.sh
git-rebase.sh Merge branch 'jk/pull-rebase-with-work-tree' into maint 2011-11-01 16:11:00 -07:00
git-relink.perl
git-remote-testgit.py (short) documentation for the testgit remote helper 2011-09-01 15:52:02 -07:00
git-repack.sh
git-request-pull.sh
git-send-email.perl Merge branch 'md/smtp-tls-hello-again' into maint 2011-11-01 16:12:19 -07:00
git-sh-i18n.sh
git-sh-setup.sh use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-stash.sh Merge branch 'bc/unstash-clean-crufts' 2011-10-05 12:36:17 -07:00
git-submodule.sh Merge branch 'tc/submodule-clone-name-detection' 2011-10-26 16:16:32 -07:00
git-svn.perl svn: Quote repository root in regex match 2011-11-01 20:05:33 +00:00
GIT-VERSION-GEN Git 1.7.8-rc4 2011-11-28 14:07:22 -08:00
git-web--browse.sh git-web--browse: avoid the use of eval 2011-10-03 10:47:07 -07:00
git.c Merge branch 'jk/pager-with-external-command' 2011-08-28 21:19:25 -07:00
git.spec.in gitweb: Add gitweb manpages to 'gitweb' package in git.spec 2011-10-16 11:09:35 -07:00
graph.c
graph.h
grep.c Merge branch 'fk/use-kwset-pickaxe-grep-f' 2011-09-02 10:00:38 -07:00
grep.h
hash.c
hash.h
help.c
help.h
hex.c get_sha1_hex(): do not read past a NUL character 2011-10-05 13:45:16 -07:00
http-backend.c
http-fetch.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
http-push.c Merge branch 'jc/match-refs-clarify' 2011-10-21 16:04:35 -07:00
http-walker.c
http.c http: remove unused function hex() 2011-11-15 16:08:48 -08:00
http.h http_init: accept separate URL parameter 2011-10-15 21:18:36 -07:00
ident.c ident: do not retrieve default ident when unnecessary 2011-10-06 11:16:16 -07:00
imap-send.c
INSTALL docs: Update install-doc-quick 2011-11-08 13:37:10 -08:00
kwset.c sparse: Fix an "Using plain integer as NULL pointer" warning 2011-09-11 14:43:14 -07:00
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
list-objects.c list-objects: pass callback data to show_objects() 2011-09-01 15:46:12 -07:00
list-objects.h list-objects: pass callback data to show_objects() 2011-09-01 15:46:12 -07:00
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c Merge branch 'js/log-show-children' 2011-10-18 21:59:12 -07:00
log-tree.h
mailmap.c Merge branch 'ml/mailmap' into maint 2011-11-18 11:14:00 -08:00
mailmap.h
Makefile Makefile: add option to disable automatic dependency generation 2011-11-18 11:35:08 -08:00
match-trees.c
merge-file.c
merge-file.h
merge-recursive.c Merge branch 'cn/eradicate-working-copy' into maint 2011-10-26 16:13:31 -07:00
merge-recursive.h
name-hash.c name-hash.c: always initialize dir_next pointer 2011-11-01 15:29:18 -07:00
notes-cache.c
notes-cache.h
notes-merge.c Sync with 1.7.7.4 2011-11-18 11:30:02 -08:00
notes-merge.h
notes.c
notes.h
object.c
object.h
pack-check.c
pack-refs.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c
parse-options-cb.c parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
parse-options.c parse-options: deprecate OPT_BOOLEAN 2011-09-27 17:00:04 -07:00
parse-options.h parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c Learn to handle gitfiles in enter_repo 2011-10-04 13:30:38 -07:00
pkt-line.c
pkt-line.h
preload-index.c
pretty.c Merge branch 'nd/pretty-commit-log-message' 2011-11-01 15:20:03 -07:00
progress.c
progress.h
quote.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
quote.h quote: provide sq_dequote_to_argv_array 2011-09-14 11:56:49 -07:00
reachable.c
reachable.h
read-cache.c read-cache.c: fix index memory allocation 2011-10-26 14:35:16 -07:00
README
reflog-walk.c
reflog-walk.h
refs.c refs: loosen over-strict "format" check 2011-11-16 21:52:24 -08:00
refs.h Merge branch 'jc/broken-ref-dwim-fix' 2011-10-21 16:04:36 -07:00
RelNotes Git 1.7.7.4 2011-11-18 11:28:05 -08:00
remote-curl.c Merge branch 'sp/smart-http-failure' into maint 2011-11-01 15:45:16 -07:00
remote.c Merge branch 'cn/fetch-prune' 2011-10-26 16:16:29 -07:00
remote.h Merge branch 'cn/fetch-prune' 2011-10-26 16:16:29 -07:00
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'nd/maint-autofix-tag-in-head' into maint 2011-10-21 10:49:26 -07:00
revision.h Merge branch 'bk/ancestry-path' into maint 2011-10-15 20:46:38 -07:00
run-command.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
run-command.h
send-pack.h
sequencer.c
sequencer.h revert: rename --reset option to --quit 2011-11-22 13:30:35 -08:00
server-info.c
setup.c Merge branch 'cb/common-prefix-unification' 2011-10-10 15:56:17 -07:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c sha1_file: don't mix enum with int 2011-11-15 16:09:20 -08:00
sha1_name.c Merge branch 'jc/broken-ref-dwim-fix' 2011-10-21 16:04:36 -07:00
shallow.c
shell.c
shortlog.h
show-index.c cleanup: use internal memory allocation wrapper functions everywhere 2011-10-06 13:54:32 -07:00
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf.c: remove unnecessary strbuf_grow() from strbuf_getwholeline() 2011-10-18 13:28:17 -07:00
strbuf.h Merge branch 'jk/maint-config-param' into maint 2011-09-11 21:53:13 -07:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
submodule.h submodule: Search for merges only at end of recursive merge 2011-10-13 10:18:16 -07:00
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c
test-ctype.c test-ctype: add test for is_pathspec_magic 2011-10-03 11:44:03 -07:00
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-obj-pool.c
test-parse-options.c parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
test-path-utils.c
test-run-command.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-pool.c
test-subprocess.c
test-svn-fe.c
test-treap.c
thread-utils.c
thread-utils.h
trace.c
transport-helper.c cleanup: use internal memory allocation wrapper functions everywhere 2011-10-06 13:54:32 -07:00
transport.c Merge branch 'jc/match-refs-clarify' 2011-10-21 16:04:35 -07:00
transport.h
tree-diff.c
tree-walk.c Merge branch 'dm/tree-walk' 2011-10-10 15:56:20 -07:00
tree-walk.h traverse_trees(): allow pruning with pathspec 2011-08-29 14:32:04 -07:00
tree.c
tree.h
unimplemented.sh
unpack-trees.c Merge branch 'maint-1.7.6' into maint 2011-10-26 16:09:28 -07:00
unpack-trees.h Merge branch 'jc/diff-index-unpack' into maint 2011-10-15 20:46:36 -07:00
upload-pack.c Merge branch 'jc/fetch-verify' 2011-10-05 12:36:20 -07:00
url.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
url.h
usage.c
userdiff.c
userdiff.h
utf8.c
utf8.h
walker.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
walker.h
wrap-for-bin.sh
wrapper.c
write_or_die.c
ws.c
wt-status.c Merge branch 'maint-1.7.5' into maint-1.7.6 2011-10-26 16:08:19 -07:00
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. 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.