From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 00/20] More flexibility in making shallow clones
Date: Tue, 29 Dec 2015 19:10:23 +0700 [thread overview]
Message-ID: <1451391043-28093-1-git-send-email-pclouds@gmail.com> (raw)
This series brings three new options to shallow clone/fetch. --since
lets you specify cut point by time. --not cuts by excluding specified
refs. And --deepen=<N> extends shallow boundary in a more predictable
way. Some of these were requested in the past.
An important point of this series is it starts to use rev-list behind
the scene to define shallow boundary, which opens doors to even more
ways of cutting a repository.
The series is good enough to look at but I don't think I have stared
long enough to spot all the bugs. This mail is mostly about checking
if the design (at both code and protocol levels) and the UI make
sense. I'm thinking --since and --not may be too generic, but I don't
see any better names, for example.
Refactor/cleanup patches are sprinkled throughout (bad?). The meat is
in 05, 09, 12, 13, 16, 17, 18 and 20.
HTTP support is not in this series (and I don't intend to do soon).
The amount of filler code just to pass some info from UI down to the
protocol seems too much, and it's even more so when HTTP support is
added. But I don't see anyway around it. Maybe we can share some code
between git-clone, git-fetch and git-fetch-pack, at least the argument
parsing..
Nguyễn Thái Ngọc Duy (20):
upload-pack: move shallow deepen code out of receive_needs()
upload-pack: move "shallow" sending code out of deepen()
upload-pack: remove unused variable "backup"
upload-pack: move "unshallow" sending code out of deepen()
shallow.c: implement a generic shallow boundary finder based on rev-list
upload-pack: glue code to use get_shallow_commits_by_rev_list
upload-pack: use skip_prefix() instead of starts_with() when possible
upload-pack: tighten number parsing at "deepen" lines
upload-pack: add deepen-since to cut shallow repos based on time
fetch-pack: use a common function for verbose printing
fetch-pack: use a separate flag for fetch in deepening mode
fetch: define shallow boundary with --since
clone: define shallow clone boundary based on time with --since
Add test_repo_expect_success for running tests in a new repository
t5500: test for shallow depth since a specific date
upload-pack: support define shallow boundary by excluding revisions
fetch: define shallow boundary with --not
clone: define shallow clone boundary with --not
t5500: test for shallow depth excluding a ref
fetch: add --deepen=<N> to extend shallow boundary by <N> commits
Documentation/fetch-options.txt | 14 ++
Documentation/git-clone.txt | 8 +
Documentation/technical/pack-protocol.txt | 4 +-
Documentation/technical/protocol-capabilities.txt | 25 +++
builtin/clone.c | 32 +++-
builtin/fetch.c | 44 ++++-
commit.h | 2 +
fetch-pack.c | 128 ++++++++------
fetch-pack.h | 4 +
shallow.c | 92 ++++++++++
t/README | 15 ++
t/t5500-fetch-pack.sh | 36 ++++
t/t5510-fetch.sh | 12 ++
t/test-lib-functions.sh | 20 +++
transport.c | 11 ++
transport.h | 14 ++
upload-pack.c | 206 ++++++++++++++++------
17 files changed, 550 insertions(+), 117 deletions(-)
--
2.3.0.rc1.137.g477eb31
next reply other threads:[~2015-12-29 12:11 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-29 12:10 Nguyễn Thái Ngọc Duy [this message]
2015-12-29 12:10 ` [PATCH 01/20] upload-pack: move shallow deepen code out of receive_needs() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 02/20] upload-pack: move "shallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 03/20] upload-pack: remove unused variable "backup" Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 04/20] upload-pack: move "unshallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 05/20] shallow.c: implement a generic shallow boundary finder based on rev-list Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 06/20] upload-pack: glue code to use get_shallow_commits_by_rev_list Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 07/20] upload-pack: use skip_prefix() instead of starts_with() when possible Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 08/20] upload-pack: tighten number parsing at "deepen" lines Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 09/20] upload-pack: add deepen-since to cut shallow repos based on time Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 10/20] fetch-pack: use a common function for verbose printing Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 11/20] fetch-pack: use a separate flag for fetch in deepening mode Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 12/20] fetch: define shallow boundary with --since Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 13/20] clone: define shallow clone boundary based on time " Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 14/20] Add test_repo_expect_success for running tests in a new repository Nguyễn Thái Ngọc Duy
2015-12-29 14:12 ` Duy Nguyen
2015-12-29 12:10 ` [PATCH 15/20] t5500: test for shallow depth since a specific date Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 16/20] upload-pack: support define shallow boundary by excluding revisions Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 17/20] fetch: define shallow boundary with --not Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 18/20] clone: define shallow clone " Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 19/20] t5500: test for shallow depth excluding a ref Nguyễn Thái Ngọc Duy
2015-12-29 12:10 ` [PATCH 20/20] fetch: add --deepen=<N> to extend shallow boundary by <N> commits Nguyễn Thái Ngọc Duy
2016-01-04 9:45 ` Eric Sunshine
2015-12-29 19:09 ` [PATCH 00/20] More flexibility in making shallow clones Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1451391043-28093-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).