upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/purgatory/sync
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-12 10:57:50 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-12 10:57:50 +0000
commitf25eea8cc3b940cbcaa96224485826bfaae82449 (patch)
treec423a67d033cf8458c3efd9741e119d559cdb6e3 /src/purgatory/sync
parent93227ce02e484c1e727bfd07ceeb72fd95774170 (diff)
fix: fetch full git history instead of shallow clones
Previously, purgatory sync was using '--depth=1' when fetching OIDs from remote servers. This created shallow clones with only 1-2 commits instead of the complete git history. The fix removes the '--depth=1' flag, allowing git to fetch the complete commit history chain when fetching specific commit OIDs. This is the correct behavior for GRASP - users cloning from our relay should get the full repository history. Changes: - Remove '--depth=1' from git fetch command in RealSyncContext::fetch_oids - Update comment to clarify that full history is fetched Impact: - Production repositories will now contain full git history - Users cloning from the relay will get complete commit chains - No more 'shallow' files in git repositories - May be slightly slower due to fetching more data, but correctness is prioritized Testing: - All 564 tests pass (276 unit + 288 integration) - No regressions in existing functionality Fixes issue documented in work/active-issues/shallow-git-fetch.md
Diffstat (limited to 'src/purgatory/sync')
-rw-r--r--src/purgatory/sync/context.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/purgatory/sync/context.rs b/src/purgatory/sync/context.rs
index 3c2c683..f41dc25 100644
--- a/src/purgatory/sync/context.rs
+++ b/src/purgatory/sync/context.rs
@@ -361,8 +361,8 @@ impl SyncContext for RealSyncContext {
361 let naughty_list = self.git_naughty_list.clone(); 361 let naughty_list = self.git_naughty_list.clone();
362 362
363 tokio::task::spawn_blocking(move || -> Result<Vec<String>> { 363 tokio::task::spawn_blocking(move || -> Result<Vec<String>> {
364 // git fetch <remote> <sha1> <sha2> ... - fetch all OIDs in one command 364 // git fetch <remote> <sha1> <sha2> ... - fetch all OIDs with full history
365 let mut args = vec!["fetch", "--depth=1", &url]; 365 let mut args = vec!["fetch", &url];
366 args.extend(missing_oids.iter().map(|s| s.as_str())); 366 args.extend(missing_oids.iter().map(|s| s.as_str()));
367 367
368 let output = Command::new("git") 368 let output = Command::new("git")