Compare commits

...

7 Commits

Author SHA1 Message Date
ca182053c7 GIT 1.0.13
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-27 14:46:10 -08:00
1ecc18e4fc checkout: do not make a temporary copy of symlink target.
If the index records an insanely long symbolic link, copying
into the temporary would overflow the buffer (noticed by Mark
Wooding).

Because read_sha1_file() terminates the returned buffer with NUL
since late May 2005, there is no reason to copy it anymore.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-27 14:44:07 -08:00
3a75f67401 GIT 1.0.12 2006-01-19 18:32:54 -08:00
e921fb82cf git-fetch-pack: really do not ask for funny refs
If git-fetch-pack was called with out any refspec, it would ask the server
for funny refs. That cannot work, since the funny refs are not marked
as OUR_REF by upload-pack, which just exits with an error.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-19 18:29:43 -08:00
e93ec6f9d8 Revert "check_packed_git_idx(): check integrity of the idx file itself."
This reverts c5ced64578 commit.
It turns out that doing this check every time we map the idx file
is quite expensive.  A corrupt idx file is caught by git-fsck-objects,
so this check is not strictly necessary.

In one unscientific test, 0.99.9m spent 10 seconds usertime for
the same task 1.1.3 takes 37 seconds usertime.  Reverting this gives
us the performance of 0.99.9 back.
2006-01-19 18:29:11 -08:00
ae4a35261d GIT 1.0.11 2006-01-15 21:11:30 -08:00
ee3d299e93 diffcore-break/diffcore-rename: integer overflow.
While reviewing the end user tutorial rewrite by J. Bruce
Fields, I noticed that "git-diff-tree -B -C" did not correctly
break the total rewrite of Documentation/tutorial.txt.  It turns
out that we had integer overflow during the break score
computations.

Cop out by using floating point.  This is not a kernel.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-15 21:08:42 -08:00
5 changed files with 6 additions and 26 deletions

View File

@ -55,7 +55,7 @@ all:
# Define USE_STDEV below if you want git to care about the underlying device
# change being considered an inode change from the update-cache perspective.
GIT_VERSION = 1.0.10
GIT_VERSION = 1.0.13
# CFLAGS and LDFLAGS are for the users to override from the command line.

View File

@ -15,7 +15,7 @@
* passed around in one int (high 16-bit for merge and low 16-bit
* for break).
*/
#define MAX_SCORE 60000
#define MAX_SCORE 60000.0
#define DEFAULT_RENAME_SCORE 30000 /* rename/copy similarity minimum (50%) */
#define DEFAULT_BREAK_SCORE 30000 /* minimum for break to happen (50%)*/
#define DEFAULT_MERGE_SCORE 48000 /* maximum for break-merge to happen (80%)*/

View File

@ -70,7 +70,6 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
unsigned long size;
long wrote;
char type[20];
char target[1024];
new = read_sha1_file(ce->sha1, type, &size);
if (!new || strcmp(type, "blob")) {
@ -94,12 +93,10 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
return error("git-checkout-index: unable to write file %s", path);
break;
case S_IFLNK:
memcpy(target, new, size);
target[size] = '\0';
if (symlink(target, path)) {
if (symlink(new, path)) {
free(new);
return error("git-checkout-index: unable to create symlink %s (%s)",
path, strerror(errno));
return error("git-checkout-index: unable to create "
"symlink %s (%s)", path, strerror(errno));
}
free(new);
break;

View File

@ -262,9 +262,6 @@ static void filter_refs(struct ref **refs, int nr_match, char **match)
{
struct ref *prev, *current, *next;
if (!nr_match)
return;
for (prev = NULL, current = *refs; current; current = next) {
next = current->next;
if ((!memcmp(current->name, "refs/", 5) &&

View File

@ -321,16 +321,12 @@ struct packed_git *packed_git;
static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
void **idx_map_)
{
SHA_CTX ctx;
unsigned char sha1[20];
void *idx_map;
unsigned int *index;
unsigned long idx_size;
int nr, i;
int fd;
int fd = open(path, O_RDONLY);
struct stat st;
fd = open(path, O_RDONLY);
if (fd < 0)
return -1;
if (fstat(fd, &st)) {
@ -368,16 +364,6 @@ static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
if (idx_size != 4*256 + nr * 24 + 20 + 20)
return error("wrong index file size");
/*
* File checksum.
*/
SHA1_Init(&ctx);
SHA1_Update(&ctx, idx_map, idx_size-20);
SHA1_Final(sha1, &ctx);
if (memcmp(sha1, idx_map + idx_size - 20, 20))
return error("index checksum mismatch");
return 0;
}