Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH 00/20] More flexibility in making shallow clones

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:07:35

Nguyễn Thái Ngọc Duy  [off-list ref] writes:
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.
Hmm, is this --deepen=<N> a response to the "--depth=<N> after too
long a time since the clone may even lose the originally acquired
history because the tip has advanced more than <N>"?  If that is so,
I guess it is a welcome change ;-)
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.
Thanks.  As an initial "how about going in this direction?"
weatherbaloon, the order of changes are less important, but as the
topic gets closer to the final, it would be nicer to see preparatory
things done as, eh, preparatory steps ;-)
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(-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help