From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH v3 12/25] fetch-pack: use a separate flag for fetch in deepening mode
Date: Tue, 23 Feb 2016 20:44:50 +0700 [thread overview]
Message-ID: <1456235103-26317-13-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1456235103-26317-1-git-send-email-pclouds@gmail.com>
The shallow repo could be deepened or shortened when then user gives
--depth. But in future that won't be the only way to deepen/shorten a
repo. Stop relying on args->depth in this mode. Future deepening
methods can simply set this flag on instead of updating all these if
expressions.
The new name "deepen" was chosen after the command to define shallow
boundary in pack protocol. New commands also follow this tradition.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
fetch-pack.c | 14 ++++++++------
fetch-pack.h | 1 +
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/fetch-pack.c b/fetch-pack.c
index 4020744..8c37e5f 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -197,7 +197,7 @@ enum ack_type {
static void consume_shallow_list(struct fetch_pack_args *args, int fd)
{
- if (args->stateless_rpc && args->depth > 0) {
+ if (args->stateless_rpc && args->deepen) {
/* If we sent a depth we will get back "duplicate"
* shallow and unshallow commands every time there
* is a block of have lines exchanged.
@@ -348,7 +348,7 @@ static int find_common(struct fetch_pack_args *args,
packet_buf_flush(&req_buf);
state_len = req_buf.len;
- if (args->depth > 0) {
+ if (args->deepen) {
char *line;
const char *arg;
unsigned char sha1[20];
@@ -557,7 +557,7 @@ static void filter_refs(struct fetch_pack_args *args,
}
if (!keep && args->fetch_all &&
- (!args->depth || !starts_with(ref->name, "refs/tags/")))
+ (!args->deepen || !starts_with(ref->name, "refs/tags/")))
keep = 1;
if (keep) {
@@ -627,7 +627,7 @@ static int everything_local(struct fetch_pack_args *args,
}
}
- if (!args->depth) {
+ if (!args->deepen) {
for_each_ref(mark_complete_oid, NULL);
for_each_alternate_ref(mark_alternate_complete, NULL);
commit_list_sort_by_date(&complete);
@@ -813,6 +813,8 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
if ((args->depth > 0 || is_repository_shallow()) && !server_supports("shallow"))
die("Server does not support shallow clients");
+ if (args->depth > 0)
+ args->deepen = 1;
if (server_supports("multi_ack_detailed")) {
print_verbose(args, "Server supports multi_ack_detailed");
multi_ack = 2;
@@ -873,7 +875,7 @@ static struct ref *do_fetch_pack(struct fetch_pack_args *args,
if (args->stateless_rpc)
packet_flush(fd[1]);
- if (args->depth > 0)
+ if (args->deepen)
setup_alternate_shallow(&shallow_lock, &alternate_shallow_file,
NULL);
else if (si->nr_ours || si->nr_theirs)
@@ -940,7 +942,7 @@ static void update_shallow(struct fetch_pack_args *args,
int *status;
int i;
- if (args->depth > 0 && alternate_shallow_file) {
+ if (args->deepen && alternate_shallow_file) {
if (*alternate_shallow_file == '\0') { /* --unshallow */
unlink_or_warn(git_path_shallow());
rollback_lock_file(&shallow_lock);
diff --git a/fetch-pack.h b/fetch-pack.h
index bb7fd76..4d0adb0 100644
--- a/fetch-pack.h
+++ b/fetch-pack.h
@@ -25,6 +25,7 @@ struct fetch_pack_args {
unsigned self_contained_and_connected:1;
unsigned cloning:1;
unsigned update_shallow:1;
+ unsigned deepen:1;
};
/*
--
2.7.1.532.gd9e3aaa
next prev parent reply other threads:[~2016-02-23 13:46 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-23 13:44 [PATCH v3 00/25] More flexibility in making shallow clones Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 01/25] remote-curl.c: convert fetch_git() to use argv_array Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 02/25] transport-helper.c: refactor set_helper_option() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 03/25] upload-pack: move shallow deepen code out of receive_needs() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 04/25] upload-pack: move "shallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 05/25] upload-pack: remove unused variable "backup" Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 06/25] upload-pack: move "unshallow" sending code out of deepen() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 07/25] upload-pack: use skip_prefix() instead of starts_with() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 08/25] upload-pack: tighten number parsing at "deepen" lines Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 09/25] upload-pack: move rev-list code out of check_non_tip() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 10/25] fetch-pack: use skip_prefix() instead of starts_with() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 11/25] fetch-pack: use a common function for verbose printing Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` Nguyễn Thái Ngọc Duy [this message]
2016-02-23 13:44 ` [PATCH v3 13/25] shallow.c: implement a generic shallow boundary finder based on rev-list Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 14/25] upload-pack: add deepen-since to cut shallow repos based on time Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 15/25] fetch: define shallow boundary with --shallow-since Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 16/25] clone: define shallow clone boundary based on time " Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 17/25] t5500, t5539: tests for shallow depth since a specific date Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 18/25] refs: add expand_ref() Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 19/25] upload-pack: support define shallow boundary by excluding revisions Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 20/25] fetch: define shallow boundary with --shallow-exclude Nguyễn Thái Ngọc Duy
2016-02-23 13:44 ` [PATCH v3 21/25] clone: define shallow clone " Nguyễn Thái Ngọc Duy
2016-02-23 13:45 ` [PATCH v3 22/25] t5500, t5539: tests for shallow depth excluding a ref Nguyễn Thái Ngọc Duy
2016-02-23 13:45 ` [PATCH v3 23/25] upload-pack: split check_unreachable() in two, prep for get_reachable_list() Nguyễn Thái Ngọc Duy
2016-02-23 13:45 ` [PATCH v3 24/25] upload-pack: add get_reachable_list() Nguyễn Thái Ngọc Duy
2016-02-23 13:45 ` [PATCH v3 25/25] fetch, upload-pack: --deepen=N extends shallow boundary by N commits Nguyễn Thái Ngọc Duy
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=1456235103-26317-13-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=sunshine@sunshineco.com \
/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).