1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-01 14:57:52 +01:00
Find a file
Jeff King 8376a70441 branch: clean up commit flags after merge-filter walk
When we run `branch --merged`, we use prepare_revision_walk
with the merge-filter marked as UNINTERESTING. Any branch
tips that are marked UNINTERESTING after it returns must be
ancestors of that commit. As we iterate through the list of
refs to show, we check item->commit->object.flags to see
whether it was marked.

This interacts badly with --verbose, which will do a
separate walk to find the ahead/behind information for each
branch. There are two bad things that can happen:

  1. The ahead/behind walk may get the wrong results,
     because it can see a bogus UNINTERESTING flag leftover
     from the merge-filter walk.

  2. We may omit some branches if their tips are involved in
     the ahead/behind traversal of a branch shown earlier.
     The ahead/behind walk carefully cleans up its commit
     flags, meaning it may also erase the UNINTERESTING
     flag that we expect to check later.

We can solve this by moving the merge-filter state for each
ref into its "struct ref_item" as soon as we finish the
merge-filter walk. That fixes (2). Then we are free to clear
the commit flags we used in the walk, fixing (1).

Note that we actually do away with the matches_merge_filter
helper entirely here, and inline it between the revision
walk and the flag-clearing. This ensures that nobody
accidentally calls it at the wrong time (it is only safe to
check in that instant between the setting and clearing of
the global flag).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-09-18 09:21:16 -07:00
block-sha1
builtin branch: clean up commit flags after merge-filter walk 2014-09-18 09:21:16 -07:00
compat Merge branch 'sk/mingw-uni-fix-more' 2014-07-30 14:21:09 -07:00
contrib Merge branch 'jk/contrib-subtree-make-all' 2014-09-11 10:33:27 -07:00
Documentation git svn: find-rev allows short switches for near matches 2014-09-14 08:08:24 +00:00
ewah
git-gui
gitk-git Merge branch 'master' of git://ozlabs.org/~paulus/gitk 2014-08-10 11:03:03 -07:00
gitweb
mergetools
perl
po po/TEAMS: add new members to German translation team 2014-08-29 07:08:17 +02:00
ppc
t branch: clean up commit flags after merge-filter walk 2014-09-18 09:21:16 -07:00
templates
vcs-svn
xdiff git-merge-file: do not add LF at EOF while applying unrelated change 2014-06-30 14:07:58 -07:00
.gitattributes
.gitignore test-config: add tests for the config_set API 2014-07-29 14:33:36 -07:00
.mailmap Sync with v2.0.3 2014-07-23 11:36:40 -07:00
abspath.c abspath: convert absolute_path() to strbuf 2014-08-26 11:06:06 -07:00
aclocal.m4
advice.c merge, pull: stop advising 'commit -a' in case of conflict 2014-08-28 10:29:53 -07:00
advice.h
alias.c alias.c: replace git_config() with git_config_get_string() 2014-08-07 13:33:29 -07:00
alloc.c alloc: factor out commit index 2014-07-28 10:14:33 -07:00
archive-tar.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
archive-zip.c
archive.c archive.c: replace git_config() with git_config_get_bool() family 2014-08-07 13:33:27 -07:00
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
base85.c
bisect.c Merge branch 'jk/name-decoration-alloc' 2014-09-11 10:33:36 -07:00
bisect.h
blob.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
blob.h
branch.c Merge branch 'rs/ref-transaction-1' 2014-09-11 10:33:31 -07:00
branch.h
builtin.h
bulk-checkin.c
bulk-checkin.h
bundle.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
bundle.h
cache-tree.c Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
cache-tree.h Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
cache.h Merge branch 'ta/config-set-1' 2014-09-11 10:33:25 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
column.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
column.h
combine-diff.c Merge branch 'jk/pretty-empty-format' 2014-09-02 13:25:04 -07:00
command-list.txt
commit-slab.h
commit.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
commit.h Merge branch 'jk/name-decoration-alloc' 2014-09-11 10:33:36 -07:00
config.c Merge branch 'ta/config-set-1' 2014-09-11 10:33:25 -07:00
config.mak.in
config.mak.uname Merge branch 'jc/config-mak-document-darwin-vs-macosx' 2014-09-09 12:54:05 -07:00
configure.ac
connect.c run-command: introduce child_process_init() 2014-08-20 09:54:58 -07:00
connect.h
connected.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
connected.h
convert.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
convert.h
copy.c
COPYING
credential-cache--daemon.c
credential-cache.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
credential-store.c
credential.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
date.c
decorate.c hashmap: factor out getting a hash code from a SHA1 2014-07-07 13:56:24 -07:00
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'nd/large-blobs' 2014-09-11 10:33:33 -07:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c diff.c: allow to pass more flags to diff_populate_filespec 2014-08-18 10:16:35 -07:00
diffcore.h diff --stat: mark any file larger than core.bigfilethreshold binary 2014-08-18 10:16:45 -07:00
dir.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
dir.h prep_exclude: remove the artificial PATH_MAX limit 2014-07-14 15:24:34 -07:00
editor.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
entry.c
environment.c
exec_cmd.c use strbuf_add_absolute_path() to add absolute paths 2014-08-26 11:06:06 -07:00
exec_cmd.h
fast-import.c Merge branch 'jk/fast-import-fixes' 2014-09-11 10:33:34 -07:00
fetch-pack.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c fsck: simplify fsck_commit_buffer() by using commit_list_count() 2014-07-10 14:10:27 -07:00
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-am.sh
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'nd/large-blobs' 2014-09-11 10:33:33 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh filter-branch: eliminate duplicate mapped parents 2014-07-01 08:30:41 -07:00
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py
git-parse-remote.sh
git-pull.sh merge, pull: stop advising 'commit -a' in case of conflict 2014-08-28 10:29:53 -07:00
git-quiltimport.sh
git-rebase--am.sh rebase: omit patch-identical commits with --fork-point 2014-07-16 13:07:40 -07:00
git-rebase--interactive.sh rebase: omit patch-identical commits with --fork-point 2014-07-16 13:07:40 -07:00
git-rebase--merge.sh Merge branch 'bc/fix-rebase-merge-skip' into maint 2014-07-16 11:16:16 -07:00
git-rebase.sh rebase: omit patch-identical commits with --fork-point 2014-07-16 13:07:40 -07:00
git-relink.perl
git-remote-testgit.sh Merge branch 'ep/shell-assign-and-export-vars' into maint 2014-07-22 10:22:57 -07:00
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'jk/stash-list-p' 2014-09-09 12:54:00 -07:00
git-submodule.sh
git-svn.perl git-svn: delay term initialization 2014-09-14 08:08:54 +00:00
GIT-VERSION-GEN Start the post-2.1 cycle 2014-09-02 13:30:13 -07:00
git-web--browse.sh
git.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
git.rc
git.spec.in
gpg-interface.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
gpg-interface.h
graph.c
graph.h
grep.c
grep.h
hashmap.c hashmap: add string interning API 2014-07-07 13:56:38 -07:00
hashmap.h hashmap: add string interning API 2014-07-07 13:56:38 -07:00
help.c Merge branch 'jk/strip-suffix' 2014-07-16 11:26:00 -07:00
help.h
hex.c
http-backend.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
http-fetch.c
http-push.c Merge branch 'ah/fix-http-push' into maint 2014-07-22 10:29:07 -07:00
http-walker.c
http.c Merge branch 'br/http-init-fix' 2014-09-11 10:33:28 -07:00
http.h
ident.c config --global --edit: create a template file if needed 2014-07-25 12:23:06 -07:00
imap-send.c Merge branch 'br/imap-send-simplify-tunnel-child-process' 2014-09-11 10:33:37 -07:00
INSTALL Fix profile feedback with -jN and add profile-fast 2014-07-08 10:56:47 -07:00
khash.h hashmap: factor out getting a hash code from a SHA1 2014-07-07 13:56:24 -07:00
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
line-log.c use commit_list_count() to count the members of commit_lists 2014-07-17 13:36:25 -07:00
line-log.h
line-range.c
line-range.h
list-objects.c
list-objects.h
ll-merge.c ll-merge.c: refactor read_merge_config() to use git_config_string() 2014-08-13 12:36:21 -07:00
ll-merge.h
lockfile.c Merge branch 'jc/reopen-lock-file' 2014-09-02 13:20:13 -07:00
log-tree.c Merge branch 'jk/name-decoration-alloc' 2014-09-11 10:33:36 -07:00
log-tree.h
mailmap.c
mailmap.h
Makefile Merge branch 'jk/make-simplify-dependencies' 2014-09-11 10:33:29 -07:00
match-trees.c
merge-blobs.c
merge-blobs.h
merge-recursive.c merge-recursive.c: replace git_config() with git_config_get_int() 2014-08-13 12:37:41 -07:00
merge-recursive.h
merge.c Merge branch 'nd/split-index' 2014-07-16 11:25:40 -07:00
mergesort.c
mergesort.h
name-hash.c hashmap: add simplified hashmap_get_from_hash() API 2014-07-07 13:56:35 -07:00
notes-cache.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
notes-cache.h
notes-merge.c
notes-merge.h
notes-utils.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
notes-utils.h
notes.c
notes.h
object.c object_as_type: set commit index 2014-07-28 10:14:34 -07:00
object.h add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
pack-bitmap-write.c
pack-bitmap.c
pack-bitmap.h
pack-check.c
pack-objects.c hashmap: factor out getting a hash code from a SHA1 2014-07-07 13:56:24 -07:00
pack-objects.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branch 'rs/child-process-init' 2014-09-11 10:33:27 -07:00
parse-options-cb.c
parse-options.c
parse-options.h
patch-delta.c
patch-ids.c
patch-ids.h
path.c Merge branch 'mm/config-edit-global' 2014-09-02 13:23:20 -07:00
pathspec.c Merge branch 'maint' 2014-07-21 12:35:39 -07:00
pathspec.h
pkt-line.c trace: improve trace performance 2014-07-13 21:24:23 -07:00
pkt-line.h
preload-index.c cache.h: rename cache_def_free to cache_def_clear 2014-07-13 10:12:37 -07:00
pretty.c Merge branch 'ta/pretty-parse-config' 2014-09-02 13:27:40 -07:00
prio-queue.c prio-queue: make output stable with respect to insertion 2014-07-15 11:02:54 -07:00
prio-queue.h prio-queue: make output stable with respect to insertion 2014-07-15 11:02:54 -07:00
progress.c progress: simplify performance measurement by using getnanotime() 2014-07-13 21:25:21 -07:00
progress.h
prompt.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
prompt.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c Merge branch 'ta/config-set-2' 2014-09-11 10:33:26 -07:00
README
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'jk/prune-top-level-refs-after-packing' 2014-09-11 10:33:33 -07:00
refs.h Merge branch 'rs/ref-transaction-1' 2014-09-11 10:33:31 -07:00
RelNotes Start the post-2.1 cycle 2014-09-02 13:30:13 -07:00
remote-curl.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
remote-testsvn.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
remote.c Merge branch 'sb/prepare-revision-walk-error-check' 2014-09-09 12:54:03 -07:00
remote.h use a hashmap to make remotes faster 2014-07-30 11:29:33 -07:00
replace_object.c
rerere.c rerere.c: replace git_config() with git_config_get_*() family 2014-08-07 13:33:27 -07:00
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jk/name-decoration-alloc' 2014-09-11 10:33:36 -07:00
revision.h
run-command.c run-command: inline prepare_run_command_v_opt() 2014-08-20 09:56:12 -07:00
run-command.h run-command: introduce child_process_init() 2014-08-20 09:54:58 -07:00
send-pack.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
send-pack.h
sequencer.c Merge branch 'rs/ref-transaction-1' 2014-09-11 10:33:31 -07:00
sequencer.h
server-info.c
setup.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
sh-i18n--envsubst.c use xmemdupz() to allocate copies of strings given by start and length 2014-07-21 10:37:02 -07:00
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'nd/large-blobs' 2014-09-11 10:33:33 -07:00
sha1_name.c Merge branch 'rs/list-optim' 2014-09-11 10:33:35 -07:00
shallow.c trace: improve trace performance 2014-07-13 21:24:23 -07:00
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
strbuf.h Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
streaming.c
streaming.h
string-list.c string-list: add string_list initializer helper function 2014-07-21 10:23:36 -07:00
string-list.h string-list: add string_list initializer helper function 2014-07-21 10:23:36 -07:00
submodule.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
submodule.h
symlinks.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
tag.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
tag.h
tar.h
test-chmtime.c
test-config.c add tests for git_config_get_string_const() 2014-08-07 11:41:20 -07:00
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
test-dump-split-index.c
test-genrandom.c
test-hashmap.c hashmap: add string interning API 2014-07-07 13:56:38 -07:00
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mergesort.c
test-mktemp.c
test-parse-options.c
test-path-utils.c
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c
test-run-command.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-scrap-cache-tree.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-list.c
test-subprocess.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c
thread-utils.h
trace.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
trace.h git: add performance tracing for git's main() function to debug scripts 2014-07-13 21:25:21 -07:00
transport-helper.c run-command: introduce child_process_init() 2014-08-20 09:54:58 -07:00
transport.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
tree.h
unicode_width.h
unimplemented.sh
unix-socket.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
unix-socket.h
unpack-trees.c Merge branch 'jn/unpack-trees-checkout-m-carry-deletion' 2014-09-11 10:33:36 -07:00
unpack-trees.h
update_unicode.sh
upload-pack.c Merge branch 'et/spell-poll-infinite-with-minus-one-only' 2014-09-11 10:33:29 -07:00
url.c use strbuf_addch for adding single characters 2014-07-10 14:06:46 -07:00
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c
userdiff.h
utf8.c Merge branch 'nd/strbuf-utf8-replace' 2014-09-09 12:54:02 -07:00
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c Merge branch 'rs/list-optim' 2014-09-11 10:33:35 -07:00
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c Merge branch 'nd/large-blobs' 2014-09-11 10:33:33 -07:00
write_or_die.c
ws.c
wt-status.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -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 version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

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://news.gmane.org/gmane.comp.version-control.git/,
http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.