Remove the ugly jit-style parent syntax.

If somebody wants it later, we can re-do it, but for now we consider
it an experiment that wasn't worth it. Git will still honor symbolic
names, it just won't look up parents for you.

Of course, you can always do it by hand if you want to.
This commit is contained in:
Linus Torvalds 2005-05-01 19:16:06 -07:00
parent 35ad33823e
commit ca4c7db9ef

View File

@ -60,37 +60,6 @@ int get_sha1_file(const char *path, unsigned char *result)
return get_sha1_hex(buffer, result);
}
static int get_parent(int index, const char *str, unsigned char *result)
{
unsigned char sha1[20];
char *buffer;
unsigned long size, offset;
int ret;
if (get_sha1(str, sha1) < 0)
return -1;
buffer = read_object_with_reference(sha1, "commit", &size, NULL);
if (!buffer)
return -1;
ret = -1;
offset = 46;
for (;;) {
if (offset + 48 > size)
break;
if (memcmp(buffer + offset, "parent ", 7))
break;
if (index > 0) {
offset += 48;
index--;
continue;
}
ret = get_sha1_hex(buffer + offset + 7, result);
break;
}
free(buffer);
return ret;
}
int get_sha1(const char *str, unsigned char *sha1)
{
static char pathname[PATH_MAX];
@ -108,19 +77,6 @@ int get_sha1(const char *str, unsigned char *sha1)
if (!get_sha1_hex(str, sha1))
return 0;
switch (*str) {
case '/':
if (!get_sha1_file(str, sha1))
return 0;
break;
case '-':
return get_parent(0, str+1, sha1);
case '0' ... '9':
if (str[1] == '-')
return get_parent(*str - '0', str+2, sha1);
break;
}
gitdir = ".git";
for (p = prefix; *p; p++) {
snprintf(pathname, sizeof(pathname), "%s/%s/%s", gitdir, *p, str);