[PATCH 13/17] msvc: support building Git using MS Visual C++

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler With this patch, Git can be built using the Microsoft toolchain, via: make MSVC=1 [DEBUG=1] Third party libraries are built from source using the open source "vcpkg" tool set. See https://github.com/Microsoft/vcpkg On a first build, the vcpkg tools and

[PATCH 17/17] msvc: ignore .dll and incremental compile output

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Ignore .dll files copied into the top-level directory. Ignore MSVC incremental compiler output files. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- .gitignore | 5 + 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index

[PATCH 12/17] msvc: fix detect_msys_tty()

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler The ntstatus.h header is only available in MINGW. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/winansi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/compat/winansi.c b/compat/winansi.c index f4f08237f9..11cd9b82cc

[PATCH 11/17] msvc: define ftello()

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler It is just called differently in MSVC's headers. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/msvc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/msvc.h b/compat/msvc.h index d336d80670..d7525cf61d 100644 --- a/compat/m

[PATCH 03/17] cache-tree.c: avoid reusing the DEBUG constant

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler In MSVC, the DEBUG constant is set automatically whenever compiling with debug information. This is clearly not what was intended in cache-tree.c, so let's use a less ambiguous constant there. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin ---

[PATCH 09/17] msvc: mark a variable as non-const

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler VS2015 complains when using a const pointer in memcpy()/free(). Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compat/mingw.c b/compat/mingw.c index 0d8713e515

[PATCH 1/3] status: add status.aheadbehind setting

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler The --[no-]ahead-behind option was introduced in fd9b544a (status: add --[no-]ahead-behind to status and commit for V2 format, 2018-01-09). This is a necessary change of behavior in repos where the remote tracking branches can move very quickly ahead of the local branches

[PATCH 3/3] status: ignore status.aheadbehind in porcelain formats

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Teach porcelain V[12] formats to ignore the status.aheadbehind config setting. They only respect the --[no-]ahead-behind command line argument. This is for backwards compatibility with existing scripts. Signed-off-by: Jeff Hostetler Signed-off-by: Derrick Stolee

[PATCH 2/3] status: warn when a/b calculation takes too long

2019-06-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler The ahead/behind calculation in 'git status' can be slow in some cases. Users may not realize that there are ways to avoid this computation, especially if they are not using the information. Add a warning that appears if this calculation takes more than two se

[PATCH v2 10/20] msvc: mark a variable as non-const

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler VS2015 complains when using a const pointer in memcpy()/free(). Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compat/mingw.c b/compat/mingw.c index 0d8713e515

[PATCH v2 14/20] msvc: update Makefile to allow for spaces in the compiler path

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler It is quite common that MS Visual C++ is installed into a location whose path contains spaces, therefore we need to quote it. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a

[PATCH v2 11/20] msvc: do not re-declare the timespec struct

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler VS2015's headers already declare that struct. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/mingw.h b/compat/mingw.h index 210f1b01a8..a03e40e6e2 100644 --- a/c

[PATCH v2 18/20] msvc: do not pretend to support all signals

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler This special-cases various signals that are not supported on Windows, such as SIGPIPE. These cause the UCRT to throw asserts (at least in debug mode). Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.c | 25 + 1

[PATCH v2 20/20] msvc: ignore .dll and incremental compile output

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Ignore .dll files copied into the top-level directory. Ignore MSVC incremental compiler output files. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- .gitignore | 5 + 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index

[PATCH v2 16/20] msvc: add a compile-time flag to allow detailed heap debugging

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler MS Visual C comes with a few neat features we can use to analyze the heap consumption (i.e. leaks, max memory, etc). With this patch, we introduce support via the build-time flag `USE_MSVC_CRTDBG`. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin

[PATCH v2 12/20] msvc: define ftello()

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler It is just called differently in MSVC's headers. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/msvc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/msvc.h b/compat/msvc.h index d336d80670..d7525cf61d 100644 --- a/compat/m

