Signed-off-by: Sebastian Schuberth
---
submodule.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/submodule.c b/submodule.c
index c52d663..68623bd 100644
--- a/submodule.c
+++ b/submodule.c
@@ -1396,8 +1396,7 @@ int submodule_move_head(const char
Am 17.04.2017 um 03:49 schrieb Junio C Hamano:
"Something or NULL" is a name we use for a function that returns
something (under normal circumstances) or returns NULL. This
wrapper is not about returning NULL at all, as far as I can see, and
is misnamed. If it is about "avoid moving 0 bytes",
Am 17.04.2017 um 09:30 schrieb Junio C Hamano:
> * dt/xgethostname-nul-termination (2017-04-13) 1 commit
> - xgethostname: handle long hostnames
>
> gethostname(2) may not NUL terminate the buffer if hostname does
> not fit; unfortunately there is no easy way to see if our buffer
> was
(To Junio, this series conflicts slightly with
nd/conditional-config-include, let me know if you want me to rebase
this on top of that)
On Sun, Apr 16, 2017 at 10:51 PM, Jeff King wrote:
>> + if (opts.git_dir) {
>> struct git_config_source repo_config;
>>
>>
On 04/16/2017 06:55 PM, René Scharfe wrote:
> Exit the loop orderly through the cleanup code, instead of dashing out
> with logfp still open and sb leaking.
>
> Found with Cppcheck.
Nice catch.
> Signed-off-by: Rene Scharfe
> ---
> refs/files-backend.c | 20
So far we can only pass one flag, respect_includes, to thie function. We
need to pass some more (non-flag even), so let's make it accept a struct
instead of an integer.
Signed-off-by: Nguyễn Thái Ngọc Duy
---
builtin/config.c | 21 -
cache.h | 7
If setup_git_directory() and friends have not been called,
get_git_dir() (because of includeIf.gitdir:XXX) would lead to
die("BUG: setup_git_env called without repository");
There are two cases when a config file could be read before $GIT_DIR
is located.
The first one is
Config file reading order is important because each file can override
values in the previous files and this is expected behavior. Normally
we read in this order, all in do_git_config_sequence():
1. $HOME/.gitconfig
2. $GIT_DIR/config
3. config from command line
However in read_early_config() the
Jeff King writes:
> diff --git a/builtin/replace.c b/builtin/replace.c
> index f83e7b8fc..065515bab 100644
> --- a/builtin/replace.c
> +++ b/builtin/replace.c
> @@ -93,26 +93,31 @@ typedef int (*each_replace_name_fn)(const char *name,
> const char *ref,
> static int
On 04/06/2017 03:39 AM, Daniel Ferreira wrote:
> This is the seventh version of a patch series that implements the GSoC
> microproject of converting a recursive call to readdir() to use dir_iterator.
>
> v1:
>
Michael J Gruber writes:
> Ordinary (long) status shows information about bisect, revert, am,
> rebase, cherry-pick in progress, and so does git-prompt.sh. status
> --short currently shows none of this information.
>
> Introduce an `--inprogress` argument to git status so that,
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'. The ones marked with '.' do not appear in any of
the integration branches, but I am still holding onto them.
You can find the changes
On 04/06/2017 03:39 AM, Daniel Ferreira wrote:
> Perform major refactor of dir_iterator_advance(). dir_iterator has
> ceased to rely on a convoluted state machine mechanism of two loops and
> two state variables (level.initialized and level.dir_state). This serves
> to ease comprehension of the
Giuseppe Bilotta writes:
> Allow signing off a whole patchset by rebasing it with the --signoff
> option, which is simply passed through to git am.
> Documentation/git-rebase.txt | 5 +
> builtin/am.c | 39 +
>
Hi,
A draft of a new Git Rev News edition is available here:
https://github.com/git/git.github.io/blob/master/rev_news/drafts/edition-26.md
Everyone is welcome to contribute in any section either by editing the
above page on GitHub and sending a pull request, or by commenting on
this GitHub
Dear sir or madam,
I noticed a minor typo in `man 1 git-commit`.
There are two consecutive 'a'. At:
https://github.com/git/git/blob/maint/Documentation/git-commit.txt#L97
you can read:
---8<---
--reset-author::
When used with -C/-c/--amend options, or when committing after a
a
On 4/15/2017 1:55 PM, René Scharfe wrote:
Am 14.04.2017 um 21:12 schrieb g...@jeffhostetler.com:
From: Jeff Hostetler
Very nice, especially the perf test! But can we unbundle the different
optimizations into separate patches with their own performance numbers?
On Mon, Apr 17, 2017 at 9:12 AM, Junio C Hamano wrote:
> Two questions.
>
> - Is it better to add a brand new test script than adding new tests
>to existing scripts that test "git rebase"?
Since this is a completely (in some sense) new feature, I felt it was
appropriate
Junio, I noticed that this did not make it into your "What's cooking"
e-mail [1] - is there anything more that you would like to see in this
patch?
Jonathan Nieder has reviewed an earlier version, and seems to be OK with
it. He recommended a change in the error message, which I have changed
Am 17.04.2017 um 06:05 schrieb Junio C Hamano:
Johannes Sixt writes:
This is about command line completion. We go a long way to avoid
forking processes there. What is 10x faster on Linux despite of
forking a process may not be so on Windows.
Doesn't this depend on how many
On Fri, Apr 14, 2017 at 4:29 AM, Jeff King wrote:
> On Wed, Apr 12, 2017 at 08:11:22PM +0700, Duy Nguyen wrote:
>
>> On Wed, Apr 12, 2017 at 8:01 PM, Jeff King wrote:
>> > I dunno. Maybe I am missing some subtle case, but it's not clear to me
>> > what the user
So I did "git rev-list --all --pretty" and it looks like "git log".
Which outputs a human-readable format.
However, if I want something more suitable for machine parsing, is
there any way to get that output?
Example maybe I want another date format like ISO dates, or maybe a
serializable format
So I would either have to do:
git rev-list --all
Then iterate over each line and do git-cat-file commit .
Or do:
git rev-list --all | git cat-file --batch
If I do it in a batch, then it will be tricky to reliably parse since
I don't know when the message body ends and when the next commit
Sometimes I need to rename and change a file in one commit. One
example would be a file foo.h that begins with
#ifndef FOO_H
#define FOO_H
which should be renamed bar.h and have the FOO_H changed to BAR_H.
In subversion I would
svn mv foo.h bar.h; vi bar.h; svn ci
and then a
On Mon, Apr 17, 2017 at 6:36 PM, Urs Thuermann wrote:
> Sometimes I need to rename and change a file in one commit. One
> example would be a file foo.h that begins with
>
> #ifndef FOO_H
> #define FOO_H
>
> which should be renamed bar.h and have the FOO_H changed
On Sun, Apr 16, 2017 at 11:25 AM, Duy Nguyen wrote:
>> Because this is a reset --mixed it will never run through unpack_trees and
>> The entries are never marked with CE_REMOVE.
>
> I know. But in my view, it should. All updates from a tree object to
> the index should happen
On Mon, Apr 17, 2017 at 7:44 PM, Fred .Flintstone wrote:
> So I did "git rev-list --all --pretty" and it looks like "git log".
> Which outputs a human-readable format.
>
> However, if I want something more suitable for machine parsing, is
> there any way to get that output?
>
From: "Christoph Michelbach"
On Sun, 2017-04-16 at 22:25 +0100, Philip Oakley wrote:
From: "Christoph Michelbach"
> It's: git checkout [-p|--patch] [] [--] ...
The one I quoted is direct from the Synopsis, which does indicate
there are
If the full hostname doesn't fit in the buffer supplied to
gethostname, POSIX does not specify whether the buffer will be
null-terminated, so to be safe, we should do it ourselves. Introduce
new function, xgethostname, which ensures that there is always a \0
at the end of the buffer.
Always use
Junio C Hamano writes:
>> +if (!have_git_dir() && opts.git_dir) {
>> struct git_config_source repo_config;
>>
>> memset(_config, 0, sizeof(repo_config));
>
> But this one I do not quite understand. When have_git_dir() was
> false and asked
On Mon, Apr 17, 2017 at 07:56:47PM -0700, Junio C Hamano wrote:
> Junio C Hamano writes:
>
> >> + if (!have_git_dir() && opts.git_dir) {
> >>struct git_config_source repo_config;
> >>
> >>memset(_config, 0, sizeof(repo_config));
> >
> > But this one
On Mon, Apr 17, 2017 at 05:07:52PM +0700, Duy Nguyen wrote:
> > You can see the second problem with:
> >
> > # random external
> > cat >git-foo <<-\EOF
> > #!/bin/sh
> > echo foo
> > EOF
> > chmod +x git-foo
> > PATH=$PWD:$PATH
> >
> > git init
> > git config pager.foo 'sed
Jonathan Tan writes:
> Junio, I noticed that this did not make it into your "What's cooking"
> e-mail [1] - is there anything more that you would like to see in this
> patch?
No.
Actually "no" is not a honest answer; "I do not know yet" is.
It's just that I haven't
Jacob Keller writes:
> From: Jacob Keller
>
> Don't assume that the current working directory is the root of the
> repository. Correctly generate the path for the recursing child
> processes by building it from the work_tree() root instead.
On Mon, Apr 17, 2017 at 09:13:35AM +0700, Duy Nguyen wrote:
> > So we call get_git_dir() always when we're not in early config. Even if
> > we don't have a git dir! Doesn't this mean that programs operating
> > outside of a repo will still hit the BUG? I.e.:
> >
> > git config --global
Daniel Ferreira writes:
> I think this is the closest to a final version we've ever gotten. I
> followed all of Michael and Stefan's suggestions on top of v8, and with
> Michael's endorsement made dir_iterator_begin() return NULL and set
> errno appropriately in case of an
On Mon, Apr 17, 2017 at 05:10:02PM +0700, Nguyễn Thái Ngọc Duy wrote:
> diff --git a/t/helper/test-config.c b/t/helper/test-config.c
> index 8e3ed6a76c..696d0a52fd 100644
> --- a/t/helper/test-config.c
> +++ b/t/helper/test-config.c
> @@ -84,6 +84,10 @@ int cmd_main(int argc, const char **argv)
>
Daniel Ferreira writes:
> +test_expect_success 'setup' '
> + mkdir -p dir &&
> + mkdir -p dir/a/b/c/ &&
> + >dir/b &&
> + >dir/c &&
> + mkdir -p dir/d/e/d/ &&
> + >dir/a/b/c/d &&
> + >dir/a/e &&
> + >dir/d/e/d/a &&
> +
> + mkdir -p
Daniel Ferreira writes:
> Create helpers to dir_iterator_advance(). Make dir_iterator_advance()'s
> code more legible and allow some behavior to be reusable.
>
> Signed-off-by: Daniel Ferreira
> ---
This is the kind of change we typically call "refactoring"
On Mon, Apr 17, 2017 at 12:59 AM, Sebastian Schuberth
wrote:
> Signed-off-by: Sebastian Schuberth
> ---
> submodule.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/submodule.c b/submodule.c
> index c52d663..68623bd 100644
On 2017-04-17 20:02, Stefan Beller wrote:
>> diff --git a/submodule.c b/submodule.c
>> index c52d663..68623bd 100644
>> --- a/submodule.c
>> +++ b/submodule.c
>> @@ -1396,8 +1396,7 @@ int submodule_move_head(const char *path,
>> cp1.no_stdin = 1;
>>
On 2017-04-17 14:44, Fred .Flintstone wrote:
However, if I want something more suitable for machine parsing, is
there any way to get that output?
Instead of machine parsing, why not directly get what you want via
libgit2 (or one of its language bindings), or jgit?
[1]
René Scharfe wrote:
> Am 17.04.2017 um 09:30 schrieb Junio C Hamano:
>> * dt/xgethostname-nul-termination (2017-04-13) 1 commit
>> - xgethostname: handle long hostnames
>>
>> gethostname(2) may not NUL terminate the buffer if hostname does
>> not fit; unfortunately there is no easy way to
Junio C Hamano writes:
> David Turner writes:
>
>> @@ -250,14 +250,14 @@ static const char *lock_repo_for_gc(int force, pid_t*
>> ret_pid)
>> ...
>> if (!force) {
>> -static char locking_host[128];
>> +static char
Nguyễn Thái Ngọc Duy writes:
> So far we can only pass one flag, respect_includes, to thie function. We
s/thie/this/
> need to pass some more (non-flag even), so let's make it accept a struct
> instead of an integer.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy
Jeff King writes:
> On Mon, Apr 17, 2017 at 07:27:16PM -0700, Junio C Hamano wrote:
>
>> > @@ -81,7 +82,7 @@ static struct option builtin_config_options[] = {
>> >OPT_GROUP(N_("Other")),
>> >OPT_BOOL('z', "null", _null, N_("terminate values with NUL byte")),
>> >
Jonathan Tan writes:
> Junio, I noticed that this did not make it into your "What's cooking"
> e-mail [1] - is there anything more that you would like to see in this
> patch?
OK, now I've read it and it makes sense. Thanks for working on it.
Duy Nguyen writes:
> (To Junio, this series conflicts slightly with
> nd/conditional-config-include, let me know if you want me to rebase
> this on top of that)
I think I can manage---having to resolve inter-topic conflict every
once in a while is a good sanity check for me
Daniel Ferreira writes:
> +cat >expect-sorted-output <<-\EOF &&
> +[d] (a) [a] ./dir/a
> +[d] (a/b) [b] ./dir/a/b
> +[d] (a/b/c) [c] ./dir/a/b/c
> +[d] (d) [d] ./dir/d
> +[d] (d/e) [e] ./dir/d/e
> +[d] (d/e/d) [d] ./dir/d/e/d
> +[f] (a/b/c/d) [d] ./dir/a/b/c/d
> +[f] (a/e) [e]
René Scharfe writes:
> Am 17.04.2017 um 09:30 schrieb Junio C Hamano:
>> * dt/xgethostname-nul-termination (2017-04-13) 1 commit
>> - xgethostname: handle long hostnames
>>
>> gethostname(2) may not NUL terminate the buffer if hostname does
>> not fit; unfortunately there is
Jacob Keller writes:
> Unfortunately I don't have a ready link to the message, but there is a
> very good post from early on in Git's development where Linus explains
> why Git does not store rename and copy information in the history.
One of the most important message
Daniel Ferreira writes:
> Perform major refactor of dir_iterator_advance(). dir_iterator has
> ceased to rely on a convoluted state machine mechanism of two loops and
> two state variables (level.initialized and level.dir_state). This serves
> to ease comprehension of the
Jeff King writes:
> On Sun, Apr 16, 2017 at 11:00:25PM -0700, Junio C Hamano wrote:
>
>> > diff --git a/builtin/replace.c b/builtin/replace.c
>> > index f83e7b8fc..065515bab 100644
>> > --- a/builtin/replace.c
>> > +++ b/builtin/replace.c
>> > @@ -93,26 +93,31 @@ typedef int
Daniel Ferreira writes:
> ...
> Signed-off-by: Daniel Ferreira
> Signed-off-by: Michael Haggerty
I had an impression that you took Michael's code snippet and wrote
this patch, and if that is the case, the flow of the patch is from
Nguyễn Thái Ngọc Duy writes:
> @@ -1603,10 +1613,12 @@ void read_early_config(config_fn_t cb, void *data)
> {
> struct config_options opts = {0};
> struct strbuf buf = STRBUF_INIT;
> + char *to_free = NULL;
>
> opts.respect_includes = 1;
> -
On Sun, Apr 16, 2017 at 11:00:25PM -0700, Junio C Hamano wrote:
> > diff --git a/builtin/replace.c b/builtin/replace.c
> > index f83e7b8fc..065515bab 100644
> > --- a/builtin/replace.c
> > +++ b/builtin/replace.c
> > @@ -93,26 +93,31 @@ typedef int (*each_replace_name_fn)(const char *name,
> >
On Mon, Apr 17, 2017 at 11:29:18PM +, David Turner wrote:
> We saw this failure in the logs multiple times (with three different
> shas, while a gc was running):
> April 12, 2017 06:45 -> ERROR -> 'git -c repack.writeBitmaps=true repack -A
> -d --pack-kept-objects' in [repo] failed:
>
On Mon, Apr 17, 2017 at 07:27:16PM -0700, Junio C Hamano wrote:
> > @@ -81,7 +82,7 @@ static struct option builtin_config_options[] = {
> > OPT_GROUP(N_("Other")),
> > OPT_BOOL('z', "null", _null, N_("terminate values with NUL byte")),
> > OPT_BOOL(0, "name-only", _values, N_("show
I've added back the list, as it was accidentally dropped.
From: "Christoph Michelbach"
On Mon, 2017-04-17 at 17:04 +0100, Philip Oakley wrote:
From: "Christoph Michelbach"
>
> On Sun, 2017-04-16 at 22:25 +0100, Philip Oakley wrote:
> >
> >
"Fred .Flintstone" writes:
> So I would either have to do:
> git rev-list --all
> Then iterate over each line and do git-cat-file commit .
>
> Or do:
> git rev-list --all | git cat-file --batch
>
> If I do it in a batch, then it will be tricky to reliably parse since
> I
On Mon, Apr 17, 2017 at 2:36 PM, Urs Thuermann wrote:
> Igor Djordjevic writes:
>
>> For both cases (renaming and splitting), would using `--find-copies`
>> work for you? Perhaps with some low threshold value to start with, if
>> the default
From: Jeff Hostetler
Teach add_index_entry_with_check() to see if the path
of the new item is greater than the last path in the
index array before attempting to search for it.
During checkout, merge_working_tree() populates the new
index in sorted order, so this change
From: Jeff Hostetler
Version 11 splits the changes in read-cache.c into
3 commits so that they can be independently evaluated.
And adds subscript guard for istate->cache_nr > 0 which
might be necessary if remove_index_entry_at() deletes
the only entry in the array.
Jeff
From: Jeff Hostetler
Add strcmp_offset() function to also return the offset of the
first change.
Add unit test and helper to verify.
Signed-off-by: Jeff Hostetler
---
Makefile | 1 +
cache.h | 1 +
All of our standard error handling paths have the potential to
call malloc or take stdio locks; so we must avoid them inside
the forked child.
Instead, the child only writes an 8 byte struct atomically to
the parent through the notification pipe to propagate an error.
All user-visible error
In order to avoid allocation between 'fork()' and 'exec()' prepare the
environment to be used in the child process prior to forking.
Switch to using 'execve()' so that the construct child environment can
used in the exec'd process.
Signed-off-by: Brandon Williams
---
All non-Async-Signal-Safe functions (e.g. malloc and die) were removed
between 'fork' and 'exec' in start_command in order to avoid potential
deadlocking when forking while multiple threads are running. This
deadlocking is possible when a thread (other than the one forking) has
acquired a lock
According to [1] we need to only call async-signal-safe operations between fork
and exec. Using malloc to build the argv array isn't async-signal-safe.
In order to avoid allocation between 'fork()' and 'exec()' prepare the
argv array used in the exec call prior to forking the process.
[1]
Add a test to 't0061-run-command.sh' to ensure that run_command can
continue to execute scripts which don't include a '#!' line.
Signed-off-by: Brandon Williams
---
t/t0061-run-command.sh | 11 +++
1 file changed, 11 insertions(+)
diff --git a/t/t0061-run-command.sh
Convert the function used to exec from 'execvp()' to 'execv()' as the (p)
variant of exec isn't async-signal-safe and has the potential to call malloc
during the path resolution it performs. Instead we simply do the path
resolution ourselves during the preparation stage prior to forking. There
From: Eric Wong
Signal handlers of the parent firing in the forked child may
have unintended side effects. Rather than auditing every signal
handler we have and will ever have, block signals while forking
and restore default signal handlers in the child before execve.
Restoring
Signed-off-by: Brandon Williams
---
run-command.c | 28 +---
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/run-command.c b/run-command.c
index 2fff60a04..3aa8b7112 100644
--- a/run-command.c
+++ b/run-command.c
@@ -117,18 +117,6 @@
The post-update hooks created in t5550-http-fetch-dumb.sh is missing the
"!#/bin/sh" line which can cause issues with portability. Instead
create the hook using the 'write_script' function which includes the
proper "#!" line.
Signed-off-by: Brandon Williams
---
Signed-off-by: Brandon Williams
---
run-command.c | 58 ++
1 file changed, 42 insertions(+), 16 deletions(-)
diff --git a/run-command.c b/run-command.c
index e1e8780ca..bd6414283 100644
--- a/run-command.c
+++
v4 fixes a few minor compatability issues:
* add 'extern' reference for 'environ'
* small portability change with the signal handeling
* remove trailing ',' in enum
* null_fd not opened with O_NONBLOCK
Brandon Williams (9):
t5550: use write_script to generate post-update hook
t0061:
Hi Urs,
On 17/04/2017 13:36, Urs Thuermann wrote:
> Sometimes I need to rename and change a file in one commit. One
> example would be a file foo.h that begins with
>
> #ifndef FOO_H
> #define FOO_H
>
> which should be renamed bar.h and have the FOO_H changed to BAR_H.
> In subversion
Jonathan Tan wrote:
> Currently, fetch-pack prints a confusing error message ("expected
> ACK/NAK") when the server it's communicating with sends a pkt-line
> starting with "ERR". Replace it with a less confusing error message.
>
> Also update the documentation describing the
Signed-off-by: Giuseppe Bilotta
---
Documentation/git-format-patch.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/git-format-patch.txt
b/Documentation/git-format-patch.txt
index f7a069bb92..c890328b02 100644
---
Giuseppe Bilotta writes:
>> - How does this interact with "git rebase -i" and other modes of
>>operation?
>
> A better question would maybe be how do we want this to interact?
If "git rebase -i/-m --signoff" will not do anything (which I
suspect is what we have
On Mon, Apr 17, 2017 at 3:32 PM, Giuseppe Bilotta
wrote:
> Signed-off-by: Giuseppe Bilotta
> ---
> Documentation/git-format-patch.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git
David Turner writes:
> @@ -250,14 +250,14 @@ static const char *lock_repo_for_gc(int force, pid_t*
> ret_pid)
> ...
> if (!force) {
> - static char locking_host[128];
> + static char locking_host[HOST_NAME_MAX + 1];
> int
Igor Djordjevic writes:
> For both cases (renaming and splitting), would using `--find-copies`
> work for you? Perhaps with some low threshold value to start with, if
> the default one yields no results.
>
> If interested, adding `--name-status` to the mix will
> -Original Message-
> From: Jeff King [mailto:p...@peff.net]
> Sent: Friday, April 14, 2017 3:34 PM
> To: David Turner
> Cc: git@vger.kernel.org; christian.cou...@gmail.com; mf...@codeaurora.org;
> jacob.kel...@gmail.com
> Subject: Re: [PATCH] repack: respect
Giuseppe Bilotta wrote:
> Signed-off-by: Giuseppe Bilotta
> ---
> Documentation/git-format-patch.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
It took me a while to see the typo. It's s/of/or/. Good eyes.
Reviewed-by: Jonathan Nieder
"Philip Oakley" writes:
>>> If we'd created and added a file d just before the checkout, what
>>> should
>>> have happened to d, and why?
>>
>> I understand what the command does. It behaves perfectly as I expected
>> it to. I did not find this script but wrote it to
Perform major refactor of dir_iterator_advance(). dir_iterator has
ceased to rely on a convoluted state machine mechanism of two loops and
two state variables (level.initialized and level.dir_state). This serves
to ease comprehension of the iterator mechanism and ease addition of new
features to
Use dir_iterator to traverse through remove_subtree()'s directory tree,
avoiding the need for recursive calls to readdir(). Simplify
remove_subtree()'s code.
A conversion similar in purpose was previously done at 46d092a
("for_each_reflog(): reimplement using iterators", 2016-05-21).
Test removing a nested directory when an attempt is made to restore the
index to a state where it does not exist. A similar test could be found
previously in t/t2000-checkout-cache-clash.sh, but it did not check for
nested directories, which could allow a faulty implementation of
remove_subtree()
Create helpers to dir_iterator_advance(). Make dir_iterator_advance()'s
code more legible and allow some behavior to be reusable.
Signed-off-by: Daniel Ferreira
---
dir-iterator.c | 65 +-
1 file changed, 42
This is the ninth version of a patch series that implements the GSoC
microproject of converting a recursive call to readdir() to use
dir_iterator.
v1:
https://public-inbox.org/git/CAGZ79kZwT-9mHTiOJ5CEjk2wDFkn6+NcogjX0=vjhsah16a...@mail.gmail.com/T/#t
v2:
Create t/helper/test-dir-iterator.c, which prints relevant information
about a directory tree iterated over with dir_iterator.
Create t/t0065-dir-iterator.sh, which tests that dir_iterator does
iterate through a whole directory tree.
Signed-off-by: Daniel Ferreira
---
From: Jeff Hostetler
Created t/perf/repos/many-files.sh to generate large, but
artificial repositories.
Created t/perf/p0006-read-tree-checkout.sh to measure
performance on various read-tree, checkout, and update-index
operations. This test can run using either
From: Jeff Hostetler
Teach has_dir_name() to see if the path of the new item
is greater than the last path in the index array before
attempting to search for it.
has_dir_name() is looking for file/directory collisions
in the index and has to consider each sub-directory
From: Jeff Hostetler
Teach has_dir_name() to see if the path of the new item
is greater than the last path in the index array before
attempting to search for it.
has_dir_name() is looking for file/directory collisions
in the index and has to consider each sub-directory
"Philip Oakley" writes:
> I'd guess that the misunderstanding is that you maybe thought that the
> whole directory would be reset to it's old state and the files b and c
> deleted, rather than just the named files present in that old commit
> being extracted. If we'd
+Cc Karsten for comments below...
Brandon Williams wrote:
> In order to avoid allocation between 'fork()' and 'exec()' prepare the
> environment to be used in the child process prior to forking.
>
> Switch to using 'execve()' so that the construct child environment can
> used
96 matches
Mail list logo