Merge branch 'js/fetch-progress' (early part)
* 'js/fetch-progress' (early part): Fixup no-progress for fetch & clone fetch & clone: do not output progress when not on a tty Conflicts: git-fetch.sh
This commit is contained in:
commit
3ddad98b74
@ -8,7 +8,7 @@ git-fetch-pack - Receive missing objects from another repository
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [-v] [<host>:]<directory> [<refs>...]
|
'git-fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
@ -63,6 +63,9 @@ OPTIONS
|
|||||||
\--depth=<n>::
|
\--depth=<n>::
|
||||||
Limit fetching to ancestor-chains not longer than n.
|
Limit fetching to ancestor-chains not longer than n.
|
||||||
|
|
||||||
|
\--no-progress::
|
||||||
|
Do not show the progress.
|
||||||
|
|
||||||
\-v::
|
\-v::
|
||||||
Run verbosely.
|
Run verbosely.
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ git-upload-pack - Send objects packed back to git-fetch-pack
|
|||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-upload-pack' <directory>
|
'git-upload-pack' [--strict] [--timeout=<n>] <directory>
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
@ -23,6 +23,13 @@ repository. For push operations, see 'git-send-pack'.
|
|||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
\--strict::
|
||||||
|
Do not try <directory>/.git/ if <directory> is no git directory.
|
||||||
|
|
||||||
|
\--timeout=<n>::
|
||||||
|
Interrupt transfer after <n> seconds of inactivity.
|
||||||
|
|
||||||
<directory>::
|
<directory>::
|
||||||
The repository to sync from.
|
The repository to sync from.
|
||||||
|
|
||||||
|
12
fetch-pack.c
12
fetch-pack.c
@ -15,8 +15,9 @@ static int quiet;
|
|||||||
static int verbose;
|
static int verbose;
|
||||||
static int fetch_all;
|
static int fetch_all;
|
||||||
static int depth;
|
static int depth;
|
||||||
|
static int no_progress;
|
||||||
static const char fetch_pack_usage[] =
|
static const char fetch_pack_usage[] =
|
||||||
"git-fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [-v] [<host>:]<directory> [<refs>...]";
|
"git-fetch-pack [--all] [--quiet|-q] [--keep|-k] [--thin] [--upload-pack=<git-upload-pack>] [--depth=<n>] [--no-progress] [-v] [<host>:]<directory> [<refs>...]";
|
||||||
static const char *uploadpack = "git-upload-pack";
|
static const char *uploadpack = "git-upload-pack";
|
||||||
|
|
||||||
#define COMPLETE (1U << 0)
|
#define COMPLETE (1U << 0)
|
||||||
@ -173,12 +174,13 @@ static int find_common(int fd[2], unsigned char *result_sha1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!fetching)
|
if (!fetching)
|
||||||
packet_write(fd[1], "want %s%s%s%s%s%s\n",
|
packet_write(fd[1], "want %s%s%s%s%s%s%s\n",
|
||||||
sha1_to_hex(remote),
|
sha1_to_hex(remote),
|
||||||
(multi_ack ? " multi_ack" : ""),
|
(multi_ack ? " multi_ack" : ""),
|
||||||
(use_sideband == 2 ? " side-band-64k" : ""),
|
(use_sideband == 2 ? " side-band-64k" : ""),
|
||||||
(use_sideband == 1 ? " side-band" : ""),
|
(use_sideband == 1 ? " side-band" : ""),
|
||||||
(use_thin_pack ? " thin-pack" : ""),
|
(use_thin_pack ? " thin-pack" : ""),
|
||||||
|
(no_progress ? " no-progress" : ""),
|
||||||
" ofs-delta");
|
" ofs-delta");
|
||||||
else
|
else
|
||||||
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
|
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
|
||||||
@ -521,7 +523,7 @@ static int get_pack(int xd[2])
|
|||||||
if (do_keep) {
|
if (do_keep) {
|
||||||
*av++ = "index-pack";
|
*av++ = "index-pack";
|
||||||
*av++ = "--stdin";
|
*av++ = "--stdin";
|
||||||
if (!quiet)
|
if (!quiet && !no_progress)
|
||||||
*av++ = "-v";
|
*av++ = "-v";
|
||||||
if (use_thin_pack)
|
if (use_thin_pack)
|
||||||
*av++ = "--fix-thin";
|
*av++ = "--fix-thin";
|
||||||
@ -718,6 +720,10 @@ int main(int argc, char **argv)
|
|||||||
st.st_mtime = 0;
|
st.st_mtime = 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strcmp("--no-progress", arg)) {
|
||||||
|
no_progress = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
usage(fetch_pack_usage);
|
usage(fetch_pack_usage);
|
||||||
}
|
}
|
||||||
dest = arg;
|
dest = arg;
|
||||||
|
@ -79,6 +79,8 @@ origin=
|
|||||||
origin_override=
|
origin_override=
|
||||||
use_separate_remote=t
|
use_separate_remote=t
|
||||||
depth=
|
depth=
|
||||||
|
no_progress=
|
||||||
|
test -t 1 || no_progress=--no-progress
|
||||||
while
|
while
|
||||||
case "$#,$1" in
|
case "$#,$1" in
|
||||||
0,*) break ;;
|
0,*) break ;;
|
||||||
@ -290,8 +292,8 @@ yes,yes)
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
case "$upload_pack" in
|
case "$upload_pack" in
|
||||||
'') git-fetch-pack --all -k $quiet $depth "$repo" ;;
|
'') git-fetch-pack --all -k $quiet $depth $no_progress "$repo";;
|
||||||
*) git-fetch-pack --all -k $quiet "$upload_pack" $depth "$repo" ;;
|
*) git-fetch-pack --all -k $quiet "$upload_pack" $depth $no_progress "$repo" ;;
|
||||||
esac >"$GIT_DIR/CLONE_HEAD" ||
|
esac >"$GIT_DIR/CLONE_HEAD" ||
|
||||||
die "fetch-pack from '$repo' failed."
|
die "fetch-pack from '$repo' failed."
|
||||||
;;
|
;;
|
||||||
@ -393,7 +395,7 @@ then
|
|||||||
|
|
||||||
case "$no_checkout" in
|
case "$no_checkout" in
|
||||||
'')
|
'')
|
||||||
test "z$quiet" = z && v=-v || v=
|
test "z$quiet" = z -a "z$no_progress" = z && v=-v || v=
|
||||||
git-read-tree -m -u $v HEAD HEAD
|
git-read-tree -m -u $v HEAD HEAD
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
@ -24,6 +24,8 @@ update_head_ok=
|
|||||||
exec=
|
exec=
|
||||||
keep=
|
keep=
|
||||||
shallow_depth=
|
shallow_depth=
|
||||||
|
no_progress=
|
||||||
|
test -t 1 || no_progress=--no-progress
|
||||||
while case "$#" in 0) break ;; esac
|
while case "$#" in 0) break ;; esac
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -392,7 +394,8 @@ fetch_main () {
|
|||||||
git-bundle unbundle "$remote" $rref ||
|
git-bundle unbundle "$remote" $rref ||
|
||||||
echo failed "$remote"
|
echo failed "$remote"
|
||||||
else
|
else
|
||||||
git-fetch-pack --thin $exec $keep $shallow_depth "$remote" $rref ||
|
git-fetch-pack --thin $exec $keep $shallow_depth $no_progress \
|
||||||
|
"$remote" $rref ||
|
||||||
echo failed "$remote"
|
echo failed "$remote"
|
||||||
fi
|
fi
|
||||||
) |
|
) |
|
||||||
|
@ -26,7 +26,7 @@ static const char upload_pack_usage[] = "git-upload-pack [--strict] [--timeout=n
|
|||||||
static unsigned long oldest_have;
|
static unsigned long oldest_have;
|
||||||
|
|
||||||
static int multi_ack, nr_our_refs;
|
static int multi_ack, nr_our_refs;
|
||||||
static int use_thin_pack, use_ofs_delta;
|
static int use_thin_pack, use_ofs_delta, no_progress;
|
||||||
static struct object_array have_obj;
|
static struct object_array have_obj;
|
||||||
static struct object_array want_obj;
|
static struct object_array want_obj;
|
||||||
static unsigned int timeout;
|
static unsigned int timeout;
|
||||||
@ -164,6 +164,9 @@ static void create_pack_file(void)
|
|||||||
die("git-upload-pack: unable to fork git-pack-objects");
|
die("git-upload-pack: unable to fork git-pack-objects");
|
||||||
}
|
}
|
||||||
if (!pid_pack_objects) {
|
if (!pid_pack_objects) {
|
||||||
|
const char *argv[10];
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
dup2(lp_pipe[0], 0);
|
dup2(lp_pipe[0], 0);
|
||||||
dup2(pu_pipe[1], 1);
|
dup2(pu_pipe[1], 1);
|
||||||
dup2(pe_pipe[1], 2);
|
dup2(pe_pipe[1], 2);
|
||||||
@ -174,9 +177,16 @@ static void create_pack_file(void)
|
|||||||
close(pu_pipe[1]);
|
close(pu_pipe[1]);
|
||||||
close(pe_pipe[0]);
|
close(pe_pipe[0]);
|
||||||
close(pe_pipe[1]);
|
close(pe_pipe[1]);
|
||||||
execl_git_cmd("pack-objects", "--stdout", "--progress",
|
|
||||||
use_ofs_delta ? "--delta-base-offset" : NULL,
|
argv[i++] = "pack-objects";
|
||||||
NULL);
|
argv[i++] = "--stdout";
|
||||||
|
if (!no_progress)
|
||||||
|
argv[i++] = "--progress";
|
||||||
|
if (use_ofs_delta)
|
||||||
|
argv[i++] = "--delta-base-offset";
|
||||||
|
argv[i++] = NULL;
|
||||||
|
|
||||||
|
execv_git_cmd(argv);
|
||||||
kill(pid_rev_list, SIGKILL);
|
kill(pid_rev_list, SIGKILL);
|
||||||
die("git-upload-pack: unable to exec git-pack-objects");
|
die("git-upload-pack: unable to exec git-pack-objects");
|
||||||
}
|
}
|
||||||
@ -537,6 +547,8 @@ static void receive_needs(void)
|
|||||||
use_sideband = LARGE_PACKET_MAX;
|
use_sideband = LARGE_PACKET_MAX;
|
||||||
else if (strstr(line+45, "side-band"))
|
else if (strstr(line+45, "side-band"))
|
||||||
use_sideband = DEFAULT_PACKET_MAX;
|
use_sideband = DEFAULT_PACKET_MAX;
|
||||||
|
if (strstr(line+45, "no-progress"))
|
||||||
|
no_progress = 1;
|
||||||
|
|
||||||
/* We have sent all our refs already, and the other end
|
/* We have sent all our refs already, and the other end
|
||||||
* should have chosen out of them; otherwise they are
|
* should have chosen out of them; otherwise they are
|
||||||
@ -605,7 +617,7 @@ static void receive_needs(void)
|
|||||||
static int send_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
|
static int send_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
|
||||||
{
|
{
|
||||||
static const char *capabilities = "multi_ack thin-pack side-band"
|
static const char *capabilities = "multi_ack thin-pack side-band"
|
||||||
" side-band-64k ofs-delta shallow";
|
" side-band-64k ofs-delta shallow no-progress";
|
||||||
struct object *o = parse_object(sha1);
|
struct object *o = parse_object(sha1);
|
||||||
|
|
||||||
if (!o)
|
if (!o)
|
||||||
|
Loading…
Reference in New Issue
Block a user