[PATCH v2 13/20] msvc: fix detect_msys_tty()

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler The ntstatus.h header is only available in MINGW. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/winansi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/compat/winansi.c b/compat/winansi.c index f4f08237f9..11cd9b82cc

[PATCH v2 15/20] msvc: support building Git using MS Visual C++

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler With this patch, Git can be built using the Microsoft toolchain, via: make MSVC=1 [DEBUG=1] Third party libraries are built from source using the open source "vcpkg" tool set. See https://github.com/Microsoft/vcpkg On a first build, the vcpkg tools and

[PATCH v2 04/20] cache-tree/blame: avoid reusing the DEBUG constant

2019-06-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler In MS Visual C, the `DEBUG` constant is set automatically whenever compiling with debug information. This is clearly not what was intended in `cache-tree.c` nor in `builtin/blame.c`, so let's use a less ambiguous name there. Signed-off-by: Jeff Hostetler Signed-o

[PATCH v3 20/20] msvc: ignore .dll and incremental compile output

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Ignore .dll files copied into the top-level directory. Ignore MSVC incremental compiler output files. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- .gitignore | 5 + 1 file changed, 5 insertions(+) diff --git a/.gitignore b/.gitignore index

[PATCH v3 10/20] msvc: mark a variable as non-const

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler VS2015 complains when using a const pointer in memcpy()/free(). Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/compat/mingw.c b/compat/mingw.c index 0d8713e515

[PATCH v3 14/20] msvc: update Makefile to allow for spaces in the compiler path

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler It is quite common that MS Visual C++ is installed into a location whose path contains spaces, therefore we need to quote it. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a

[PATCH v3 16/20] msvc: add a compile-time flag to allow detailed heap debugging

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler MS Visual C comes with a few neat features we can use to analyze the heap consumption (i.e. leaks, max memory, etc). With this patch, we introduce support via the build-time flag `USE_MSVC_CRTDBG`. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin

[PATCH v3 13/20] msvc: fix detect_msys_tty()

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler The ntstatus.h header is only available in MINGW. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/winansi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/compat/winansi.c b/compat/winansi.c index f4f08237f9..11cd9b82cc

[PATCH v3 04/20] cache-tree/blame: avoid reusing the DEBUG constant

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler In MS Visual C, the `DEBUG` constant is set automatically whenever compiling with debug information. This is clearly not what was intended in `cache-tree.c` nor in `builtin/blame.c`, so let's use a less ambiguous name there. Signed-off-by: Jeff Hostetler Signed-o

[PATCH v3 12/20] msvc: define ftello()

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler It is just called differently in MSVC's headers. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/msvc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/msvc.h b/compat/msvc.h index d336d80670..d7525cf61d 100644 --- a/compat/m

[PATCH v3 18/20] msvc: do not pretend to support all signals

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler This special-cases various signals that are not supported on Windows, such as SIGPIPE. These cause the UCRT to throw asserts (at least in debug mode). Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.c | 25 + 1

[PATCH v3 11/20] msvc: do not re-declare the timespec struct

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler VS2015's headers already declare that struct. Signed-off-by: Jeff Hostetler Signed-off-by: Johannes Schindelin --- compat/mingw.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compat/mingw.h b/compat/mingw.h index 210f1b01a8..a03e40e6e2 100644 --- a/c

[PATCH v3 15/20] msvc: support building Git using MS Visual C++

2019-06-25 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler With this patch, Git can be built using the Microsoft toolchain, via: make MSVC=1 [DEBUG=1] Third party libraries are built from source using the open source "vcpkg" tool set. See https://github.com/Microsoft/vcpkg On a first build, the vcpkg tools and

[PATCH 1/3] trace2: cleanup column alignment in perf target format

2019-07-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Truncate/elide very long "filename:linenumber" field. Truncate region and data "category" field if necessary. Adjust overall column widths. Signed-off-by: Jeff Hostetler --- trace2/tr2_tgt_perf.c | 39 +-- 1 file ch

