2019-01-16 01:25:50 +03:00
|
|
|
/fuzz-commit-graph
|
2018-10-13 03:58:40 +03:00
|
|
|
/fuzz_corpora
|
|
|
|
/fuzz-pack-headers
|
2018-10-13 03:58:41 +03:00
|
|
|
/fuzz-pack-idx
|
2009-10-27 04:10:24 +03:00
|
|
|
/GIT-BUILD-OPTIONS
|
|
|
|
/GIT-CFLAGS
|
2011-06-22 14:50:56 +04:00
|
|
|
/GIT-LDFLAGS
|
2012-06-20 22:31:55 +04:00
|
|
|
/GIT-PREFIX
|
2013-11-19 02:23:11 +04:00
|
|
|
/GIT-PERL-DEFINES
|
2018-04-10 18:05:42 +03:00
|
|
|
/GIT-PERL-HEADER
|
2012-12-18 19:26:38 +04:00
|
|
|
/GIT-PYTHON-VARS
|
2012-06-20 22:32:16 +04:00
|
|
|
/GIT-SCRIPT-DEFINES
|
2012-06-20 22:31:51 +04:00
|
|
|
/GIT-USER-AGENT
|
2009-10-27 04:10:24 +03:00
|
|
|
/GIT-VERSION-FILE
|
2009-12-03 08:14:05 +03:00
|
|
|
/bin-wrappers/
|
2009-10-27 04:10:24 +03:00
|
|
|
/git
|
|
|
|
/git-add
|
|
|
|
/git-add--interactive
|
|
|
|
/git-am
|
|
|
|
/git-annotate
|
|
|
|
/git-apply
|
|
|
|
/git-archimport
|
|
|
|
/git-archive
|
|
|
|
/git-bisect
|
|
|
|
/git-bisect--helper
|
|
|
|
/git-blame
|
|
|
|
/git-branch
|
2020-04-17 00:18:04 +03:00
|
|
|
/git-bugreport
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-bundle
|
|
|
|
/git-cat-file
|
|
|
|
/git-check-attr
|
2013-01-06 20:58:13 +04:00
|
|
|
/git-check-ignore
|
2013-07-13 04:53:10 +04:00
|
|
|
/git-check-mailmap
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-check-ref-format
|
|
|
|
/git-checkout
|
parallel-checkout: make it truly parallel
Use multiple worker processes to distribute the queued entries and call
write_pc_item() in parallel for them. The items are distributed
uniformly in contiguous chunks. This minimizes the chances of two
workers writing to the same directory simultaneously, which could affect
performance due to lock contention in the kernel. Work stealing (or any
other format of re-distribution) is not implemented yet.
The protocol between the main process and the workers is quite simple.
They exchange binary messages packed in pkt-line format, and use
PKT-FLUSH to mark the end of input (from both sides). The main process
starts the communication by sending N pkt-lines, each corresponding to
an item that needs to be written. These packets contain all the
necessary information to load, smudge, and write the blob associated
with each item. Then it waits for the worker to send back N pkt-lines
containing the results for each item. The resulting packet must contain:
the identification number of the item that it refers to, the status of
the operation, and the lstat() data gathered after writing the file (iff
the operation was successful).
For now, checkout always uses a hardcoded value of 2 workers, only to
demonstrate that the parallel checkout framework correctly divides and
writes the queued entries. The next patch will add user configurations
and define a more reasonable default, based on tests with the said
settings.
Co-authored-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Co-authored-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-04-19 03:14:54 +03:00
|
|
|
/git-checkout--worker
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-checkout-index
|
|
|
|
/git-cherry
|
|
|
|
/git-cherry-pick
|
|
|
|
/git-clean
|
|
|
|
/git-clone
|
2012-04-21 08:44:32 +04:00
|
|
|
/git-column
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-commit
|
2018-04-02 23:34:18 +03:00
|
|
|
/git-commit-graph
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-commit-tree
|
|
|
|
/git-config
|
|
|
|
/git-count-objects
|
2012-06-24 15:39:59 +04:00
|
|
|
/git-credential
|
2011-12-10 14:34:14 +04:00
|
|
|
/git-credential-cache
|
|
|
|
/git-credential-cache--daemon
|
2011-12-10 14:34:44 +04:00
|
|
|
/git-credential-store
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-cvsexportcommit
|
|
|
|
/git-cvsimport
|
|
|
|
/git-cvsserver
|
|
|
|
/git-daemon
|
|
|
|
/git-diff
|
|
|
|
/git-diff-files
|
|
|
|
/git-diff-index
|
|
|
|
/git-diff-tree
|
|
|
|
/git-difftool
|
|
|
|
/git-difftool--helper
|
|
|
|
/git-describe
|
2019-06-21 13:18:06 +03:00
|
|
|
/git-env--helper
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-fast-export
|
|
|
|
/git-fast-import
|
|
|
|
/git-fetch
|
|
|
|
/git-fetch-pack
|
|
|
|
/git-filter-branch
|
|
|
|
/git-fmt-merge-msg
|
|
|
|
/git-for-each-ref
|
2020-09-11 20:49:16 +03:00
|
|
|
/git-for-each-repo
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-format-patch
|
|
|
|
/git-fsck
|
|
|
|
/git-fsck-objects
|
|
|
|
/git-gc
|
|
|
|
/git-get-tar-commit-id
|
|
|
|
/git-grep
|
|
|
|
/git-hash-object
|
|
|
|
/git-help
|
2009-11-21 10:51:23 +03:00
|
|
|
/git-http-backend
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-http-fetch
|
|
|
|
/git-http-push
|
|
|
|
/git-imap-send
|
|
|
|
/git-index-pack
|
|
|
|
/git-init
|
|
|
|
/git-init-db
|
2014-10-13 22:16:29 +04:00
|
|
|
/git-interpret-trailers
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-instaweb
|
|
|
|
/git-log
|
|
|
|
/git-ls-files
|
|
|
|
/git-ls-remote
|
|
|
|
/git-ls-tree
|
|
|
|
/git-mailinfo
|
|
|
|
/git-mailsplit
|
maintenance: create basic maintenance runner
The 'gc' builtin is our current entrypoint for automatically maintaining
a repository. This one tool does many operations, such as repacking the
repository, packing refs, and rewriting the commit-graph file. The name
implies it performs "garbage collection" which means several different
things, and some users may not want to use this operation that rewrites
the entire object database.
Create a new 'maintenance' builtin that will become a more general-
purpose command. To start, it will only support the 'run' subcommand,
but will later expand to add subcommands for scheduling maintenance in
the background.
For now, the 'maintenance' builtin is a thin shim over the 'gc' builtin.
In fact, the only option is the '--auto' toggle, which is handed
directly to the 'gc' builtin. The current change is isolated to this
simple operation to prevent more interesting logic from being lost in
all of the boilerplate of adding a new builtin.
Use existing builtin/gc.c file because we want to share code between the
two builtins. It is possible that we will have 'maintenance' replace the
'gc' builtin entirely at some point, leaving 'git gc' as an alias for
some specific arguments to 'git maintenance run'.
Create a new test_subcommand helper that allows us to test if a certain
subcommand was run. It requires storing the GIT_TRACE2_EVENT logs in a
file. A negation mode is available that will be used in later tests.
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-09-17 21:11:42 +03:00
|
|
|
/git-maintenance
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-merge
|
|
|
|
/git-merge-base
|
|
|
|
/git-merge-index
|
|
|
|
/git-merge-file
|
|
|
|
/git-merge-tree
|
|
|
|
/git-merge-octopus
|
|
|
|
/git-merge-one-file
|
|
|
|
/git-merge-ours
|
|
|
|
/git-merge-recursive
|
|
|
|
/git-merge-resolve
|
|
|
|
/git-merge-subtree
|
|
|
|
/git-mergetool
|
|
|
|
/git-mergetool--lib
|
|
|
|
/git-mktag
|
|
|
|
/git-mktree
|
2018-07-12 22:39:20 +03:00
|
|
|
/git-multi-pack-index
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-mv
|
2018-07-12 22:39:20 +03:00
|
|
|
/git-name-rev
|
2009-11-21 10:53:55 +03:00
|
|
|
/git-notes
|
2012-04-09 04:18:00 +04:00
|
|
|
/git-p4
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-pack-redundant
|
|
|
|
/git-pack-objects
|
|
|
|
/git-pack-refs
|
|
|
|
/git-patch-id
|
|
|
|
/git-prune
|
|
|
|
/git-prune-packed
|
|
|
|
/git-pull
|
|
|
|
/git-push
|
|
|
|
/git-quiltimport
|
2018-08-13 14:33:02 +03:00
|
|
|
/git-range-diff
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-read-tree
|
|
|
|
/git-rebase
|
2018-05-28 15:34:19 +03:00
|
|
|
/git-rebase--preserve-merges
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-receive-pack
|
|
|
|
/git-reflog
|
|
|
|
/git-remote
|
2009-12-09 18:26:34 +03:00
|
|
|
/git-remote-http
|
|
|
|
/git-remote-https
|
|
|
|
/git-remote-ftp
|
|
|
|
/git-remote-ftps
|
2010-10-12 20:39:42 +04:00
|
|
|
/git-remote-fd
|
2010-10-12 20:39:43 +04:00
|
|
|
/git-remote-ext
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-repack
|
|
|
|
/git-replace
|
|
|
|
/git-request-pull
|
|
|
|
/git-rerere
|
|
|
|
/git-reset
|
2019-04-25 12:45:45 +03:00
|
|
|
/git-restore
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-rev-list
|
|
|
|
/git-rev-parse
|
|
|
|
/git-revert
|
|
|
|
/git-rm
|
|
|
|
/git-send-email
|
|
|
|
/git-send-pack
|
2011-05-14 17:47:42 +04:00
|
|
|
/git-sh-i18n
|
|
|
|
/git-sh-i18n--envsubst
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-sh-setup
|
|
|
|
/git-shell
|
|
|
|
/git-shortlog
|
|
|
|
/git-show
|
|
|
|
/git-show-branch
|
|
|
|
/git-show-index
|
|
|
|
/git-show-ref
|
2019-11-22 01:04:33 +03:00
|
|
|
/git-sparse-checkout
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-stage
|
|
|
|
/git-stash
|
|
|
|
/git-status
|
|
|
|
/git-stripspace
|
|
|
|
/git-submodule
|
2015-09-03 00:42:24 +03:00
|
|
|
/git-submodule--helper
|
2021-04-28 00:17:19 +03:00
|
|
|
/git-subtree
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-svn
|
2019-03-29 13:39:05 +03:00
|
|
|
/git-switch
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-symbolic-ref
|
|
|
|
/git-tag
|
|
|
|
/git-unpack-file
|
|
|
|
/git-unpack-objects
|
|
|
|
/git-update-index
|
|
|
|
/git-update-ref
|
|
|
|
/git-update-server-info
|
|
|
|
/git-upload-archive
|
|
|
|
/git-upload-pack
|
|
|
|
/git-var
|
2014-07-15 17:40:24 +04:00
|
|
|
/git-verify-commit
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-verify-pack
|
|
|
|
/git-verify-tag
|
|
|
|
/git-web--browse
|
|
|
|
/git-whatchanged
|
2015-06-29 15:51:18 +03:00
|
|
|
/git-worktree
|
2009-10-27 04:10:24 +03:00
|
|
|
/git-write-tree
|
|
|
|
/git-core-*/?*
|
2010-04-26 00:17:05 +04:00
|
|
|
/gitweb/GITWEB-BUILD-OPTIONS
|
2009-10-27 04:10:24 +03:00
|
|
|
/gitweb/gitweb.cgi
|
2011-04-28 23:04:01 +04:00
|
|
|
/gitweb/static/gitweb.js
|
2010-08-21 20:18:37 +04:00
|
|
|
/gitweb/static/gitweb.min.*
|
help: move list_config_help to builtin/help
Starting in 3ac68a93fd2, help.o began to depend on builtin/branch.o,
builtin/clean.o, and builtin/config.o. This meant that help.o was
unusable outside of the context of the main Git executable.
To make help.o usable by other commands again, move list_config_help()
into builtin/help.c (where it makes sense to assume other builtin libraries
are present).
When command-list.h is included but a member is not used, we start to
hear a compiler warning. Since the config list is generated in a fairly
different way than the command list, and since commands and config
options are semantically different, move the config list into its own
header and move the generator into its own script and build rule.
For reasons explained in 976aaedc (msvc: add a Makefile target to
pre-generate the Visual Studio solution, 2019-07-29), some build
artifacts we consider non-source files cannot be generated in the
Visual Studio environment, and we already have some Makefile tweaks
to help Visual Studio to use generated command-list.h header file.
Do the same to a new generated file, config-list.h, introduced by
this change.
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
2020-04-17 00:18:03 +03:00
|
|
|
/config-list.h
|
2018-05-10 11:46:41 +03:00
|
|
|
/command-list.h
|
2005-09-24 22:19:07 +04:00
|
|
|
*.tar.gz
|
|
|
|
*.dsc
|
|
|
|
*.deb
|
2009-10-27 04:10:24 +03:00
|
|
|
/git.spec
|
2005-09-29 10:22:02 +04:00
|
|
|
*.exe
|
2007-05-30 21:42:41 +04:00
|
|
|
*.[aos]
|
Makefile: add support for generating JSON compilation database
Tools based on LibClang [1] can make use of a 'JSON Compilation
Database' [2] that keeps track of the exact options used to compile a set
of source files.
For example, clangd [3], which is a C language server protocol
implementation, can use a JSON compilation database to determine the
flags needed to compile a file so it can provide proper editor
integration. As a result, editors supporting the language server
protocol (such as VS Code, Emacs, or Vim, with suitable plugins) can
provide better searching, integration, and refactoring tools.
The Clang compiler can generate JSON fragments when compiling [4],
using the `-MJ` flag. These JSON fragments (one per compiled source
file) can then be concatenated to create the compilation database,
commonly called 'compile_commands.json'.
Add support to the Makefile for generating these JSON fragments as well
as the compilation database itself, if the environment variable
'GENERATE_COMPILATION_DATABASE' is set.
If this variable is set, check that $(CC) indeed supports the `-MJ`
flag, following what is done for automatic dependencies.
All JSON fragments are placed in the 'compile_commands/' directory, and
the compilation database 'compile_commands.json' is generated as a
dependency of the 'all' target using a `sed` invocation.
[1] https://clang.llvm.org/docs/Tooling.html
[2] https://clang.llvm.org/docs/JSONCompilationDatabase.html
[3] https://clangd.llvm.org/
[4] https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-mj-arg
Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-09-04 01:13:38 +03:00
|
|
|
*.o.json
|
2006-01-05 19:38:58 +03:00
|
|
|
*.py[co]
|
2010-04-15 11:35:20 +04:00
|
|
|
.depend/
|
2010-07-25 23:52:39 +04:00
|
|
|
*.gcda
|
|
|
|
*.gcno
|
|
|
|
*.gcov
|
|
|
|
/coverage-untested-functions
|
2010-07-25 23:52:42 +04:00
|
|
|
/cover_db/
|
2010-07-25 23:52:43 +04:00
|
|
|
/cover_db_html/
|
2009-11-09 01:07:16 +03:00
|
|
|
*+
|
2009-10-27 04:10:24 +03:00
|
|
|
/config.mak
|
|
|
|
/autom4te.cache
|
|
|
|
/config.cache
|
|
|
|
/config.log
|
|
|
|
/config.status
|
|
|
|
/config.mak.autogen
|
|
|
|
/config.mak.append
|
|
|
|
/configure
|
2018-07-30 18:42:46 +03:00
|
|
|
/.vscode/
|
2009-10-27 04:10:24 +03:00
|
|
|
/tags
|
|
|
|
/TAGS
|
|
|
|
/cscope*
|
Makefile: add support for generating JSON compilation database
Tools based on LibClang [1] can make use of a 'JSON Compilation
Database' [2] that keeps track of the exact options used to compile a set
of source files.
For example, clangd [3], which is a C language server protocol
implementation, can use a JSON compilation database to determine the
flags needed to compile a file so it can provide proper editor
integration. As a result, editors supporting the language server
protocol (such as VS Code, Emacs, or Vim, with suitable plugins) can
provide better searching, integration, and refactoring tools.
The Clang compiler can generate JSON fragments when compiling [4],
using the `-MJ` flag. These JSON fragments (one per compiled source
file) can then be concatenated to create the compilation database,
commonly called 'compile_commands.json'.
Add support to the Makefile for generating these JSON fragments as well
as the compilation database itself, if the environment variable
'GENERATE_COMPILATION_DATABASE' is set.
If this variable is set, check that $(CC) indeed supports the `-MJ`
flag, following what is done for automatic dependencies.
All JSON fragments are placed in the 'compile_commands/' directory, and
the compilation database 'compile_commands.json' is generated as a
dependency of the 'all' target using a `sed` invocation.
[1] https://clang.llvm.org/docs/Tooling.html
[2] https://clang.llvm.org/docs/JSONCompilationDatabase.html
[3] https://clangd.llvm.org/
[4] https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-mj-arg
Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-09-04 01:13:38 +03:00
|
|
|
/compile_commands.json
|
Makefile: emulate compile in $(HCO) target better
Currently, when testing headers using `make hdr-check`, headers are
directly compiled. Although this seems to test the headers, this is too
strict since we treat the headers as C sources. As a result, this will
cause warnings to appear that would otherwise not, such as a static
variable definition intended for later use throwing a unused variable
warning.
In addition, on platforms that can run `make hdr-check` but require
custom flags, this target was failing because none of them were being
passed to the compiler. For example, on MacOS, the NO_OPENSSL flag was
being set but it was not being passed into compiler so the check was
failing.
Fix these problems by emulating the compile process better, including
test compiling dummy *.hcc C sources generated from the *.h files and
passing $(ALL_CFLAGS) into the compiler for the $(HCO) target so that
these custom flags can be used.
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-09-25 11:21:01 +03:00
|
|
|
*.hcc
|
2009-09-16 12:20:30 +04:00
|
|
|
*.obj
|
|
|
|
*.lib
|
2012-05-24 03:56:24 +04:00
|
|
|
*.res
|
2009-09-16 12:20:30 +04:00
|
|
|
*.sln
|
|
|
|
*.suo
|
|
|
|
*.ncb
|
|
|
|
*.vcproj
|
|
|
|
*.user
|
|
|
|
*.idb
|
|
|
|
*.pdb
|
2019-06-25 17:49:42 +03:00
|
|
|
*.ilk
|
|
|
|
*.iobj
|
|
|
|
*.ipdb
|
|
|
|
*.dll
|
|
|
|
.vs/
|
2019-07-29 23:08:14 +03:00
|
|
|
Debug/
|
|
|
|
Release/
|
2019-07-29 23:08:15 +03:00
|
|
|
/UpgradeLog*.htm
|
|
|
|
/git.VC.VC.opendb
|
|
|
|
/git.VC.db
|
.gitignore: ignore external debug symbols from GCC on macOS
When Git is build with a "real" GCC on macOS [1], or at least with GCC
installed via Homebrew, and CFLAGS includes the '-g' option (and our
default CFLAGS does), then by default GCC writes the debug symbols
into external files under '<binary>.dSYM/' directories (e.g.
'git-daemon.dSYM/', 'git.dSYM/', etc.).
Update '.gitignore' to ignore these directories, so they don't clutter
the output of 'git status'. Furthermore, these build artifacts then
won't trigger build failures on Travis CI via b92cb86ea1 (travis-ci:
check that all build artifacts are .gitignore-d, 2017-12-31) once one
of the following patches updates our CI build scripts to use a real
GCC in the 'osx-gcc' build job.
[1] On macOS the default '/usr/bin/gcc' executable is not a real GCC,
but merely a compatibility wrapper around Clang:
$ gcc --version
Configured with: --prefix=<...>
Apple LLVM version 9.0.0 (clang-900.0.39.2)
<...>
So even though 'make CC=gcc' does indeed execute a command called
'gcc', in the end Git will be built with Clang all the same.
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-01-17 04:29:10 +03:00
|
|
|
*.dSYM
|
2020-09-25 17:28:29 +03:00
|
|
|
/contrib/buildsystems/out
|