1
0
mirror of https://github.com/git/git synced 2024-07-04 16:48:40 +00:00
Go to file
Jeff King 2bc31d1631 refs: support negative transfer.hideRefs
If you hide a hierarchy of refs using the transfer.hideRefs
config, there is no way to later override that config to
"unhide" it. This patch implements a "negative" hide which
causes matches to immediately be marked as unhidden, even if
another match would hide it. We take care to apply the
matches in reverse-order from how they are fed to us by the
config machinery, as that lets our usual "last one wins"
config precedence work (and entries in .git/config, for
example, will override /etc/gitconfig).

So you can now do:

  $ git config --system transfer.hideRefs refs/secret
  $ git config transfer.hideRefs '!refs/secret/not-so-secret'

to hide refs/secret in all repos, except for one public bit
in one specific repo. Or you can even do:

  $ git clone \
      -u "git -c transfer.hiderefs="!refs/foo" upload-pack" \
      remote:repo.git

to clone remote:repo.git, overriding any hiding it has
configured.

There are two alternatives that were considered and
rejected:

  1. A generic config mechanism for removing an item from a
     list. E.g.: (e.g., "[transfer] hideRefs -= refs/foo").

     This is nice because it could apply to other
     multi-valued config, as well. But it is not nearly as
     flexible. There is no way to say:

       [transfer]
       hideRefs = refs/secret
       hideRefs = refs/secret/not-so-secret

     Having explicit negative specifications means we can
     override previous entries, even if they are not the
     same literal string.

  2. Adding another variable to override some parts of
     hideRefs (e.g., "exposeRefs").

     This solves the problem from alternative (1), but it
     cannot easily obey the normal config precedence,
     because it would use two separate lists. For example:

       [transfer]
       hideRefs = refs/secret
       exposeRefs = refs/secret/not-so-secret
       hideRefs = refs/secret/not-so-secret/no-really-its-secret

     With two lists, we have to apply the "expose" rules
     first, and only then apply the "hide" rules. But that
     does not match what the above config intends.

     Of course we could internally parse that to a single
     list, respecting the ordering, which saves us having to
     invent the new "!" syntax. But using a single name
     communicates to the user that the ordering _is_
     important. And "!" is well-known for negation, and
     should not appear at the beginning of a ref (it is
     actually valid in a ref-name, but all entries here
     should be fully-qualified, starting with "refs/").

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-08-07 11:47:36 -07:00
block-sha1 Merge branch 'jk/pack-bitmap' 2014-02-27 14:01:48 -08:00
builtin Merge branch 'ls/hint-rev-list-count' into maint 2015-07-27 12:21:47 -07:00
compat Merge branch 'nd/untracked-cache' 2015-05-26 13:24:46 -07:00
contrib Merge branch 'cb/subtree-tests-update' 2015-07-10 14:17:56 -07:00
Documentation refs: support negative transfer.hideRefs 2015-08-07 11:47:36 -07:00
ewah Merge branch 'es/osx-header-pollutes-mask-macro' 2015-06-24 12:21:44 -07:00
git-gui git-gui 0.20.0 2015-04-18 18:35:48 -07:00
gitk-git Merge branch 'master' of git://ozlabs.org/~paulus/gitk 2015-03-24 16:10:37 -07:00
gitweb gitweb: hack around CGI's list-context param() handling 2014-11-18 11:23:10 -08:00
mergetools mergetools: add winmerge as a builtin tool 2015-05-20 13:13:44 -07:00
perl Merge branch 'svn-maint-fixes' into svn-fixes 2015-02-26 14:03:57 -08:00
po l10n: ca.po: update translation 2015-07-20 11:54:40 -06:00
ppc fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
t refs: support negative transfer.hideRefs 2015-08-07 11:47:36 -07:00
templates Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
vcs-svn strbuf: introduce starts_with() and ends_with() 2013-12-05 14:12:52 -08:00
xdiff git-merge-file: do not add LF at EOF while applying unrelated change 2014-06-30 14:07:58 -07:00
.gitattributes .gitattributes: detect 8-space indent in shell scripts 2010-01-06 12:22:25 -08:00
.gitignore Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
.mailmap Update mailmap to spell out "Alexander Kuleshov" 2015-03-27 12:58:18 -07:00
abspath.c abspath: convert absolute_path() to strbuf 2014-08-26 11:06:06 -07:00
aclocal.m4 configure: use AC_LANG_PROGRAM consistently 2011-02-14 10:55:15 -08:00
advice.c standardize usage info string format 2015-01-14 09:32:04 -08:00
advice.h Merge branch 'jc/push-2.0-default-to-simple' 2014-03-07 15:13:15 -08:00
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-13 18:59:05 -07:00
archive-tar.c Revert "archive: honor tar.umask even for pax headers" 2014-10-20 12:04:46 -07:00
archive-zip.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
archive.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
archive.h archive: convert to use parse_pathspec 2013-07-15 10:56:07 -07:00
argv-array.c argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
argv-array.h argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
attr.c Merge branch 'pt/xdg-config-path' 2015-05-11 14:24:01 -07:00
attr.h correct a few doubled-word nits in comments and documentation 2012-03-28 11:18:35 -07:00
base85.c base85.c: have SP around arithmetic operators 2013-10-16 10:27:26 -07:00
bisect.c register_ref(): rewrite to take an object_id argument 2015-05-25 12:19:28 -07:00
bisect.h Move print_commit_list to libgit.a 2012-10-29 03:08:30 -04:00
blob.c add object_as_type helper for casting objects 2014-07-13 18:59:05 -07:00
blob.h Replace parse_blob() with an explanatory comment 2010-01-18 17:04:02 -08:00
branch.c ref_transaction_update(): remove "have_old" parameter 2015-02-17 11:22:50 -08:00
branch.h checkout: suppress tracking message with "-q" 2012-03-26 21:32:43 -07:00
builtin.h worktree: new place for "git prune --worktrees" 2015-06-29 08:48:44 -07:00
bulk-checkin.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
bulk-checkin.h cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
bundle.c bundle.c: fix memory leak 2015-03-10 20:53:52 -07:00
bundle.h Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
cache-tree.c Merge branch 'jk/cache-tree-protect-from-broken-libgit2' 2014-11-06 10:51:35 -08:00
cache-tree.h Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
cache.h Merge branch 'jk/index-pack-reduce-recheck' 2015-06-24 12:21:54 -07:00
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:06 -07:00
check-builtins.sh check-builtins: strip executable suffix $X when enumerating builtins 2015-02-05 12:03:27 -08:00
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability 2007-11-10 00:24:51 -08:00
color.c parse_color: fix return value for numeric color values 0-8 2015-01-20 15:56:03 -08:00
color.h parse_color: recognize "no$foo" to clear the $foo attribute 2014-11-20 12:42:55 -08:00
column.c use child_process_init() to initialize struct child_process variables 2014-10-28 14:56:17 -07:00
column.h column: support piping stdout to external git-column process 2012-04-27 09:26:38 -07:00
combine-diff.c Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
command-list.txt Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
commit-slab.h use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
commit.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
commit.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
config.c Merge branch 'kb/config-unmap-before-renaming' 2015-07-13 14:00:27 -07:00
config.mak.in Merge branch 'jc/remove-export-from-config-mak-in' 2013-04-01 09:00:02 -07:00
config.mak.uname config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases 2015-06-03 09:38:04 -07:00
configure.ac configure: add getdelim() check 2015-06-03 09:38:19 -07:00
connect.c Merge branch 'bc/connect-plink' 2015-05-19 13:17:55 -07:00
connect.h connect.c: refactor url parsing 2013-12-09 14:54:48 -08:00
connected.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
connected.h connected.c: add new variant that runs with --shallow-file 2013-12-10 16:14:18 -08:00
convert.c filter_buffer_or_fd(): ignore EPIPE 2015-05-20 10:19:12 -07:00
convert.h convert: stream from fd to required clean filter to reduce used address space 2014-08-28 10:25:15 -07:00
copy.c copy.c: make copy_fd() report its status silently 2015-05-19 14:48:54 -07:00
COPYING Update COPYING with GPLv2 with new FSF address 2010-01-17 14:29:37 -08:00
credential-cache--daemon.c credential-cache: close stderr in daemon process 2014-09-16 11:11:58 -07:00
credential-cache.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
credential-store.c Merge branch 'pt/xdg-config-path' 2015-05-11 14:24:01 -07:00
credential.c Merge branch 'jk/credential-quit' 2014-12-22 12:27:20 -08:00
credential.h credential: let helpers tell us to quit 2014-12-04 10:11:12 -08:00
csum-file.c sha1fd_check: die when we cannot open the file 2015-03-19 13:35:15 -07:00
csum-file.h Merge branch 'jk/pack-bitmap' 2014-12-12 14:31:42 -08:00
ctype.c kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
daemon.c Merge branch 'jc/daemon-no-ipv6-for-2.4.1' 2015-05-11 14:23:53 -07:00
date.c Merge branch 'jc/epochtime-wo-tz' 2015-05-05 21:00:33 -07:00
decorate.c hashmap: factor out getting a hash code from a SHA1 2014-07-07 13:56:24 -07:00
decorate.h decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
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 'nd/diff-i-t-a' 2015-06-25 10:47:46 -07:00
diff-no-index.c diff-no-index: align D/F handling with that of normal Git 2015-03-26 14:08:43 -07:00
diff.c Merge branch 'jc/diff-ws-error-highlight' 2015-07-15 12:30:14 -07:00
diff.h Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
diffcore-break.c diff -B -M: fix output for "copy and then rewrite" case 2014-10-23 16:17:09 -07:00
diffcore-delta.c Fix diff -B/--dirstat miscounting of newly added contents 2009-12-05 10:54:17 -08:00
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 'jk/diffcore-rename-duplicate' 2015-03-10 13:52:39 -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/janitorial' 2015-06-01 12:45:15 -07:00
dir.h Merge branch 'nd/untracked-cache' 2015-05-26 13:24:46 -07:00
editor.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
entry.c read-cache: mark updated entries for split index 2014-06-13 11:49:40 -07:00
environment.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
exec_cmd.c Merge branch 'jk/git-no-more-argv0-path-munging' 2015-05-19 13:17:52 -07:00
exec_cmd.h system_path(): always return free'able memory to the caller 2014-11-30 16:39:47 -08:00
fast-import.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
fetch-pack.c Merge branch 'me/fetch-into-shallow-safety' 2015-07-01 14:02:33 -07:00
fetch-pack.h Merge branch 'nd/shallow-clone' 2014-01-17 12:21:20 -08:00
fmt-merge-msg.h fmt-merge-msg: use branch.$name.description 2011-10-07 10:11:47 -07:00
fsck.c Merge branch 'jc/fsck-retire-require-eoh' 2015-07-13 14:00:24 -07:00
fsck.h fsck_object(): allow passing object data separately from the object itself 2014-09-10 13:54:21 -07:00
generate-cmdlist.perl generate-cmdlist: parse common group commands 2015-05-21 13:03:37 -07:00
gettext.c gettext.c: move get_preferred_languages() from http.c 2015-02-26 14:09:20 -08:00
gettext.h Merge branch 'ye/http-accept-language' 2015-03-06 15:02:25 -08:00
git-add--interactive.perl Merge branch 'ak/add-i-empty-candidates' 2015-02-17 10:15:20 -08:00
git-am.sh Revert "git-am: add am.threeWay config variable" 2015-07-24 10:55:24 -07:00
git-archimport.perl git-archimport: use a lowercase "usage:" string 2013-02-24 13:31:06 -08:00
git-bisect.sh standardize usage info string format 2015-01-14 09:32:04 -08:00
git-compat-util.h Merge branch 'cb/array-size' 2015-06-25 11:07:42 -07:00
git-cvsexportcommit.perl git-cvsexportcommit: use a lowercase "usage:" string 2013-02-24 13:31:07 -08:00
git-cvsimport.perl Merge branch 'cn/cvsimport-perl-update' 2015-06-25 11:08:08 -07:00
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--helper: add explicit exit statement 2014-11-21 11:27:53 -08:00
git-difftool.perl Merge branch 'da/difftool' 2014-10-29 10:09:35 -07:00
git-filter-branch.sh filter-branch: avoid passing commit message through sed 2015-04-29 10:01:04 -07:00
git-instaweb.sh git-instaweb: use @SHELL_PATH@ instead of /bin/sh 2015-03-10 15:10:35 -07:00
git-merge-octopus.sh merge-octopus: Work around environment issue on Windows 2010-10-01 23:08:46 +01:00
git-merge-one-file.sh Merge branch 'kb/p4merge' 2013-03-26 13:15:24 -07:00
git-merge-resolve.sh Convert to use quiet option when available 2009-04-22 19:05:37 -07:00
git-mergetool--lib.sh mergetool-lib: fix default tool selection 2015-06-19 11:20:52 -07:00
git-mergetool.sh mergetool--lib: set IFS for difftool and mergetool 2015-05-20 13:13:42 -07:00
git-p4.py Merge branch 'ld/p4-changes-block-size' 2015-06-24 12:21:57 -07:00
git-parse-remote.sh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-pull.sh Merge branch 'pt/pull-tags-error-diag' into maint 2015-06-25 11:02:12 -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 rebase: return non-zero error code if format-patch fails 2015-07-08 15:36:42 -07:00
git-rebase--interactive.sh Merge branch 'js/rebase-i-clean-up-upon-continue-to-skip' 2015-07-13 14:00:25 -07:00
git-rebase--merge.sh *.sh: avoid hardcoding $GIT_DIR/hooks/... 2014-12-01 11:00:13 -08:00
git-rebase.sh Merge branch 'jk/rebase-quiet-noop' 2015-05-11 14:23:49 -07:00
git-relink.perl git-relink: use a lowercase "usage:" string 2013-02-24 13:31:06 -08:00
git-remote-testgit.sh transport-helper: do not request symbolic refs to remote helpers 2015-01-21 22:46:59 -08:00
git-request-pull.sh Merge branch 'lt/request-pull' 2014-05-19 10:35:36 -07:00
git-send-email.perl send-email: further warn about unsupported sendmail aliases features 2015-06-01 15:53:19 -07:00
git-sh-i18n.sh remove #!interpreter line from shell libraries 2013-11-26 14:23:56 -08:00
git-sh-setup.sh Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
git-stash.sh Merge branch 'jk/stash-require-clean-index' 2015-06-24 12:21:59 -07:00
git-submodule.sh Merge branch 'ps/submodule-sanitize-path-upon-add' 2015-02-22 12:28:26 -08:00
git-svn.perl git-svn: lazy load some modules 2015-02-26 20:19:21 +00:00
GIT-VERSION-GEN Git 2.5 2015-07-27 12:29:47 -07:00
git-web--browse.sh git-web--browse.sh: use the $( ... ) construct for command substitution 2014-04-23 15:17:02 -07:00
git.c Merge branch 'es/worktree-add' 2015-07-13 14:02:19 -07:00
git.rc Makefile: Fix compilation of Windows resource file 2014-01-23 10:00:28 -08:00
git.spec.in spec: add missing build dependency 2012-04-06 10:15:11 -07:00
gpg-interface.c Merge branch 'jc/push-cert' 2014-10-08 13:05:25 -07:00
gpg-interface.h gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
graph.c Merge branch 'rs/graph-simplify' 2014-09-29 12:36:11 -07:00
graph.h Revert "graph.c: mark private file-scope symbols as static" 2013-03-03 19:43:54 -08:00
grep.c Merge branch 'jk/blame-commit-label' 2015-02-11 13:39:50 -08:00
grep.h grep: add color.grep.matchcontext and color.grep.matchselected 2014-10-28 10:33:50 -07:00
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 'js/sleep-without-select' 2015-06-24 12:21:47 -07:00
help.h help: add help_unknown_ref() 2013-05-08 15:31:54 -07:00
hex.c define utility functions for object IDs 2015-03-13 22:43:11 -07:00
http-backend.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
http-fetch.c Merge branch 'ab/enable-i18n' 2011-12-19 16:06:41 -08:00
http-push.c Merge branch 'sb/leaks' 2015-03-27 13:02:32 -07:00
http-walker.c http-walker: simplify process_alternates_response() using strbuf 2014-09-02 10:57:14 -07:00
http.c Merge branch 'et/http-proxyauth' 2015-07-13 14:00:24 -07:00
http.h http.c: make finish_active_slot() and handle_curl_result() static 2015-01-15 11:00:52 -08:00
ident.c Merge branch 'jk/commit-author-parsing' 2014-09-19 11:38:33 -07:00
imap-send.c imap-send: use cURL automatically when NO_OPENSSL defined 2015-03-10 15:19:05 -07:00
INSTALL git-imap-send: use libcurl for implementation 2014-11-10 09:17:27 -08:00
khash.h use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
kwset.c kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
kwset.h kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
levenshtein.c Fix typos / spelling in comments 2009-04-22 19:02:12 -07:00
levenshtein.h Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
LGPL-2.1 provide a copy of the LGPLv2.1 2011-05-19 18:23:17 -07:00
line-log.c Merge branch 'jk/color-diff-plain-is-context' 2015-06-11 09:29:53 -07:00
line-log.h line-log.c: make line_log_data_init() static 2015-01-15 11:05:47 -08: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/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -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: pass the original path to external drivers 2015-06-04 15:36:32 -07:00
ll-merge.h merge-recursive --patience 2010-08-26 09:20:03 -07:00
lockfile.c Merge branch 'js/sleep-without-select' 2015-06-24 12:21:47 -07:00
lockfile.h lockfile: allow file locking to be retried with a timeout 2015-05-14 14:51:08 -07:00
log-tree.c add_ref_decoration(): convert local variable original_sha1 to object_id 2015-05-25 12:19:34 -07:00
log-tree.h Merge branch 'jn/parse-config-slot' 2014-10-20 12:23:48 -07:00
mailmap.c mailmap: use higher level string list functions 2014-12-04 15:10:21 -08:00
mailmap.h mailmap: simplify map_user() interface 2013-01-10 12:33:08 -08:00
Makefile Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
match-trees.c use xstrfmt to replace xmalloc + sprintf 2014-06-19 15:20:54 -07:00
merge-blobs.c merge-blobs.c: fix a memleak 2015-03-23 11:12:58 -07:00
merge-blobs.h Which merge_file() function do you mean? 2012-12-09 23:05:27 -08:00
merge-recursive.c use file_exists() to check if a file exists in the worktree 2015-05-20 13:49:10 -07:00
merge-recursive.h Move try_merge_command and checkout_fast_forward to libgit.a 2012-10-29 03:08:30 -04:00
merge.c lockfile.h: extract new header file for the functions in lockfile.c 2014-10-01 13:56:14 -07:00
mergesort.c mergesort: rename it to llist_mergesort() 2012-04-17 11:07:01 -07:00
mergesort.h mergesort: rename it to llist_mergesort() 2012-04-17 11:07:01 -07:00
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 introduce notes-cache interface 2010-04-01 23:58:30 -07:00
notes-merge.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
notes-merge.h Move create_notes_commit() from notes-merge.c into notes-utils.c 2013-06-12 10:38:13 -07:00
notes-utils.c use strbuf_complete_line() for adding a newline if needed 2014-12-12 11:23:45 -08: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 string_list_add_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:34 -07:00
notes.h many small typofixes 2013-07-29 12:32:25 -07:00
object.c Merge branch 'jk/type-from-string-gently' 2015-05-05 21:00:29 -07:00
object.h drop add_object_array_with_mode 2014-10-19 15:28:30 -07:00
pack-bitmap-write.c Merge branch 'jk/pack-bitmap' 2014-12-12 14:31:42 -08:00
pack-bitmap.c Merge branch 'es/osx-header-pollutes-mask-macro' 2015-06-24 12:21:44 -07:00
pack-bitmap.h pack-bitmap.c: make pack_bitmap_filename() static 2015-01-15 11:04:10 -08:00
pack-check.c fsck: print progress 2011-11-06 20:31:28 -08:00
pack-objects.c use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -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 pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt() 2014-09-02 10:37:24 -07:00
pack.h finish_tmp_packfile():use strbuf for pathname construction 2014-03-03 12:15:10 -08:00
pager.c Merge branch 'jc/unexport-git-pager-in-use-in-pager' 2015-07-13 14:00:27 -07:00
parse-options-cb.c prune: introduce OPT_EXPIRY_DATE() and use it 2013-04-25 11:42:10 -07:00
parse-options.c Merge branch 'jc/parseopt-verify-short-name' 2014-09-19 11:38:38 -07:00
parse-options.h Merge branch 'iu/fix-parse-options-h-comment' 2015-04-14 10:33:46 -07:00
patch-delta.c compat: helper for detecting unsigned overflow 2011-02-10 13:47:56 -08:00
patch-ids.c patch-ids.c: use ALLOC_GROW() in add_commit() 2014-03-03 14:49:12 -08:00
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
path.c Merge branch 'pt/xdg-config-path' 2015-05-11 14:24:01 -07:00
pathspec.c Merge branch 'maint' 2014-07-21 12:35:39 -07:00
pathspec.h Support pathspec magic :(exclude) and its short form :! 2013-12-06 13:00:39 -08:00
pkt-line.c pkt-line: allow writing of LARGE_PACKET_MAX buffers 2014-12-10 13:09:21 -08:00
pkt-line.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
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 'rs/simple-cleanups' 2015-03-05 12:45:42 -08: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: treat "no terminal" as being in the foreground 2015-05-19 09:35:14 -07:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
prompt.c prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
prompt.h prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
quote.c ls-tree: remove path filtering logic in show_tree 2014-12-01 11:32:34 -08:00
quote.h ls-tree: remove path filtering logic in show_tree 2014-12-01 11:32:34 -08:00
reachable.c add_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:34 -07:00
reachable.h pack-objects: match prune logic for discarding objects 2014-10-16 10:10:43 -07:00
read-cache.c Merge branch 'nd/untracked-cache' 2015-06-24 12:21:49 -07:00
README doc: add 'everyday' to 'git help' 2014-10-10 16:02:26 -07:00
reflog-walk.c refs.c: change resolve_ref_unsafe reading argument to be a flags field 2014-10-15 10:47:24 -07:00
reflog-walk.h stylefix: asterisks stick to the variable, not the type 2014-09-02 11:33:32 -07:00
refs.c refs: support negative transfer.hideRefs 2015-08-07 11:47:36 -07:00
refs.h each_ref_fn_adapter(): remove adapter 2015-05-25 12:19:39 -07:00
RelNotes First batch for 2.5 cycle 2015-05-05 21:13:30 -07:00
remote-curl.c Merge branch 'rs/deflate-init-cleanup' 2015-03-17 16:01:26 -07:00
remote-testsvn.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
remote.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
remote.h remote.c: add branch_get_push 2015-05-22 09:33:08 -07:00
replace_object.c register_replace_ref(): rewrite to take an object_id argument 2015-05-25 12:19:35 -07:00
rerere.c Merge branch 'jk/rerere-forget-check-enabled' 2015-05-26 13:24:42 -07:00
rerere.h rerere.h: mark string for translation 2014-09-15 11:29:46 -07:00
resolve-undo.c resolve-undo: be specific what part of the index has changed 2014-06-13 11:49:38 -07:00
resolve-undo.h convert unmerge_cache to take struct pathspec 2013-07-15 10:56:08 -07:00
revision.c Merge branch 'jk/still-interesting' 2015-07-17 10:44:56 -07:00
revision.h Merge branch 'jc/unused-symbols' 2015-02-11 13:44:07 -08:00
run-command.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
run-command.h Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
send-pack.c Merge branch 'bc/object-id' 2015-05-05 21:00:23 -07:00
send-pack.h send-pack.c: add --atomic command line argument 2015-01-07 19:56:44 -08:00
sequencer.c Merge branch 'mg/sequencer-commit-messages-always-verbatim' 2015-03-17 16:01:32 -07:00
sequencer.h Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more 2014-11-10 09:56:39 -08:00
server-info.c add_info_ref(): rewrite to take an object_id argument 2015-05-25 12:19:35 -07:00
setup.c Merge branch 'jk/die-on-bogus-worktree-late' 2015-06-16 14:27:06 -07:00
sh-i18n--envsubst.c use REALLOC_ARRAY for changing the allocation size of arrays 2014-09-18 09:13:42 -07:00
sha1_file.c Merge branch 'jk/fix-refresh-utime' 2015-07-10 14:26:15 -07:00
sha1_name.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
sha1-array.c sha1-array.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
sha1-array.h sha1-array.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
sha1-lookup.c sha1-lookup: handle duplicates in sha1_pos() 2014-10-01 13:32:19 -07:00
sha1-lookup.h sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1 2009-04-04 22:57:39 -07:00
shallow.c shallow: rewrite functions to take object_id arguments 2015-05-25 12:19:36 -07:00
shell.c use xstrfmt to replace xmalloc + strcpy/strcat 2014-06-19 15:20:54 -07:00
shortlog.h pretty: Respect --abbrev option 2010-05-04 15:38:58 -07:00
show-index.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
sideband.c sideband.c: do not use ANSI control sequence on non-terminal 2014-06-02 11:02:27 -07:00
sideband.h pkt-line: move LARGE_PACKET_MAX definition from sideband 2013-02-20 13:42:22 -08:00
sigchain.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
sigchain.h refactor signal handling for cleanup functions 2009-01-21 22:46:53 -08:00
split-index.c ewah: add convenient wrapper ewah_serialize_strbuf() 2015-03-12 13:45:16 -07:00
split-index.h split-index: the reading part 2014-06-13 11:49:40 -07:00
strbuf.c Merge branch 'mh/strbuf-read-file-returns-ssize-t' 2015-07-13 14:00:27 -07:00
strbuf.h Merge branch 'mh/strbuf-read-file-returns-ssize-t' 2015-07-13 14:00:27 -07:00
streaming.c Merge branch 'sb/plug-streaming-leak' 2015-04-14 11:49:09 -07:00
streaming.h streaming: void pointer instead of char pointer 2012-05-03 10:22:56 -07:00
string-list.c Merge branch 'sb/string-list' 2014-12-22 12:27:30 -08:00
string-list.h Merge branch 'sb/string-list' 2014-12-22 12:27:30 -08:00
submodule.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
submodule.h rm: delete .gitmodules entry of submodules removed from the work tree 2013-08-06 14:11:00 -07:00
symlinks.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
tag.c gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
tag.h gpg-interface: move parse_signature() to where it should be 2014-09-15 13:23:20 -07:00
tar.h tar-tree: Introduce write_entry() 2006-03-25 16:35:43 -08:00
test-chmtime.c comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
test-config.c add tests for git_config_get_string_const() 2014-08-07 11:41:20 -07:00
test-ctype.c test-ctype: add test for is_pathspec_magic 2011-10-03 11:44:03 -07:00
test-date.c date: use strbufs in date-formatting functions 2014-08-27 10:32:56 -07:00
test-delta.c tests: use a lowercase "usage:" string 2013-02-24 21:30:10 -08:00
test-dump-cache-tree.c Merge branch 'dt/cache-tree-repair' 2014-09-11 10:33:32 -07:00
test-dump-split-index.c t1700: new tests for split-index mode 2014-06-13 11:49:42 -07:00
test-dump-untracked-cache.c untracked cache: guard and disable on system changes 2015-03-12 13:45:18 -07:00
test-genrandom.c tests: use a lowercase "usage:" string 2013-02-24 21:30:10 -08:00
test-hashmap.c Merge branch 'js/test-hashmap-squelch-gcc' 2014-12-22 12:27:46 -08:00
test-index-version.c sparse: Fix mingw_main() argument number/type errors 2013-04-28 12:32:08 -07:00
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 sparse: Fix mingw_main() argument number/type errors 2013-04-28 12:32:08 -07:00
test-mktemp.c Improve error messages when temporary file creation fails 2010-12-21 19:51:17 -08:00
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 prio-queue: priority queue of pointers to structs 2013-06-11 15:15:21 -07:00
test-read-cache.c read-cache: add simple performance test 2013-06-09 17:03:00 -07:00
test-regex.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
test-revision-walking.c Teach revision walking machinery to walk multiple times sequencially 2012-03-30 08:57:49 -07:00
test-run-command.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-scrap-cache-tree.c lockfile.h: extract new header file for the functions in lockfile.c 2014-10-01 13:56:14 -07:00
test-sha1-array.c sha1-array: add test-sha1-array and basic tests 2014-10-01 13:32:10 -07:00
test-sha1.c test-sha1: add a binary output mode 2013-08-22 16:39:46 -07:00
test-sha1.sh more tr portability test script fixes 2008-03-13 00:57:52 -07:00
test-sigchain.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
test-string-list.c replace {pre,suf}fixcmp() with {starts,ends}_with() 2013-12-05 14:13:21 -08:00
test-subprocess.c run-command: introduce CHILD_PROCESS_INIT 2014-08-20 09:53:37 -07:00
test-svn-fe.c msvc: test-svn-fe: Fix linker "unresolved external" error 2013-02-25 12:40:34 -08:00
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.c: detect CPU count on older BSD-like systems 2015-03-10 15:13:28 -07:00
thread-utils.h pack-objects: set number of threads before checking and warning 2014-10-13 12:53:46 -07:00
trace.c Merge branch 'nd/multiple-work-trees' 2015-05-11 14:23:39 -07:00
trace.h git: add performance tracing for git's main() function to debug scripts 2014-07-13 21:25:21 -07:00
trailer.c trailer: use capture_command 2015-03-22 21:39:18 -07:00
trailer.h trailer: put all the processing together and print 2014-10-13 13:55:27 -07:00
transport-helper.c Merge branch 'mh/transport-capabilities' 2015-02-25 15:40:20 -08:00
transport.c write_one_ref(): rewrite to take an object_id argument 2015-05-25 12:19:36 -07:00
transport.h push.c: add an --atomic argument 2015-01-07 19:56:44 -08:00
tree-diff.c diff: convert struct combine_diff_path to object_id 2015-03-13 22:43:13 -07:00
tree-walk.c tree-walk: learn get_tree_entry_follow_symlinks 2015-05-20 13:45:49 -07:00
tree-walk.h tree-walk: learn get_tree_entry_follow_symlinks 2015-05-20 13:45:49 -07:00
tree.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
tree.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
unicode_width.h Update of unicode_width.h to Unicode Version 7.0 2014-06-18 10:53:45 -07:00
unimplemented.sh Makefile: allow building without perl 2009-04-08 22:14:56 -07:00
unix-socket.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
unix-socket.h credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
unpack-trees.c untracked cache: invalidate at index addition or removal 2015-03-12 13:45:16 -07:00
unpack-trees.h diff-lib, read-tree, unpack-trees: mark cache_entry array paramters const 2013-06-02 15:31:14 -07:00
update_unicode.sh update_unicode.sh: delete the command group 2014-12-22 10:03:37 -08:00
upload-pack.c Merge branch 'bc/object-id' 2015-06-05 12:17:37 -07:00
url.c use strbuf_addch for adding single characters 2014-07-10 14:06:46 -07:00
url.h url: decode buffers that are not NUL-terminated 2011-07-20 11:38:34 -07:00
urlmatch.c urlmatch.c: make match_urls() static 2015-01-15 11:05:48 -08:00
urlmatch.h urlmatch.c: make match_urls() static 2015-01-15 11:05:48 -08:00
usage.c Merge branch 'jk/a-thread-only-dies-once' 2013-04-19 13:45:05 -07:00
userdiff.c do not include the same header twice 2015-02-13 13:16:12 -08:00
userdiff.h refactor get_textconv to not require diff_filespec 2011-05-23 15:46:02 -07:00
utf8.c utf8-bom: introduce skip_utf8_bom() helper 2015-04-16 11:35:06 -07:00
utf8.h Merge branch 'es/utf8-stupid-compiler-workaround' 2015-06-24 12:21:46 -07:00
varint.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
varint.h cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
version.c include agent identifier in capability string 2012-08-03 13:03:34 -07:00
version.h include agent identifier in capability string 2012-08-03 13:03:34 -07:00
versioncmp.c versionsort: support reorder prerelease suffixes 2015-02-27 13:38:22 -08:00
walker.c mark_complete(): rewrite to take an object_id argument 2015-05-25 12:19:37 -07:00
walker.h http: init and cleanup separately from http-walker 2010-03-02 11:10:36 -08:00
wildmatch.c wildmatch: properly fold case everywhere 2013-06-02 14:13:05 -07:00
wildmatch.h wildmatch: support "no FNM_PATHNAME" mode 2013-01-01 15:32:37 -08:00
wrap-for-bin.sh wrap-for-bin: make bin-wrappers chainable 2013-07-08 08:55:34 -07:00
wrapper.c help.c: wrap wait-only poll() invocation in sleep_millisec() 2015-06-05 15:00:32 -07:00
write_or_die.c refs: write packed_refs file using stdio 2014-09-10 10:58:32 -07:00
ws.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
wt-status.c Merge branch 'sg/commit-cleanup-scissors' 2015-06-24 12:21:55 -07:00
wt-status.h wt-status: refactor detached HEAD analysis 2015-03-06 11:52:35 -08:00
xdiff-interface.c xdiff: remove emit_func() and xdi_diff_hunks() 2012-05-09 14:08:42 -07:00
xdiff-interface.h xdiff: remove emit_func() and xdi_diff_hunks() 2012-05-09 14:08:42 -07:00
zlib.c zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} 2015-03-05 15:46:03 -08:00

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

	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/giteveryday.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.