mbox series

[0/5] Parallel Checkout (part 2)

Message ID cover.1616015337.git.matheus.bernardino@usp.br (mailing list archive)
Headers show
Series Parallel Checkout (part 2) | expand

Message

Matheus Tavares March 17, 2021, 9:12 p.m. UTC
This is the next step in the parallel checkout implementation. An
overview of the complete series can be seen at [1]. 

The last patch in this series adds a design doc, so it may help to
review it first. Also, there is no need to have any familiarity with
part-1, as this part doesn't have any semantic dependency with that.

This series is based on the merge of 'mt/parallel-checkout-part-1' and
'master', so that it can use the "brew cast" fix and the latest security
fix (both from master), to run the tests. (The merge is textually
clean, but it needs a small semantic fix: the '#include "entry.h"'
addition in builtin/stash.c).

Parallel-checkout-specific tests will be added in part-3.

[1]: https://lore.kernel.org/git/cover.1604521275.git.matheus.bernardino@usp.br/

Matheus Tavares (5):
  unpack-trees: add basic support for parallel checkout
  parallel-checkout: make it truly parallel
  parallel-checkout: add configuration options
  parallel-checkout: support progress displaying
  parallel-checkout: add design documentation

 .gitignore                                    |   1 +
 Documentation/Makefile                        |   1 +
 Documentation/config/checkout.txt             |  21 +
 Documentation/technical/parallel-checkout.txt | 262 ++++++++
 Makefile                                      |   2 +
 builtin.h                                     |   1 +
 builtin/checkout--helper.c                    | 142 ++++
 entry.c                                       |  17 +-
 git.c                                         |   2 +
 parallel-checkout.c                           | 624 ++++++++++++++++++
 parallel-checkout.h                           | 111 ++++
 unpack-trees.c                                |  19 +-
 12 files changed, 1198 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/technical/parallel-checkout.txt
 create mode 100644 builtin/checkout--helper.c
 create mode 100644 parallel-checkout.c
 create mode 100644 parallel-checkout.h

Comments

Junio C Hamano March 18, 2021, 8:56 p.m. UTC | #1
Matheus Tavares <matheus.bernardino@usp.br> writes:

> This is the next step in the parallel checkout implementation. An
> overview of the complete series can be seen at [1]. 
>
> The last patch in this series adds a design doc, so it may help to
> review it first. Also, there is no need to have any familiarity with
> part-1, as this part doesn't have any semantic dependency with that.
>
> This series is based on the merge of 'mt/parallel-checkout-part-1' and
> 'master', so that it can use the "brew cast" fix and the latest security
> fix (both from master), to run the tests. (The merge is textually
> clean, but it needs a small semantic fix: the '#include "entry.h"'
> addition in builtin/stash.c).

Let's redo part-1 on top of 'master' first without such a merge; it
has been out of 'next' so we can do so easily without wanting for
the tip of 'next' to get rewound.



