[PATCH 0/4] check_everything_connected replacement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



My investigation in lowering connectivity check cost in git-clone [1]
led me to try 'index-pack --strict' code. Without calling fsck_object(),
--strict seems to be cheaper than check_everything_connected() while
accomplishing the same thing (imo).

The first patch is a bug fix running git-clone --depth with
fetch.fsckObjects on. The second is "fix while i'm there". The third
introduces check_everything_connected alternative. The fourth makes
use of it.

The last use of check_everything_connected after this series is
fetch.c:quickfetch(), which I think is unnecessary. It can only catch
errors if we have incomplete object islands in repo, which could
happen before this series. After this series, incomplete object
islands can't enter the repository, at least via git transport. So
maybe we should remove that check_everything_connected too (maybe
after a few years, enough time for the laziest user to run fsck/repack
once).

[1] http://article.gmane.org/gmane.comp.version-control.git/219602

Nguyễn Thái Ngọc Duy (4):
  fetch-pack: save shallow file before fetching the pack
  index-pack: remove dead code (it should never happen)
  index-pack, unpack-objects: add --not-so-strict for connectivity check
  Use --not-so-strict on all pack transfer for connectivity check

 builtin/fetch.c                 |  6 ----
 builtin/index-pack.c            | 10 ++++--
 builtin/receive-pack.c          | 22 +++----------
 builtin/unpack-objects.c        |  9 ++++--
 fetch-pack.c                    | 72 +++++++++++++++++++++++------------------
 t/t5500-fetch-pack.sh           |  7 ++++
 t/t5504-fetch-receive-strict.sh |  2 +-
 7 files changed, 66 insertions(+), 62 deletions(-)

-- 
1.8.2.83.gc99314b

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]