mirror of
https://relay.ngit.dev/npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr/ngit-grasp.git
synced 2026-10-06 07:28:23 +00:00
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
This commit is contained in:
@@ -361,8 +361,8 @@ impl SyncContext for RealSyncContext {
|
||||
let naughty_list = self.git_naughty_list.clone();
|
||||
|
||||
tokio::task::spawn_blocking(move || -> Result<Vec<String>> {
|
||||
// git fetch <remote> <sha1> <sha2> ... - fetch all OIDs in one command
|
||||
let mut args = vec!["fetch", "--depth=1", &url];
|
||||
// git fetch <remote> <sha1> <sha2> ... - fetch all OIDs with full history
|
||||
let mut args = vec!["fetch", &url];
|
||||
args.extend(missing_oids.iter().map(|s| s.as_str()));
|
||||
|
||||
let output = Command::new("git")
|
||||
|
||||
Reference in New Issue
Block a user