* [PATCH] builtin/repack.c: set a default factor for '--geometric'
@ 2021-04-20 1:47 Taylor Blau
2021-04-20 12:39 ` Derrick Stolee
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Taylor Blau @ 2021-04-20 1:47 UTC (permalink / raw)
To: git; +Cc: peff, dstolee, gitster
The '--geometric=<n>' argument specifies that each pack must contain at
least 'n' times as many objects as the size of the next-largest pack.
The factor 'n' is customizable, but setting it to '2' is a sane default.
Instead of making the factor a required argument, make the argument
optional with a default value of '2'.
To ensure that the option is setup correctly, modify the most complex
test of t7703 to drop the explicit factor.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
Documentation/git-repack.txt | 8 ++++----
builtin/repack.c | 5 +++--
t/t7703-repack-geometric.sh | 2 +-
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index 317d63cf0d..d948a2913d 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -165,11 +165,11 @@ depth is 4095.
Pass the `--delta-islands` option to `git-pack-objects`, see
linkgit:git-pack-objects[1].
--g=<factor>::
---geometric=<factor>::
+-g=[<factor>]::
+--geometric[=<factor>]::
Arrange resulting pack structure so that each successive pack
- contains at least `<factor>` times the number of objects as the
- next-largest pack.
+ contains at least `<factor>` (`2` if unspecified) times the
+ number of objects as the next-largest pack.
+
`git repack` ensures this by determining a "cut" of packfiles that need
to be repacked into one in order to ensure a geometric progression. It
diff --git a/builtin/repack.c b/builtin/repack.c
index 2847fdfbab..f2359c9d3a 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -494,8 +494,9 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
N_("repack objects in packs marked with .keep")),
OPT_STRING_LIST(0, "keep-pack", &keep_pack_list, N_("name"),
N_("do not repack this pack")),
- OPT_INTEGER('g', "geometric", &geometric_factor,
- N_("find a geometric progression with factor <N>")),
+ { OPTION_INTEGER, 'g', "geometric", &geometric_factor, N_("n"),
+ N_("find a geometric progression with factor <n>"),
+ PARSE_OPT_OPTARG, NULL, 2 },
OPT_END()
};
diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
index 5ccaa440e0..77cd5f2284 100755
--- a/t/t7703-repack-geometric.sh
+++ b/t/t7703-repack-geometric.sh
@@ -123,7 +123,7 @@ test_expect_success '--geometric with small- and large-pack rollup' '
find $objdir/pack -name "*.pack" | sort >before &&
- git repack --geometric 2 -d &&
+ git repack --geometric -d &&
find $objdir/pack -name "*.pack" | sort >after &&
comm -12 before after >untouched &&
--
2.31.1.163.ga65ce7f831
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] builtin/repack.c: set a default factor for '--geometric'
2021-04-20 1:47 [PATCH] builtin/repack.c: set a default factor for '--geometric' Taylor Blau
@ 2021-04-20 12:39 ` Derrick Stolee
2021-04-20 20:25 ` Junio C Hamano
2021-04-20 20:32 ` [PATCH v2] " Taylor Blau
2 siblings, 0 replies; 6+ messages in thread
From: Derrick Stolee @ 2021-04-20 12:39 UTC (permalink / raw)
To: Taylor Blau, git; +Cc: peff, dstolee, gitster
On 4/19/2021 9:47 PM, Taylor Blau wrote:
> The '--geometric=<n>' argument specifies that each pack must contain at
> least 'n' times as many objects as the size of the next-largest pack.
> The factor 'n' is customizable, but setting it to '2' is a sane default.
>
> Instead of making the factor a required argument, make the argument
> optional with a default value of '2'.
This flexibility is nice.
> To ensure that the option is setup correctly, modify the most complex
> test of t7703 to drop the explicit factor.
Good testing.
> --g=<factor>::
> ---geometric=<factor>::
> +-g=[<factor>]::
> +--geometric[=<factor>]::
> Arrange resulting pack structure so that each successive pack
> - contains at least `<factor>` times the number of objects as the
> - next-largest pack.
> + contains at least `<factor>` (`2` if unspecified) times the
> + number of objects as the next-largest pack.
The parenthetical interrupts what `<factor>` means. Perhaps
rearrange:
Arrange resulting pack structure so that each successive pack
contains at least `<factor>` times the number of objects as the
next-largest pack. If `<factor>` is not specified, then `2` is
used by default.
Rest of the diff looks good.
Thanks,
-Stolee
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] builtin/repack.c: set a default factor for '--geometric'
2021-04-20 1:47 [PATCH] builtin/repack.c: set a default factor for '--geometric' Taylor Blau
2021-04-20 12:39 ` Derrick Stolee
@ 2021-04-20 20:25 ` Junio C Hamano
2021-04-20 20:31 ` Taylor Blau
2021-04-20 20:32 ` [PATCH v2] " Taylor Blau
2 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2021-04-20 20:25 UTC (permalink / raw)
To: Taylor Blau; +Cc: git, peff, dstolee
Taylor Blau <me@ttaylorr.com> writes:
> --g=<factor>::
> ---geometric=<factor>::
> +-g=[<factor>]::
> +--geometric[=<factor>]::
Do you mean "git repack -g= -d" is (1) accepted and/or (2)
recommended?
If not, we'd want "-g[=<factor>]" similar to the longer form, no?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] builtin/repack.c: set a default factor for '--geometric'
2021-04-20 20:25 ` Junio C Hamano
@ 2021-04-20 20:31 ` Taylor Blau
0 siblings, 0 replies; 6+ messages in thread
From: Taylor Blau @ 2021-04-20 20:31 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, peff, dstolee
On Tue, Apr 20, 2021 at 01:25:02PM -0700, Junio C Hamano wrote:
> Taylor Blau <me@ttaylorr.com> writes:
>
> > --g=<factor>::
> > ---geometric=<factor>::
> > +-g=[<factor>]::
> > +--geometric[=<factor>]::
>
> Do you mean "git repack -g= -d" is (1) accepted and/or (2)
> recommended?
>
> If not, we'd want "-g[=<factor>]" similar to the longer form, no?
Thanks for spotting. The '[' should come before the '=' character, not
after. I'll send a reroll with this (and a suggestion from Stolee).
Thanks,
Taylor
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] builtin/repack.c: set a default factor for '--geometric'
2021-04-20 1:47 [PATCH] builtin/repack.c: set a default factor for '--geometric' Taylor Blau
2021-04-20 12:39 ` Derrick Stolee
2021-04-20 20:25 ` Junio C Hamano
@ 2021-04-20 20:32 ` Taylor Blau
2021-04-20 21:44 ` Andreas Schwab
2 siblings, 1 reply; 6+ messages in thread
From: Taylor Blau @ 2021-04-20 20:32 UTC (permalink / raw)
To: git; +Cc: peff, dstolee, gitster
The '--geometric=<n>' argument specifies that each pack must contain at
least 'n' times as many objects as the size of the next-largest pack.
The factor 'n' is customizable, but setting it to '2' is a sane default.
Instead of making the factor a required argument, make the argument
optional with a default value of '2'.
To ensure that the option is setup correctly, modify the most complex
test of t7703 to drop the explicit factor.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
---
Range-diff against v1:
1: 1ecab81739 ! 1: 8d8dea2e2c builtin/repack.c: set a default factor for '--geometric'
@@ Documentation/git-repack.txt: depth is 4095.
--g=<factor>::
---geometric=<factor>::
-+-g=[<factor>]::
++-g[=<factor>]::
+--geometric[=<factor>]::
Arrange resulting pack structure so that each successive pack
-- contains at least `<factor>` times the number of objects as the
+ contains at least `<factor>` times the number of objects as the
- next-largest pack.
-+ contains at least `<factor>` (`2` if unspecified) times the
-+ number of objects as the next-largest pack.
++ next-largest pack. If `<factor>` is not specified, then `2` is
++ used by default.
+
`git repack` ensures this by determining a "cut" of packfiles that need
to be repacked into one in order to ensure a geometric progression. It
Documentation/git-repack.txt | 7 ++++---
builtin/repack.c | 5 +++--
t/t7703-repack-geometric.sh | 2 +-
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index 317d63cf0d..f7c7e0aeae 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -165,11 +165,12 @@ depth is 4095.
Pass the `--delta-islands` option to `git-pack-objects`, see
linkgit:git-pack-objects[1].
--g=<factor>::
---geometric=<factor>::
+-g[=<factor>]::
+--geometric[=<factor>]::
Arrange resulting pack structure so that each successive pack
contains at least `<factor>` times the number of objects as the
- next-largest pack.
+ next-largest pack. If `<factor>` is not specified, then `2` is
+ used by default.
+
`git repack` ensures this by determining a "cut" of packfiles that need
to be repacked into one in order to ensure a geometric progression. It
diff --git a/builtin/repack.c b/builtin/repack.c
index 2847fdfbab..f2359c9d3a 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -494,8 +494,9 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
N_("repack objects in packs marked with .keep")),
OPT_STRING_LIST(0, "keep-pack", &keep_pack_list, N_("name"),
N_("do not repack this pack")),
- OPT_INTEGER('g', "geometric", &geometric_factor,
- N_("find a geometric progression with factor <N>")),
+ { OPTION_INTEGER, 'g', "geometric", &geometric_factor, N_("n"),
+ N_("find a geometric progression with factor <n>"),
+ PARSE_OPT_OPTARG, NULL, 2 },
OPT_END()
};
diff --git a/t/t7703-repack-geometric.sh b/t/t7703-repack-geometric.sh
index 5ccaa440e0..77cd5f2284 100755
--- a/t/t7703-repack-geometric.sh
+++ b/t/t7703-repack-geometric.sh
@@ -123,7 +123,7 @@ test_expect_success '--geometric with small- and large-pack rollup' '
find $objdir/pack -name "*.pack" | sort >before &&
- git repack --geometric 2 -d &&
+ git repack --geometric -d &&
find $objdir/pack -name "*.pack" | sort >after &&
comm -12 before after >untouched &&
--
2.31.1.163.ga65ce7f831
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2] builtin/repack.c: set a default factor for '--geometric'
2021-04-20 20:32 ` [PATCH v2] " Taylor Blau
@ 2021-04-20 21:44 ` Andreas Schwab
0 siblings, 0 replies; 6+ messages in thread
From: Andreas Schwab @ 2021-04-20 21:44 UTC (permalink / raw)
To: Taylor Blau; +Cc: git, peff, dstolee, gitster
On Apr 20 2021, Taylor Blau wrote:
> diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
> index 317d63cf0d..f7c7e0aeae 100644
> --- a/Documentation/git-repack.txt
> +++ b/Documentation/git-repack.txt
> @@ -165,11 +165,12 @@ depth is 4095.
> Pass the `--delta-islands` option to `git-pack-objects`, see
> linkgit:git-pack-objects[1].
>
> --g=<factor>::
> ---geometric=<factor>::
> +-g[=<factor>]::
> +--geometric[=<factor>]::
> Arrange resulting pack structure so that each successive pack
> contains at least `<factor>` times the number of objects as the
> - next-largest pack.
> + next-largest pack. If `<factor>` is not specified, then `2` is
> + used by default.
I don't think the short option takes a '='.
$ ./git repack -g=2
error: switch `g' expects a numerical value
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-04-20 21:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-20 1:47 [PATCH] builtin/repack.c: set a default factor for '--geometric' Taylor Blau
2021-04-20 12:39 ` Derrick Stolee
2021-04-20 20:25 ` Junio C Hamano
2021-04-20 20:31 ` Taylor Blau
2021-04-20 20:32 ` [PATCH v2] " Taylor Blau
2021-04-20 21:44 ` Andreas Schwab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).