"Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Derrick Stolee <derrickstolee@xxxxxxxxxx> > > Some users have strong aversions to Scalar's opinion that the repository > should be in a 'src' directory, even though it creates a clean slate for > placing build outputs in adjacent directories. > > The --no-src option allows users to opt-out of the default behavior. > > While adding options, make sure the usage output by 'scalar clone -h' > reports the same as the SYNOPSIS line in Documentation/scalar.txt. > > Signed-off-by: Derrick Stolee <derrickstolee@xxxxxxxxxx> > --- > Documentation/scalar.txt | 8 +++++++- > scalar.c | 11 +++++++++-- > t/t9211-scalar-clone.sh | 8 ++++++++ > 3 files changed, 24 insertions(+), 3 deletions(-) > > diff --git a/Documentation/scalar.txt b/Documentation/scalar.txt > index f33436c7f65..cd65b3e230d 100644 > --- a/Documentation/scalar.txt > +++ b/Documentation/scalar.txt > @@ -8,7 +8,8 @@ scalar - A tool for managing large Git repositories > SYNOPSIS > -------- > [verse] > -scalar clone [--single-branch] [--branch <main-branch>] [--full-clone] <url> [<enlistment>] > +scalar clone [--single-branch] [--branch <main-branch>] [--full-clone] > + [--[no-]src] <url> [<enlistment>] > scalar list > scalar register [<enlistment>] > scalar unregister [<enlistment>] > @@ -80,6 +81,11 @@ remote-tracking branch for the branch this option was used for the initial > cloning. If the HEAD at the remote did not point at any branch when > `--single-branch` clone was made, no remote-tracking branch is created. > > +--[no-]src:: > + Specify if the repository should be created within a `src` directory > + within `<enlistment>`. This is the default behavior, so use > + `--no-src` to opt-out of the creation of the `src` directory. While there is nothing incorrect in the above per-se, and the first half of the description is perfectly good, but I find the latter half places too much stress on the existence of the "src" directory. As a mere mortal end-user, what is more important is not the presence of an extra directory, but the fact that everything I have is now moved one level down in the directory hierarchy to "src/" directory. This is the default behavior; use `--no-src` to place the root of the working tree of the repository directly at `<enlistment>`. or something along that line would have been easier to understand for me. It is not the creation of `src`, but that everything is moved into it, is what some users may find unusual. > +test_expect_success '`scalar clone --no-src`' ' > + scalar clone --src "file://$(pwd)/to-clone" with-src && > + scalar clone --no-src "file://$(pwd)/to-clone" without-src && > + > + test_path_is_dir with-src/src && > + test_path_is_missing without-src/src > +' And another thing that may be interesting, from the above point of view, is to compare these two: (cd with-src/src && ls ?*) >with && (cd without && ls ?*) >without && test_cmp with without Both output should look something like cron.txt first.t second.t third.t and the earlier confusion point I raised was that (cd with-src && ls ?*) would not look like cron.txt first.t second.t src/ third.t Thanks.