summaryrefslogtreecommitdiff
path: root/examples/network/clone.c
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2012-10-19 20:05:18 -0700
committerBen Straub <bs@github.com>2012-10-19 20:05:18 -0700
commit9c05c17b7ac7caf7691a9056994bda735ea31c81 (patch)
treeca7703823b06e0d33d3419b896f3836abc92ad1a /examples/network/clone.c
parentcd001bbbfe75a366d9658849cf6c5931440c0c01 (diff)
downloadlibgit2-9c05c17b7ac7caf7691a9056994bda735ea31c81.tar.gz
Checkout progress now reports completed/total steps
Diffstat (limited to 'examples/network/clone.c')
-rw-r--r--examples/network/clone.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/examples/network/clone.c b/examples/network/clone.c
index 5ad9330b9..19bf0cca8 100644
--- a/examples/network/clone.c
+++ b/examples/network/clone.c
@@ -9,7 +9,8 @@
typedef struct progress_data {
git_indexer_stats fetch_progress;
- float checkout_progress;
+ size_t completed_steps;
+ size_t total_steps;
const char *path;
} progress_data;
@@ -17,7 +18,9 @@ static void print_progress(const progress_data *pd)
{
int network_percent = (100*pd->fetch_progress.received) / pd->fetch_progress.total;
int index_percent = (100*pd->fetch_progress.processed) / pd->fetch_progress.total;
- int checkout_percent = (int)(100.f * pd->checkout_progress);
+ int checkout_percent = pd->total_steps > 0
+ ? (100.f * pd->completed_steps) / pd->total_steps
+ : 0.f;
int kbytes = pd->fetch_progress.bytes / 1024;
printf("net %3d%% (%6d kb) / idx %3d%% / chk %3d%% %50s\n",
network_percent, kbytes, index_percent, checkout_percent, pd->path);
@@ -35,10 +38,11 @@ static void fetch_progress(const git_indexer_stats *stats, void *payload)
pd->fetch_progress = *stats;
print_progress(pd);
}
-static void checkout_progress(const char *path, float progress, void *payload)
+static void checkout_progress(const char *path, size_t cur, size_t tot, void *payload)
{
progress_data *pd = (progress_data*)payload;
- pd->checkout_progress = progress;
+ pd->completed_steps = cur;
+ pd->total_steps = tot;
pd->path = path;
print_progress(pd);
}