Re: [PATCH v3] Move rust gitcore crate to a different subdirectory
From: Junio C Hamano <hidden>
Date: 2026-09-09 19:54:37
Mike Hommey [off-list ref] 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 <redacted>
quoted hunk ↗ jump to hunk
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.
quoted hunk ↗ jump to hunk
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?
quoted hunk ↗ jump to hunk
@@ -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?