[PATCH 2/3] trace2: trim whitespace in start message in perf target format

2019-07-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Trim leading/trailing whitespace from the command line printed in the "start" message in the perf target format. We use `sq_quote_argv_pretty()` to format the message and it adds a leading space to the output. Trim that. Signed-off-by: Jeff Hostetler -

[PATCH 3/3] trace2: trim whitespace in region messages in perf target format

2019-07-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Trim trailing whitespace in "region_enter" and "region_leave" messages in perf target format. Signed-off-by: Jeff Hostetler --- trace2/tr2_tgt_perf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/trace2/tr2_tgt_perf.c b/trace2/tr2_tgt_per

[PATCH 0/3] trace2: clean up formatting in perf target format

2019-07-31 Thread Jeff Hostetler via GitGitGadget
This patch series contains a few column alignment and whitespace fixes for perf target format. This should make it a little easier to read. Jeff Hostetler (3): trace2: cleanup column alignment in perf target format trace2: trim whitespace in start message in perf target format trace2: trim

[PATCH 2/8] trace2: add trace2 to main

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- compat/mingw.h| 3 +-- git-compat-util.h | 7 +++ git.c | 9 - repository.c | 2 ++ run-command.c | 8 +++- run-command.h | 5 + usage.c | 5 + 7 files changed, 35 insertions

[PATCH 8/8] trace2: demonstrate use of regions in read_directory_recursive

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_region_enter() and _leave() calls inside read_directory_recursive() to show nesting and per-level timing. TODO Drop this commit or ifdef the calls. It generates too much data to be in the production version. It is included in this patch series for illustration

[PATCH 7/8] trace2: demonstrate setting sub-command parameter in checkout

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_param() events in checkout to report whether the command is switching branches or just checking out a file. Signed-off-by: Jeff Hostetler --- builtin/checkout.c | 5 + 1 file changed, 5 insertions(+) diff --git a/builtin/checkout.c b/builtin/checkout.c

[PATCH 4/8] trace2: demonstrate trace2 child process classification

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Classify editory, pager, and sub-process child processes. The former two can be used to identify interactive commands, for example. Signed-off-by: Jeff Hostetler --- editor.c | 1 + pager.c | 1 + sub-process.c | 1 + 3 files changed, 3 insertions(+) diff

[PATCH 1/8] trace2: create new combined trace facility

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create trace2 API allowing event-based tracing. This will hopefully eventually replace the existing trace API. Create GIT_TR2 trace-key to replace GIT_TRACE, GIT_TR2_PERFORMANCE to replace GIT_TRACE_PERFORMANCE, and a new trace-key GIT_TR2_EVENT to generate JSON data for

