1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-26 19:56:11 +02:00
Git Source Code Mirror. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
Go to file
Jeff King c4ad00f8cc add object_as_type helper for casting objects
When we call lookup_commit, lookup_tree, etc, the logic goes
something like:

  1. Look for an existing object struct. If we don't have
     one, allocate and return a new one.

  2. Double check that any object we have is the expected
     type (and complain and return NULL otherwise).

  3. Convert an object with type OBJ_NONE (from a prior
     call to lookup_unknown_object) to the expected type.

We can encapsulate steps 2 and 3 in a helper function which
checks whether we have the expected object type, converts
OBJ_NONE as appropriate, and returns the object.

Not only does this shorten the code, but it also provides
one central location for converting OBJ_NONE objects into
objects of other types. Future patches will use that to
enforce type-specific invariants.

Since this is a refactoring, we would want it to behave
exactly as the current code. It takes a little reasoning to
see that this is the case:

  - for lookup_{commit,tree,etc} functions, we are just
    pulling steps 2 and 3 into a function that does the same
    thing.

  - for the call in peel_object, we currently only do step 3
    (but we want to consolidate it with the others, as
    mentioned above). However, step 2 is a noop here, as the
    surrounding conditional makes sure we have OBJ_NONE
    (which we want to keep to avoid an extraneous call to
    sha1_object_info).

  - for the call in lookup_commit_reference_gently, we are
    currently doing step 2 but not step 3. However, step 3
    is a noop here. The object we got will have just come
    from deref_tag, which must have figured out the type for
    each object in order to know when to stop peeling.
    Therefore the type will never be OBJ_NONE.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-07-28 10:14:33 -07:00