>
> Parallel-checkout-specific tests will be added in part-3.
>
> [1]: https://lore.kernel.org/git/cover.1604521275.git.matheus.bernardino@usp.br/
>
> Matheus Tavares (5):
>   unpack-trees: add basic support for parallel checkout
>   parallel-checkout: make it truly parallel
>   parallel-checkout: add configuration options
>   parallel-checkout: support progress displaying
>   parallel-checkout: add design documentation
>
>  .gitignore                                    |   1 +
>  Documentation/Makefile                        |   1 +
>  Documentation/config/checkout.txt             |  21 +
>  Documentation/technical/parallel-checkout.txt | 262 ++++++++
>  Makefile                                      |   2 +
>  builtin.h                                     |   1 +
>  builtin/checkout--helper.c                    | 142 ++++
>  entry.c                                       |  17 +-
>  git.c                                         |   2 +
>  parallel-checkout.c                           | 624 ++++++++++++++++++
>  parallel-checkout.h                           | 111 ++++
>  unpack-trees.c                                |  19 +-
>  12 files changed, 1198 insertions(+), 5 deletions(-)
>  create mode 100644 Documentation/technical/parallel-checkout.txt
>  create mode 100644 builtin/checkout--helper.c
>  create mode 100644 parallel-checkout.c
>  create mode 100644 parallel-checkout.h
Matheus Tavares March 19, 2021, 3:24 a.m. UTC | #2
On Thu, Mar 18, 2021 at 5:56 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> Matheus Tavares <matheus.bernardino@usp.br> writes:
>
> > This is the next step in the parallel checkout implementation. An
> > overview of the complete series can be seen at [1].
> >
> > The last patch in this series adds a design doc, so it may help to
> > review it first. Also, there is no need to have any familiarity with
> > part-1, as this part doesn't have any semantic dependency with that.
> >
> > This series is based on the merge of 'mt/parallel-checkout-part-1' and
> > 'master', so that it can use the "brew cast" fix and the latest security
> > fix (both from master), to run the tests. (The merge is textually
> > clean, but it needs a small semantic fix: the '#include "entry.h"'
> > addition in builtin/stash.c).
>
> Let's redo part-1 on top of 'master' first without such a merge; it
> has been out of 'next' so we can do so easily without wanting for
> the tip of 'next' to get rewound.

Thanks!

I saw you've added the "entry.h" inclusion that was missing at
builtin/stash when merging this branch on 'seen'. However, now that
part-1 is based on 'master', the branch is no longer buildable without
this fix. So could we perhaps squash this change directly into the
relevant commit in this series? (I'm asking this mainly to allow me to
later base part-3 directly on part-2; without having to base it on a
merge again.)

If you agree, here is a fixup! to be squashed into part-1, for
convenience:

-- >8 --
Subject: [PATCH] fixup! entry: extract a header file for entry.c functions

---
 builtin/stash.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/builtin/stash.c b/builtin/stash.c
index ba774cce67..11f3ae3039 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -15,6 +15,7 @@
 #include "log-tree.h"
 #include "diffcore.h"
 #include "exec-cmd.h"
+#include "entry.h"
 
 #define INCLUDE_ALL_FILES 2
Junio C Hamano March 19, 2021, 10:58 p.m. UTC | #3
Matheus Tavares <matheus.bernardino@usp.br> writes:

>> Let's redo part-1 on top of 'master' first without such a merge; it
>> has been out of 'next' so we can do so easily without wanting for
>> the tip of 'next' to get rewound.
>
> Thanks!
>
> I saw you've added the "entry.h" inclusion that was missing at
> builtin/stash when merging this branch on 'seen'. However, now that
> part-1 is based on 'master', the branch is no longer buildable without
> this fix. So could we perhaps squash this change directly into the
> relevant commit in this series?

Yeah, that was the kind of thing I had in mind when I suggested you
to "Let's redo part-1 on top of 'master'".

I'll mark the topic to be "expecting a reroll" for now, as I am deep
in today's integration cycle.

Thanks.
Christian Couder March 31, 2021, 5:42 a.m. UTC | #4
On Wed, Mar 17, 2021 at 10:12 PM Matheus Tavares
<matheus.bernardino@usp.br> wrote:
>
> This is the next step in the parallel checkout implementation. An
> overview of the complete series can be seen at [1].
>
> The last patch in this series adds a design doc, so it may help to
> review it first. Also, there is no need to have any familiarity with
> part-1, as this part doesn't have any semantic dependency with that.
>
> This series is based on the merge of 'mt/parallel-checkout-part-1' and
> 'master', so that it can use the "brew cast" fix and the latest security
> fix (both from master), to run the tests. (The merge is textually
> clean, but it needs a small semantic fix: the '#include "entry.h"'
> addition in builtin/stash.c).

I took a look and left a number of comments. Otherwise it looks good overall!

Thanks!