[PATCH 5/8] trace2: demonstrate instrumenting do_read_index

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- read-cache.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/read-cache.c b/read-cache.c index 7b1354d759..7a31ac4da8 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1867,6 +1867,8 @@ static void tweak_split_index(struct

[PATCH 0/8] WIP: trace2: a new trace facility

2018-08-31 Thread Jeff Hostetler via GitGitGadget
Cc: gitster@pobox.comCc: peff@peff.netCc: peartben@gmail.comCc: jrnieder@gmail.comCc: pclo...@gmail.com Jeff Hostetler (8): trace2: create new combined trace facility trace2: add trace2 to main trace2: demonstrate trace2 regions in wt-status trace2: demonstrate trace2 child proces

[PATCH 6/8] trace2: demonstrate instrumenting threaded preload_index

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_region_enter() and _leave() around the entire preload_index() call. Also add thread-specific events in the preload_thread() threadproc. Signed-off-by: Jeff Hostetler --- preload-index.c | 10 ++ 1 file changed, 10 insertions(+) diff --git a/preload

[PATCH 3/8] trace2: demonstrate trace2 regions in wt-status

2018-08-31 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_region_enter() and trace2_region_leave() calls around the various phases of a status scan. This gives elapsed time for each phase in the GIT_TR2_PERFORMANCE trace target. Signed-off-by: Jeff Hostetler --- wt-status.c | 14 -- 1 file changed, 12

[PATCH 2/2] mingw: fix mingw_open_append to work with named pipes

2018-09-07 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- compat/mingw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compat/mingw.c b/compat/mingw.c index 858ca14a57..ef03bbe5d2 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -355,7 +355,7 @@ static int

[PATCH 1/2] t0051: test GIT_TRACE to a windows named pipe

2018-09-07 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create a test-tool helper to create the server side of a windows named pipe, wait for a client connection, and copy data written to the pipe to stdout. Create t0051 test to route GIT_TRACE output of a command to a named pipe using the above test-tool helper. Signed-off-by

[PATCH 0/2] Fixup for js/mingw-o-append

2018-09-07 Thread Jeff Hostetler via GitGitGadget
(js/mingw-o-append) mingw: enable atomic O_APPEND The new mingw_open_append() routine successfully opens the client side of the named pipe, but the first write() to it fails with EBADF. Adding the FILE_WRITE_DATA corrects the problem. Signed-off-by: Jeff Hostetler jeffh...@microsoft.com [jeffh

[PATCH v2 1/2] t0051: test GIT_TRACE to a windows named pipe

2018-09-10 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create a test-tool helper to create the server side of a windows named pipe, wait for a client connection, and copy data written to the pipe to stdout. Create t0051 test to route GIT_TRACE output of a command to a named pipe using the above test-tool helper. Signed-off-by

[PATCH v2 2/2] mingw: fix mingw_open_append to work with named pipes

2018-09-10 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- compat/mingw.c| 38 --- t/t0051-windows-named-pipe.sh | 2 +- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/compat/mingw.c b/compat/mingw.c index 858ca14a57..f87376b26a

[PATCH v2 0/2] Fixup for js/mingw-o-append

2018-09-10 Thread Jeff Hostetler via GitGitGadget
(js/mingw-o-append) mingw: enable atomic O_APPEND The new mingw_open_append() routine successfully opens the client side of the named pipe, but the first write() to it fails with EBADF. Adding the FILE_WRITE_DATA corrects the problem. Signed-off-by: Jeff Hostetler jeffh...@microsoft.com [jeffh

[PATCH v3 2/2] mingw: fix mingw_open_append to work with named pipes

2018-09-11 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- compat/mingw.c| 36 --- t/t0051-windows-named-pipe.sh | 2 +- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/compat/mingw.c b/compat/mingw.c index 858ca14a57..18caf21969

[PATCH v3 0/2] Fixup for js/mingw-o-append

2018-09-11 Thread Jeff Hostetler via GitGitGadget
(js/mingw-o-append) mingw: enable atomic O_APPEND The new mingw_open_append() routine successfully opens the client side of the named pipe, but the first write() to it fails with EBADF. Adding the FILE_WRITE_DATA corrects the problem. Signed-off-by: Jeff Hostetler jeffh...@microsoft.com [jeffh

[PATCH v3 1/2] t0051: test GIT_TRACE to a windows named pipe

2018-09-11 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create a test-tool helper to create the server side of a windows named pipe, wait for a client connection, and copy data written to the pipe to stdout. Create t0051 test to route GIT_TRACE output of a command to a named pipe using the above test-tool helper. Signed-off-by

[PATCH v6 07/15] trace2:data: add trace2 transport child classification

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 child classification for transport processes. Signed-off-by: Jeff Hostetler --- connect.c | 3 +++ transport-helper.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/connect.c b/connect.c index 24281b6082..3c6f829a05 100644 --- a/connect.c +++ b

[PATCH v6 04/15] trace2:data: add trace2 regions to wt-status

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_region_enter() and trace2_region_leave() calls around the various phases of a status scan. This gives elapsed time for each phase in the GIT_TR2_PERF and GIT_TR2_EVENT trace target. Also, these Trace2 calls now use s->repo rather than the_repository. Signed-

[PATCH v6 08/15] trace2:data: add trace2 hook classification

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Classify certain child processes as hooks. Signed-off-by: Jeff Hostetler --- builtin/am.c | 1 + builtin/receive-pack.c | 4 builtin/worktree.c | 1 + sequencer.c| 2 ++ transport.c| 1 + 5 files changed, 9 insertions(+) diff

[PATCH v6 13/15] trace2:data: add subverb for rebase

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/rebase.c | 17 + 1 file changed, 17 insertions(+) diff --git a/builtin/rebase.c b/builtin/rebase.c index 774264bae8..f5ac4fe2ea 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -850,6 +850,14 @@ int

[PATCH v6 03/15] trace2: collect Windows-specific process information

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add platform-specific interface to log information about the current process. On Windows, this interface is used to indicate whether the git process is running under a debugger and list names of the process ancestors. Information for other platforms is left for a future

[PATCH v6 09/15] trace2:data: add trace2 instrumentation to index read/write

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 events to measure reading and writing the index. Signed-off-by: Jeff Hostetler --- read-cache.c | 51 ++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/read-cache.c b/read-cache.c index bfff271a3d

[PATCH v6 06/15] trace2:data: add trace2 sub-process classification

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 classification for long-running processes started in sub-process.c Signed-off-by: Jeff Hostetler --- sub-process.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sub-process.c b/sub-process.c index 8d2a1707cf..3f4af93555 100644 --- a/sub-process.c +++ b

[PATCH v6 00/15] Trace2 tracing facility

2019-02-06 Thread Jeff Hostetler via GitGitGadget
ility. Calls to the current tracing facility have not been changed, rather new trace2 calls have been added so that both continue to work in parallel for the time being. [1] https://public-inbox.org/git/pull.29.git.gitgitgad...@gmail.com/ Cc: gitster@pobox.comCc: peff@peff.netCc: jrnie...@gmail.com

[PATCH v6 02/15] trace2: create new combined trace facility

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create a new unified tracing facility for git. The eventual intent is to replace the current trace_printf* and trace_performance* routines with a unified set of git_trace2* routines. In addition to the usual printf-style API, trace2 provides higer-level event verbs with

[PATCH v6 05/15] trace2:data: add editor/pager child classification

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 process classification for editor and pager child processes. Signed-off-by: Jeff Hostetler --- editor.c | 1 + pager.c | 1 + 2 files changed, 2 insertions(+) diff --git a/editor.c b/editor.c index c985eee1f9..71547674ab 100644 --- a/editor.c +++ b/editor.c

[PATCH v6 11/15] trace2:data: add subverb to checkout command

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/checkout.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/builtin/checkout.c b/builtin/checkout.c index 6fadf412e8..f911c88bb4 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -262,6 +262,8 @@ static int

[PATCH v6 15/15] trace2: add for_each macros to clang-format

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- .clang-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index de1c8b5c77..41d4cd23fd 100644 --- a/.clang-format +++ b/.clang-format @@ -149,7 +149,7 @@ Cpp11BracedListStyle: false

[PATCH v6 12/15] trace2:data: add subverb to reset command

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/reset.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/builtin/reset.c b/builtin/reset.c index 59898c972e..4e34c61401 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -340,6 +340,7 @@ int cmd_reset(int argc, const

[PATCH v6 01/15] trace2: Documentation/technical/api-trace2.txt

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Created design document for Trace2 feature. Signed-off-by: Jeff Hostetler --- Documentation/technical/api-trace2.txt | 1347 1 file changed, 1347 insertions(+) create mode 100644 Documentation/technical/api-trace2.txt diff --git a/Documentation

[PATCH v6 14/15] trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh

2019-02-06 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create unit tests for Trace2. Signed-off-by: Jeff Hostetler --- Makefile | 1 + t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/helper/test-trace2.c| 273 ++ t/t0210-trace2-normal.sh | 135

[PATCH 0/1] fixup! trace2: collect Windows-specific process information

2019-02-11 Thread Jeff Hostetler via GitGitGadget
Fix infinite loop observed on Windows computing process ancestry. This should be applied to V6 of "jh/trace2" currently in next. See: https://github.com/gitgitgadget/git/pull/108 Thanks Jeff Cc: gitster@pobox.comCc: peff@peff.netCc: jrnie...@gmail.com Jeff Hostetler (1): fix

[PATCH 1/1] fixup! trace2: collect Windows-specific process information

2019-02-11 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Guard against infinite loop while computing the parent process hierarchy. CreateToolhelp32Snapshot() is used to get a list of all processes on the system. Each process entry contains the process PID and PPID (alive at the time of the snapshot). We compute the set of

[PATCH v7 13/15] trace2:data: add subverb for rebase

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/rebase.c | 17 + 1 file changed, 17 insertions(+) diff --git a/builtin/rebase.c b/builtin/rebase.c index 774264bae8..f5ac4fe2ea 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -850,6 +850,14 @@ int

[PATCH v7 04/15] trace2:data: add trace2 regions to wt-status

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2_region_enter() and trace2_region_leave() calls around the various phases of a status scan. This gives elapsed time for each phase in the GIT_TR2_PERF and GIT_TR2_EVENT trace target. Also, these Trace2 calls now use s->repo rather than the_repository. Signed-

[PATCH v7 01/15] trace2: Documentation/technical/api-trace2.txt

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Created design document for Trace2 feature. Signed-off-by: Jeff Hostetler --- Documentation/technical/api-trace2.txt | 1350 1 file changed, 1350 insertions(+) create mode 100644 Documentation/technical/api-trace2.txt diff --git a/Documentation

[PATCH v7 03/15] trace2: collect Windows-specific process information

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add platform-specific interface to log information about the current process. On Windows, this interface is used to indicate whether the git process is running under a debugger and list names of the process ancestors. Information for other platforms is left for a future

[PATCH v7 05/15] trace2:data: add editor/pager child classification

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 process classification for editor and pager child processes. Signed-off-by: Jeff Hostetler --- editor.c | 1 + pager.c | 1 + 2 files changed, 2 insertions(+) diff --git a/editor.c b/editor.c index c985eee1f9..71547674ab 100644 --- a/editor.c +++ b/editor.c

[PATCH v7 11/15] trace2:data: add subverb to checkout command

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/checkout.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/builtin/checkout.c b/builtin/checkout.c index 6fadf412e8..f911c88bb4 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -262,6 +262,8 @@ static int

[PATCH v7 15/15] trace2: add for_each macros to clang-format

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- .clang-format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-format b/.clang-format index de1c8b5c77..41d4cd23fd 100644 --- a/.clang-format +++ b/.clang-format @@ -149,7 +149,7 @@ Cpp11BracedListStyle: false

[PATCH v7 14/15] trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create unit tests for Trace2. Signed-off-by: Jeff Hostetler --- Makefile | 1 + t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + t/helper/test-trace2.c| 273 ++ t/t0210-trace2-normal.sh | 135

[PATCH v7 06/15] trace2:data: add trace2 sub-process classification

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 classification for long-running processes started in sub-process.c Signed-off-by: Jeff Hostetler --- sub-process.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sub-process.c b/sub-process.c index 8d2a1707cf..3f4af93555 100644 --- a/sub-process.c +++ b

[PATCH v7 09/15] trace2:data: add trace2 instrumentation to index read/write

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 events to measure reading and writing the index. Signed-off-by: Jeff Hostetler --- read-cache.c | 51 ++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/read-cache.c b/read-cache.c index bfff271a3d

[PATCH v7 08/15] trace2:data: add trace2 hook classification

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Classify certain child processes as hooks. Signed-off-by: Jeff Hostetler --- builtin/am.c | 1 + builtin/receive-pack.c | 4 builtin/worktree.c | 1 + sequencer.c| 2 ++ transport.c| 1 + 5 files changed, 9 insertions(+) diff

[PATCH v7 12/15] trace2:data: add subverb to reset command

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Signed-off-by: Jeff Hostetler --- builtin/reset.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/builtin/reset.c b/builtin/reset.c index 59898c972e..4e34c61401 100644 --- a/builtin/reset.c +++ b/builtin/reset.c @@ -340,6 +340,7 @@ int cmd_reset(int argc, const

[PATCH v7 07/15] trace2:data: add trace2 transport child classification

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add trace2 child classification for transport processes. Signed-off-by: Jeff Hostetler --- connect.c | 3 +++ transport-helper.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/connect.c b/connect.c index 24281b6082..3c6f829a05 100644 --- a/connect.c +++ b

[PATCH v7 00/15] Trace2 tracing facility

2019-02-22 Thread Jeff Hostetler via GitGitGadget
tests. [] minor clang-format cleanup. Thanks Jeff Cc: gitster@pobox.comCc: peff@peff.netCc: ava...@gmail.com Derrick Stolee (1): trace2:data: pack-objects: add trace2 regions Jeff Hostetler (14): trace2: Documentation/technical/api-trace2.txt trace2: create new combined trace facility

[PATCH v7 02/15] trace2: create new combined trace facility

2019-02-22 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create a new unified tracing facility for git. The eventual intent is to replace the current trace_printf* and trace_performance* routines with a unified set of git_trace2* routines. In addition to the usual printf-style API, trace2 provides higer-level event verbs with

[PATCH 0/3] multi-pack-index: fix verify on large repos

2019-03-18 Thread Jeff Hostetler via GitGitGadget
ond commit teaches midx verify to sort the set of objects to verify by packfile rather than verifying them in OID order. This eliminates the need to have more than one packfile/idx open at the same time. With the second commit, runtime on 3600 packfiles went from 12 minutes to 25 seconds. Thanks,

[PATCH 1/3] midx: verify: add midx packfiles to the packed_git list

2019-03-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Fix "git multi-pack-index verify" to handle repos with thousands of packfiles. Midx verify adds the individual "packed_git" structures to the multi_pack_index.packs array, but it does not add them to the "repository.objects.packed_git" list.

[PATCH 3/3] trace2:data: add trace2 data to midx

2019-03-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Log multi-pack-index command mode. Log number of objects and packfiles in the midx. Signed-off-by: Jeff Hostetler --- builtin/multi-pack-index.c | 3 +++ midx.c | 4 2 files changed, 7 insertions(+) diff --git a/builtin/multi-pack-index.c b

[PATCH 2/3] midx: verify: group objects by packfile to speed up object verification

2019-03-18 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Teach `multi-pack-index verify` to sort the set of objects by packfile so that only one packfile needs to be open at a time. This is a performance improvement. Previously, objects were verified in OID order. This essentially requires all packfiles to be open at the same

[PATCH v2 4/4] midx: verify: group objects by packfile to speed up object verification

2019-03-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Teach `multi-pack-index verify` to sort the set of objects by packfile so that only one packfile needs to be open at a time. This is a performance improvement. Previously, objects were verified in OID order. This essentially requires all packfiles to be open at the same

[PATCH v2 0/4] multi-pack-index: fix verify on large repos

2019-03-19 Thread Jeff Hostetler via GitGitGadget
inutes to 25 seconds. Thanks, Jeff Cc: dsto...@microsoft.com Jeff Hostetler (4): progress: add sparse mode to force 100% complete message trace2:data: add trace2 data to midx midx: verify: add midx packfiles to the packed_git list midx: verify: group objects by packfile to speed up obj

[PATCH v2 2/4] trace2:data: add trace2 data to midx

2019-03-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Log multi-pack-index command mode. Log number of objects and packfiles in the midx. Signed-off-by: Jeff Hostetler --- builtin/multi-pack-index.c | 3 +++ midx.c | 4 2 files changed, 7 insertions(+) diff --git a/builtin/multi-pack-index.c b

[PATCH v2 3/4] midx: verify: add midx packfiles to the packed_git list

2019-03-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Fix "git multi-pack-index verify" to handle repos with thousands of packfiles. Midx verify adds the individual "packed_git" structures to the multi_pack_index.packs array, but it does not add them to the "repository.objects.packed_git" list.

[PATCH v2 1/4] progress: add sparse mode to force 100% complete message

2019-03-19 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add new start_sparse_progress() and start_delayed_sparse_progress() constructors and "sparse" flag to struct progress. Teach stop_progress() to force a 100% complete progress message before printing the final "done" message when "sparse" is

[PATCH v3 1/4] progress: add sparse mode to force 100% complete message

2019-03-21 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add new start_sparse_progress() and start_delayed_sparse_progress() constructors and "sparse" flag to struct progress. Teach stop_progress() to force a 100% complete progress message before printing the final "done" message when "sparse" is

[PATCH v3 2/4] trace2:data: add trace2 data to midx

2019-03-21 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Log multi-pack-index command mode. Log number of objects and packfiles in the midx. Signed-off-by: Jeff Hostetler --- builtin/multi-pack-index.c | 3 +++ midx.c | 4 2 files changed, 7 insertions(+) diff --git a/builtin/multi-pack-index.c b

[PATCH v3 3/4] midx: add progress indicators in multi-pack-index verify

2019-03-21 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Add progress indicators to more parts of midx verify. Use sparse progress indicator for object iteration. Signed-off-by: Jeff Hostetler --- midx.c | 26 -- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/midx.c b/midx.c index

[PATCH v3 4/4] midx: during verify group objects by packfile to speed verification

2019-03-21 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Teach `multi-pack-index verify` to sort the set of object by packfile so that only one packfile needs to be open at a time. This is a performance improvement. Previously, objects were verified in OID order. This essentially requires all packfiles to be open at the same

[PATCH v3 0/4] multi-pack-index: fix verify on large repos

2019-03-21 Thread Jeff Hostetler via GitGitGadget
th the second commit, runtime on 3600 packfiles went from 12 minutes to 25 seconds. Thanks, Jeff Cc: dsto...@microsoft.com Jeff Hostetler (4): progress: add sparse mode to force 100% complete message trace2:data: add trace2 data to midx midx: add progress indicators in multi-pack-index v

[PATCH v2 1/7] trace2: cleanup column alignment in perf target format

2019-08-08 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Truncate/elide very long "filename:linenumber" field. Truncate region and data "category" field if necessary. Adjust overall column widths. Signed-off-by: Jeff Hostetler --- trace2/tr2_tgt_perf.c | 39 +-- 1 file ch

[PATCH v2 0/7] trace2: clean up formatting in perf target format

2019-08-08 Thread Jeff Hostetler via GitGitGadget
V2 of this patch series cleans up some whitespace and column alignment issues in the trace2 perf and normal formats. It also removes some dead code. Jeff Hostetler (7): trace2: cleanup column alignment in perf target format trace2: trim whitespace in region messages in perf target format

[PATCH v2 5/7] quote: add sq_quote_argv_pretty_ltrim

2019-08-08 Thread Jeff Hostetler via GitGitGadget
From: Jeff Hostetler Create version of sq_quote_argv_pretty() that does not insert a leading space before argv[0]. Signed-off-by: Jeff Hostetler --- quote.c | 11 +++ quote.h | 1 + 2 files changed, 12 insertions(+) diff --git a/quote.c b/quote.c index 7f2aa6faa4..7cad8798ac 100644

<    5   6   7   8   9   10   11   >