Documentation Git 2.0.3 2014-07-23 11:33:16 -07:00
block-sha1 Merge branch 'jk/pack-bitmap' 2014-02-27 14:01:48 -08:00
builtin move setting of object->type to alloc_* functions 2014-07-28 10:14:33 -07:00
compat Merge branch 'cb/byte-order' into maint 2014-07-22 10:25:02 -07:00
contrib Merge branch 'ep/shell-assign-and-export-vars' into maint 2014-07-22 10:22:57 -07:00
ewah ewah_bitmap.c: do not assume size_t and eword_t are the same size 2014-04-22 16:21:16 -07:00
git-gui Merge branch 'jl/use-vsatisfy-correctly-for-2.0' 2014-05-19 10:35:24 -07:00
gitk-git Merge git://ozlabs.org/~paulus/gitk 2014-01-23 08:50:50 -08:00
gitweb Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
mergetools mergetools/diffmerge: support DiffMerge as a git mergetool 2013-10-13 16:00:57 -07:00
perl code and test: fix misuses of "nor" 2014-03-31 15:29:33 -07:00
po fr: a lot of good fixups 2014-05-17 19:08:59 +02:00
ppc
t Merge branch 'zk/log-graph-showsig' into maint 2014-07-22 10:28:51 -07:00
templates sample pre-commit hook: use --bool when retrieving config var 2013-09-24 12:26:49 -07:00
vcs-svn strbuf: introduce starts_with() and ends_with() 2013-12-05 14:12:52 -08:00
xdiff C: have space around && and || operators 2013-10-16 10:26:39 -07:00
.gitattributes
.gitignore Merge branch 'kb/fast-hashmap' 2014-02-27 14:01:09 -08:00
.mailmap .mailmap: combine Stefan Beller's emails 2014-07-23 11:27:05 -07:00
COPYING
GIT-VERSION-GEN Git 2.0.3 2014-07-23 11:33:16 -07:00
INSTALL
LGPL-2.1
Makefile Merge branch 'nd/index-pack-one-fd-per-thread' into maint 2014-06-25 11:47:58 -07:00
README
RelNotes Git 2.0.3 2014-07-23 11:33:16 -07:00
abspath.c Merge branch 'ap/path-max' 2014-01-10 10:32:18 -08:00
aclocal.m4
advice.c Merge branch 'jc/push-2.0-default-to-simple' 2014-03-07 15:13:15 -08:00
advice.h Merge branch 'jc/push-2.0-default-to-simple' 2014-03-07 15:13:15 -08:00
alias.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
alloc.c move setting of object->type to alloc_* functions 2014-07-28 10:14:33 -07:00
archive-tar.c
archive-zip.c Merge branch 'sb/archive-zip-double-assignment-fix' into maint 2013-07-19 10:40:53 -07:00
archive.c Merge branch 'rm/strchrnul-not-strlen' 2014-03-18 13:51:18 -07:00
archive.h
argv-array.c
argv-array.h Add the LAST_ARG_MUST_BE_NULL macro 2013-07-19 09:26:15 -07:00
attr.c attr.c: use ALLOC_GROW() in handle_attr_line() 2014-03-03 14:54:37 -08:00
attr.h
base85.c base85.c: have SP around arithmetic operators 2013-10-16 10:27:26 -07:00
bisect.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -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 'an/branch-config-message' 2014-03-31 16:31:20 -07:00
branch.h
builtin.h builtin/help.c: speed up is_git_command() by checking for builtin commands first 2014-01-06 11:26:31 -08:00
bulk-checkin.c finish_tmp_packfile():use strbuf for pathname construction 2014-03-03 12:15:10 -08:00
bulk-checkin.h
bundle.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
bundle.h
cache-tree.c Merge branch 'rm/strchrnul-not-strlen' 2014-03-18 13:51:18 -07:00
cache-tree.h
cache.h Merge branch 'ym/fix-opportunistic-index-update-race' into maint 2014-06-25 11:49:48 -07:00
check-builtins.sh check-builtins.sh: use the $(...) construct for command substitution 2014-03-25 13:42:52 -07:00
check-racy.c
check_bindir
color.c
color.h
column.c comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
column.h
combine-diff.c Merge branch 'mk/show-s-no-extra-blank-line-for-merges' into maint 2014-06-25 11:49:39 -07:00
command-list.txt peek-remote: remove deprecated alias of ls-remote 2013-11-12 14:10:22 -08:00
commit-slab.h commit-slab: provide a static initializer 2014-06-13 12:08:17 -07:00
commit.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
commit.h reuse cached commit buffer when parsing signatures 2014-06-13 12:10:13 -07:00
config.c Merge branch 'bg/xcalloc-nmemb-then-size' into maint 2014-07-22 10:25:17 -07:00
config.mak.in
config.mak.uname Merge branch 'nd/index-pack-one-fd-per-thread' into maint 2014-06-25 11:47:58 -07:00
configure.ac Merge branch 'dm/configure-iconv-locale-charset' 2014-03-25 11:07:51 -07:00
connect.c use xmemdupz() to allocate copies of strings given by start and length 2014-07-21 10:37:02 -07:00
connect.h connect.c: refactor url parsing 2013-12-09 14:54:48 -08:00
connected.c Merge branch 'nd/shallow-clone' 2014-01-17 12:21:20 -08:00
connected.h connected.c: add new variant that runs with --shallow-file 2013-12-10 16:14:18 -08:00
convert.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
convert.h typofix: in-code comments 2013-07-22 16:06:49 -07:00
copy.c
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c Merge branch 'jk/sha1write-void' 2014-01-10 10:33:09 -08:00
csum-file.h Merge branch 'jk/sha1write-void' 2014-01-10 10:33:09 -08:00
ctype.c
daemon.c daemon: move daemonize() to libgit.a 2014-02-10 10:46:35 -08:00
date.c i18n: fix uncatchable comments for translators in date.c 2014-04-17 11:03:28 -07:00
decorate.c
decorate.h
delta.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
diff-delta.c create_delta_index: simplify condition always evaluating to true 2013-08-18 12:56:23 -07:00
diff-lib.c Merge branch 'jk/diff-files-assume-unchanged' into maint 2014-06-25 11:47:09 -07:00
diff-no-index.c Merge branch 'jc/fix-diff-no-index-diff-opt-parse' into maint 2014-04-09 11:59:16 -07:00
diff.c Merge branch 'bg/xcalloc-nmemb-then-size' into maint 2014-07-22 10:25:17 -07:00
diff.h Merge branch 'jc/hold-diff-remove-q-synonym-for-no-deletion' 2014-03-07 15:17:41 -08:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c Merge branch 'nd/no-more-fnmatch' 2014-03-14 14:25:31 -07:00
diffcore-pickaxe.c pickaxe: simplify kwset loop in contains() 2014-03-24 15:13:17 -07:00
diffcore-rename.c Merge branch 'dd/use-alloc-grow' 2014-03-18 13:50:21 -07:00
diffcore.h Merge branch 'nd/diff-quiet-stat-dirty' into maint 2014-03-18 13:59:56 -07:00
dir.c dir.c:trim_trailing_spaces(): fix for " \ " sequence 2014-06-02 15:48:48 -07:00
dir.h pathspec: pass directory indicator to match_pathspec_item() 2014-02-24 14:37:19 -08:00
editor.c editor: use canonicalized absolute path 2013-07-29 12:15:27 -07:00
entry.c Merge branch 'mh/remove-subtree-long-pathname-fix' into maint 2014-04-03 13:39:05 -07:00
environment.c environment.c: fix constness for odb_pack_keep() 2014-03-31 10:31:43 -07:00
exec_cmd.c
exec_cmd.h Add the LAST_ARG_MUST_BE_NULL macro 2013-07-19 09:26:15 -07:00
fast-import.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
fetch-pack.c Merge branch 'jk/shallow-update-fix' into maint 2014-04-03 13:39:03 -07:00
fetch-pack.h Merge branch 'nd/shallow-clone' 2014-01-17 12:21:20 -08:00
fmt-merge-msg.h
fsck.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
fsck.h
generate-cmdlist.sh
gettext.c gettext.c: detect the vsnprintf bug at runtime 2013-12-04 16:10:51 -08:00
gettext.h
git-add--interactive.perl Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-am.sh Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-archimport.perl
git-bisect.sh git-bisect.sh: fix a few style issues 2014-03-03 18:29:34 -08:00
git-compat-util.h Merge branch 'ym/fix-opportunistic-index-update-race' into maint 2014-06-25 11:49:48 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl Merge branch 'ak/cvsserver-stabilize-use-of-hash-keys' 2013-11-04 14:58:05 -08:00
git-difftool--helper.sh difftool: display the number of files in the diff queue in the prompt 2013-12-06 14:00:27 -08:00
git-difftool.perl difftool: support repositories with .git-files 2014-02-24 09:53:57 -08:00
git-filter-branch.sh filter-branch: eliminate duplicate mapped parents 2014-07-01 08:30:41 -07:00
git-instaweb.sh git-instaweb: add support for Apache 2.4 2014-05-27 12:57:19 -07:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-mergetool.sh
git-p4.py Merge branch 'cl/p4-use-diff-tree' into maint 2014-05-08 10:01:32 -07:00
git-parse-remote.sh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-pull.sh pull: do not abuse 'break' inside a shell 'case' 2014-06-12 12:15:49 -07:00
git-quiltimport.sh git-sh-setup.sh: add variable to use the stuck-long mode 2014-02-03 12:11:10 -08:00
git-rebase--am.sh Merge branch 'km/avoid-non-function-return-in-rebase' 2014-04-21 10:42:46 -07:00
git-rebase--interactive.sh Merge branch 'rr/rebase-autostash-fix' into maint 2014-06-25 11:49:31 -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 Merge branch 'rr/rebase-autostash-fix' into maint 2014-06-25 11:49:31 -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 Merge branch 'lt/request-pull' 2014-05-19 10:35:36 -07:00
git-send-email.perl Merge branch 'rk/send-email-ssl-cert' into maint 2014-02-13 13:38:19 -08:00
git-sh-i18n.sh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-sh-setup.sh git-sh-setup.sh: add variable to use the stuck-long mode 2014-02-03 12:11:10 -08:00
git-stash.sh Merge branch 'ep/shell-assign-and-export-vars' into maint 2014-07-22 10:22:57 -07:00
git-submodule.sh Revert "submodule: explicit local branch creation in module_clone" 2014-04-02 14:15:36 -07:00
git-svn.perl Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not given 2014-04-19 11:30:13 +00:00
git-web--browse.sh web--browse: Add support for xdg-open 2013-10-30 13:54:15 -07:00
git.c rename read_replace_refs to check_replace_refs 2014-02-20 14:16:55 -08:00
git.rc Makefile: Fix compilation of Windows resource file 2014-01-23 10:00:28 -08:00
git.spec.in
gpg-interface.c
gpg-interface.h
graph.c graph: fix coloring around octopus merges 2013-10-18 12:48:48 -07:00
graph.h
grep.c Merge branch 'rs/grep-h-c' 2014-03-18 13:51:20 -07:00
grep.h
hashmap.c add a hashtable implementation that supports O(1) removal 2013-11-18 13:03:51 -08:00
hashmap.h hashmap.h: use 'unsigned int' for hash-codes everywhere 2014-02-24 15:26:30 -08:00
help.c Merge branch 'rt/help-pretty-prints-cmd-names' 2014-03-14 14:27:00 -07:00
help.h
hex.c
http-backend.c use xmemdupz() to allocate copies of strings given by start and length 2014-07-21 10:37:02 -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 'mh/object-code-cleanup' 2014-03-14 14:26:29 -07:00
http.h Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
ident.c Merge branch 'jk/split-broken-ident' into maint 2013-11-07 14:34:51 -08:00
imap-send.c imap-send.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
khash.h pack-bitmap: add support for bitmap indexes 2013-12-30 12:19:22 -08:00
kwset.c typofix: in-code comments 2013-07-22 16:06:49 -07:00
kwset.h
levenshtein.c
levenshtein.h
line-log.c line-log: convert to using diff_tree_sha1() 2014-02-05 10:50:36 -08:00
line-log.h range-set: publish API for re-use by git-blame -L 2013-08-06 14:27:20 -07:00
line-range.c line-range: reject -L line numbers less than 1 2013-08-06 14:48:55 -07:00
line-range.h line-range: teach -L/RE/ to search relative to anchor point 2013-08-06 14:36:34 -07:00
list-objects.c Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
list-objects.h list-objects: reduce one argument in mark_edges_uninteresting 2013-08-28 11:54:18 -07:00
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c Merge branch 'zk/log-graph-showsig' into maint 2014-07-22 10:28:51 -07:00
log-tree.h
mailmap.c Merge branch 'jc/strcasecmp-pure-inline' 2013-09-24 23:28:13 -07:00
mailmap.h
match-trees.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
merge-blobs.c
merge-blobs.h
merge-recursive.c Merge branch 'jk/commit-buffer-length' into maint 2014-07-16 11:16:38 -07:00
merge-recursive.h
merge.c
mergesort.c
mergesort.h
name-hash.c name-hash: retire unused index_name_exists() 2014-02-24 15:26:33 -08:00
notes-cache.c replace dangerous uses of strbuf_attach 2014-06-12 10:29:42 -07:00
notes-cache.h
notes-merge.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
notes-merge.h
notes-utils.c commit_tree: take a pointer/len pair rather than a const strbuf 2014-06-12 10:29:41 -07:00
notes-utils.h commit_tree: take a pointer/len pair rather than a const strbuf 2014-06-12 10:29:41 -07:00
notes.c notes.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
notes.h many small typofixes 2013-07-29 12:32:25 -07:00
object.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
object.h add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
pack-bitmap-write.c Use hashcpy() when copying object names 2014-03-06 14:03:12 -08:00
pack-bitmap.c add `ignore_missing_links` mode to revwalk 2014-04-04 13:31:38 -07:00
pack-bitmap.h pack-bitmap: implement optional name_hash cache 2013-12-30 12:19:23 -08:00
pack-check.c
pack-objects.c pack-objects: use free()+xcalloc() instead of xrealloc()+memset() 2014-06-02 13:51:22 -07:00
pack-objects.h pack-objects: implement bitmap writing 2013-12-30 12:19:22 -08:00
pack-revindex.c pack-revindex.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
pack-revindex.h do not discard revindex when re-preparing packfiles 2014-01-16 14:33:46 -08:00
pack-write.c finish_tmp_packfile():use strbuf for pathname construction 2014-03-03 12:15:10 -08:00
pack.h finish_tmp_packfile():use strbuf for pathname construction 2014-03-03 12:15:10 -08:00
pager.c pager: do allow spawning pager recursively 2014-04-28 16:03:22 -07:00
parse-options-cb.c
parse-options.c Merge branch 'mr/opt-set-ptr' 2014-04-08 12:00:17 -07:00
parse-options.h Merge branch 'mr/opt-set-ptr' 2014-04-08 12:00:17 -07:00
patch-delta.c
patch-ids.c patch-ids.c: use ALLOC_GROW() in add_commit() 2014-03-03 14:49:12 -08:00
patch-ids.h
path.c use xmemdupz() to allocate copies of strings given by start and length 2014-07-21 10:37:02 -07:00
pathspec.c use xcalloc() to allocate zero-initialized memory 2014-07-21 10:30:21 -07:00
pathspec.h Support pathspec magic :(exclude) and its short form :! 2013-12-06 13:00:39 -08:00
pkt-line.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
pkt-line.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
preload-index.c pathspec: convert some match_pathspec_depth() to ce_path_match() 2014-02-24 14:36:52 -08:00
pretty.c Merge branch 'jk/pretty-G-format-fixes' into maint 2014-07-16 11:17:21 -07:00
prio-queue.c
prio-queue.h
progress.c i18n: mark all progress lines for translation 2014-02-24 09:08:37 -08:00
progress.h
prompt.c Revert "prompt: clean up strbuf usage" 2014-01-02 10:21:40 -08:00
prompt.h
quote.c quote: remove sq_quote_print() 2013-07-30 08:13:38 -07:00
quote.h quote: remove sq_quote_print() 2013-07-30 08:13:38 -07:00
reachable.c
reachable.h
read-cache.c Merge branch 'ym/fix-opportunistic-index-update-race' into maint 2014-06-25 11:49:48 -07:00
reflog-walk.c reflog-walk.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
reflog-walk.h
refs.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
refs.h remote prune: optimize "dangling symref" check/warning 2014-05-27 12:30:47 -07:00
remote-curl.c http: never use curl_easy_perform 2014-02-18 15:50:57 -08:00
remote-testsvn.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
remote.c remote.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
remote.h push: detect local refspec errors early 2014-03-05 13:23:27 -08:00
replace_object.c Merge branch 'dd/use-alloc-grow' 2014-03-18 13:50:21 -07:00
rerere.c pathspec: pass directory indicator to match_pathspec_item() 2014-02-24 14:37:19 -08:00
rerere.h
resolve-undo.c Merge branch 'nd/submodule-pathspec-ending-with-slash' 2014-02-27 14:01:15 -08:00
resolve-undo.h
revision.c Merge branch 'jk/commit-buffer-length' into maint 2014-07-16 11:16:38 -07:00
revision.h Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
run-command.c commit: fix patch hunk editing with "commit -p -m" 2014-03-18 11:25:12 -07:00
run-command.h run-command: mark run_hook_with_custom_index as deprecated 2014-03-18 11:26:12 -07:00
send-pack.c Merge branch 'nd/shallow-clone' 2014-01-17 12:21:20 -08:00
send-pack.h remote.h: replace struct extra_have_objects with struct sha1_array 2013-12-10 16:14:15 -08:00
sequencer.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
sequencer.h cherry-pick, revert: add the --gpg-sign option 2014-01-27 15:15:52 -08:00
server-info.c
setup.c Merge branch 'mw/symlinks' into maint 2014-05-28 15:45:57 -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: handle duplicate keys with GIT_USE_LOOKUP 2013-08-24 22:31:20 -07:00
sha1-lookup.h
sha1_file.c Merge branch 'rs/fix-alt-odb-path-comparison' into maint 2014-07-16 11:17:08 -07:00
sha1_name.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
shallow.c shallow: verify shallow file after taking lock 2014-03-17 15:03:32 -07:00
shell.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
shortlog.h
show-index.c
sideband.c sideband.c: do not use ANSI control sequence on non-terminal 2014-06-02 11:02:27 -07:00
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf: remove prefixcmp() and suffixcmp() 2013-12-05 14:13:56 -08:00
strbuf.h strbuf: style fix -- top opening bracket on a separate line 2014-03-03 12:26:08 -08:00
streaming.c open_istream(): do not dereference NULL in the error case 2014-02-18 16:00:53 -08:00
streaming.h
string-list.c
string-list.h
submodule.c Merge branch 'kb/fast-hashmap' 2014-02-27 14:01:09 -08:00
submodule.h rm: delete .gitmodules entry of submodules removed from the work tree 2013-08-06 14:11:00 -07:00
symlinks.c
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 comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-hashmap.c test-hashmap.c: drop unnecessary #includes 2014-02-24 14:33:46 -08:00
test-index-version.c
test-line-buffer.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
test-match-trees.c use 'tree-ish' instead of 'treeish' 2013-09-04 15:02:56 -07:00
test-mergesort.c
test-mktemp.c
test-parse-options.c parse-options: remove unused OPT_SET_PTR 2014-03-31 13:01:19 -07:00
test-path-utils.c path-utils test: rename mingw_path function to print_path 2013-10-14 07:32:53 -07:00
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c
test-run-command.c
test-scrap-cache-tree.c
test-sha1.c test-sha1: add a binary output mode 2013-08-22 16:39:46 -07:00
test-sha1.sh
test-sigchain.c
test-string-list.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c builtin/config.c: compilation fix 2013-08-09 09:20:38 -07:00
test-wildmatch.c stop using fnmatch (either native or compat) 2014-02-20 14:16:11 -08:00
thread-utils.c
thread-utils.h
trace.c shallow.c: the 8 steps to select new commits for .git/shallow 2013-12-10 16:14:16 -08:00
transport-helper.c transport-helper.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
transport.c push: detect local refspec errors early 2014-03-05 13:23:27 -08:00
transport.h fetch: add --update-shallow to accept refs that update .git/shallow 2013-12-10 16:14:17 -08:00
tree-diff.c tree-diff: convert diff_root_tree_sha1() to just call diff_tree_sha1 with old=NULL 2014-02-05 10:49:07 -08:00
tree-walk.c tree-walk: finally switch over tree descriptors to contain a pre-parsed entry 2014-02-24 14:43:29 -08:00
tree-walk.h tree-walk: finally switch over tree descriptors to contain a pre-parsed entry 2014-02-24 14:43:29 -08:00
tree.c add object_as_type helper for casting objects 2014-07-28 10:14:33 -07:00
tree.h Merge branch 'jk/free-tree-buffer' 2013-09-17 11:37:33 -07:00
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'nd/i18n-progress' 2014-03-14 14:26:31 -07:00
unpack-trees.h
upload-pack.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
url.c
url.h
urlmatch.c urlmatch.c: recompute pointer after append_normalized_escapes 2013-09-12 15:27:01 -07:00
urlmatch.h config: add generic callback wrapper to parse section.<url>.key 2013-07-31 14:58:42 -07:00
usage.c
userdiff.c userdiff: have 'cpp' hunk header pattern catch more C++ anchor points 2014-03-21 15:03:32 -07:00
userdiff.h
utf8.c Merge branch 'tb/unicode-6.3-zero-width' 2014-04-16 13:38:57 -07:00
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c tag: support --sort=<spec> 2014-02-27 14:04:05 -08:00
walker.c object.h: centralize object flag allocation 2014-03-25 15:09:24 -07:00
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c read-cache.c: verify index file before we opportunistically update it 2014-04-10 12:27:58 -07:00
write_or_die.c
ws.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
wt-status.c Merge branch 'jl/status-added-submodule-is-never-ignored' into maint 2014-06-25 11:50:03 -07:00
wt-status.h Merge branch 'mm/status-porcelain-format-i18n-fix' 2014-03-31 16:31:25 -07:00
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.