From: Junio C Hamano Date: Wed, 09 Sep 2026 19:54:35 GMT Subject: Re: [PATCH v3] Move rust gitcore crate to a different subdirectory Message-ID: In-Reply-To: <20260909013858.1729643-1-mh@glandium.org> Mike Hommey writes: > > Having `Cargo.toml` at the top-level of the repository implies that one > can run `cargo build` directly, but this doesn't produce anything useful > on its own. > > Additionally, when including the git source as a submodule of a Rust > project, it prevents the git source from being included at all in the > crate package because cargo skips directories that contain a Cargo.toml, > assuming that everything in the directory is relevant to the crate. > > This moves all Rust-specific files into a dedicated `rust/` > subdirectory. Very readable and understandable. It is customary in this project to write that last sentence in imperative mood, though. I.e. "Move all files there". > Signed-off-by: Mike Hommey > diff --git a/.gitignore b/.gitignore > index 4da58c6754..3ac0685800 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -261,3 +261,5 @@ Release/ > /contrib/buildsystems/out > /contrib/libgit-rs/target > /contrib/libgit-sys/target > +/rust/target > +/rust/Cargo.lock There are /target/ and /Cargo.lock listed in this file; aren't these two entries meant to _replace_ them? I am wondering if they need to disappear as part of this patfch. > diff --git a/Makefile b/Makefile > index d4b775953d..7991fa378d 100644 > --- a/Makefile > +++ b/Makefile > @@ -1571,11 +1571,13 @@ CLAR_TEST_OBJS += $(UNIT_TEST_DIR)/unit-test.o > > UNIT_TEST_OBJS += $(UNIT_TEST_DIR)/test-lib.o > > -RUST_SOURCES += src/csum_file.rs > -RUST_SOURCES += src/hash.rs > -RUST_SOURCES += src/lib.rs > -RUST_SOURCES += src/loose.rs > -RUST_SOURCES += src/varint.rs > +RUST_SOURCES += rust/src/csum_file.rs > +RUST_SOURCES += rust/src/hash.rs > +RUST_SOURCES += rust/src/lib.rs > +RUST_SOURCES += rust/src/loose.rs > +RUST_SOURCES += rust/src/varint.rs > +RUST_SOURCES += rust/src/lib.rs > +RUST_SOURCES += rust/src/varint.rs Two files, lib and varint, are listed twice here. A rebase error or something? > @@ -3913,7 +3915,7 @@ clean: profile-clean coverage-clean cocciclean > $(RM) $(FUZZ_PROGRAMS) > $(RM) $(SP_OBJ) > $(RM) $(HCC) > - $(RM) -r Cargo.lock target/ > + $(RM) -r Cargo.lock rust/target/ The Cargo.lock file does not move together with the rest? That contradicts with what .gitignore says, doesn't it?