forked from git/git
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pack-objects: Allow use of pre-generated pack.
git-pack-objects can reuse pack files stored in $GIT_DIR/pack-cache directory, when a necessary pack is found. This is hopefully useful when upload-pack (called from git-daemon) is expected to receive requests for the same set of objects many times (e.g full cloning request of any project, or updates from the set of heads previous day to the latest for a slow moving project). Currently git-pack-objects does *not* keep pack files it creates for reusing. It might be useful to add --update-cache option to it, which would allow it store pack files it created in the pack-cache directory, and prune rarely used ones from it. Signed-off-by: Junio C Hamano <[email protected]>
- Loading branch information
Junio C Hamano
committed
Oct 26, 2005
1 parent
7ebb6fc
commit f3123c4
Showing
4 changed files
with
112 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
#include "cache.h" | ||
|
||
int copy_fd(int ifd, int ofd) | ||
{ | ||
while (1) { | ||
int len; | ||
char buffer[8192]; | ||
char *buf = buffer; | ||
len = read(ifd, buffer, sizeof(buffer)); | ||
if (!len) | ||
break; | ||
if (len < 0) { | ||
if (errno == EAGAIN) | ||
continue; | ||
return error("copy-fd: read returned %s", | ||
strerror(errno)); | ||
} | ||
while (1) { | ||
int written = write(ofd, buf, len); | ||
if (written > 0) { | ||
buf += written; | ||
len -= written; | ||
if (!len) | ||
break; | ||
} | ||
if (!written) | ||
return error("copy-fd: write returned 0"); | ||
if (errno == EAGAIN || errno == EINTR) | ||
continue; | ||
return error("copy-fd: write returned %s", | ||
strerror(errno)); | ||
} | ||
} | ||
close(ifd); | ||
return 0; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters