Browse Source

GIT 1.0.4

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint v1.0.4
Junio C Hamano 19 years ago
parent
commit
6ab58895cd
  1. 9
      Documentation/git-ls-files.txt
  2. 2
      Makefile
  3. 6
      debian/changelog
  4. 11
      git-merge.sh
  5. 2
      ls-files.c
  6. 2
      mailinfo.c
  7. 16
      sha1_file.c
  8. 71
      show-branch.c
  9. 7
      t/t5300-pack-object.sh

9
Documentation/git-ls-files.txt

@ -13,7 +13,8 @@ SYNOPSIS
(-[c|d|o|i|s|u|k|m])\* (-[c|d|o|i|s|u|k|m])\*
[-x <pattern>|--exclude=<pattern>] [-x <pattern>|--exclude=<pattern>]
[-X <file>|--exclude-from=<file>] [-X <file>|--exclude-from=<file>]
[--exclude-per-directory=<file>] [--] [<file>]\* [--exclude-per-directory=<file>]
[--full-name] [--] [<file>]\*


DESCRIPTION DESCRIPTION
----------- -----------
@ -77,6 +78,12 @@ OPTIONS
K:: to be killed K:: to be killed
? other ? other


--full-name::
When run from a subdirectory, the command usually
outputs paths relative to the current directory. This
option forces paths to be output relative to the project
top directory.

--:: --::
Do not interpret any more arguments as options. Do not interpret any more arguments as options.



2
Makefile

@ -55,7 +55,7 @@ all:
# Define USE_STDEV below if you want git to care about the underlying device # 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. # change being considered an inode change from the update-cache perspective.


GIT_VERSION = 1.0.3 GIT_VERSION = 1.0.4


# CFLAGS and LDFLAGS are for the users to override from the command line. # CFLAGS and LDFLAGS are for the users to override from the command line.



6
debian/changelog vendored

@ -1,3 +1,9 @@
git-core (1.0.4-0) unstable; urgency=low

* GIT 1.0.4.

-- Junio C Hamano <junkio@cox.net> Sat, 24 Dec 2005 00:01:20 -0800

git-core (1.0.3-0) unstable; urgency=low git-core (1.0.3-0) unstable; urgency=low


* GIT 1.0.3 maintenance release. * GIT 1.0.3 maintenance release.

11
git-merge.sh

@ -209,6 +209,7 @@ case "$use_strategies" in
esac esac


result_tree= best_cnt=-1 best_strategy= wt_strategy= result_tree= best_cnt=-1 best_strategy= wt_strategy=
merge_was_ok=
for strategy in $use_strategies for strategy in $use_strategies
do do
test "$wt_strategy" = '' || { test "$wt_strategy" = '' || {
@ -228,6 +229,7 @@ do
exit=$? exit=$?
if test "$no_commit" = t && test "$exit" = 0 if test "$no_commit" = t && test "$exit" = 0
then then
merge_was_ok=t
exit=1 ;# pretend it left conflicts. exit=1 ;# pretend it left conflicts.
fi fi


@ -293,4 +295,11 @@ do
done >"$GIT_DIR/MERGE_HEAD" done >"$GIT_DIR/MERGE_HEAD"
echo $merge_msg >"$GIT_DIR/MERGE_MSG" echo $merge_msg >"$GIT_DIR/MERGE_MSG"


die "Automatic merge failed/prevented; fix up by hand" if test "$merge_was_ok" = t
then
echo >&2 \
"Automatic merge went well; stopped before committing as requested"
exit 0
else
die "Automatic merge failed; fix up by hand"
fi

2
ls-files.c

@ -562,7 +562,7 @@ static void verify_pathspec(void)
static const char ls_files_usage[] = static const char ls_files_usage[] =
"git-ls-files [-z] [-t] (--[cached|deleted|others|stage|unmerged|killed|modified])* " "git-ls-files [-z] [-t] (--[cached|deleted|others|stage|unmerged|killed|modified])* "
"[ --ignored ] [--exclude=<pattern>] [--exclude-from=<file>] " "[ --ignored ] [--exclude=<pattern>] [--exclude-from=<file>] "
"[ --exclude-per-directory=<filename> ] [--] [<file>]*"; "[ --exclude-per-directory=<filename> ] [--full-name] [--] [<file>]*";


int main(int argc, const char **argv) int main(int argc, const char **argv)
{ {

2
mailinfo.c

@ -472,7 +472,7 @@ static void convert_to_utf8(char *line, char *charset)
char *in, *out; char *in, *out;
size_t insize, outsize, nrc; size_t insize, outsize, nrc;
char outbuf[4096]; /* cheat */ char outbuf[4096]; /* cheat */
static char latin_one[] = "latin-1"; static char latin_one[] = "latin1";
char *input_charset = *charset ? charset : latin_one; char *input_charset = *charset ? charset : latin_one;
iconv_t conv = iconv_open(metainfo_charset, input_charset); iconv_t conv = iconv_open(metainfo_charset, input_charset);



16
sha1_file.c

@ -321,12 +321,16 @@ struct packed_git *packed_git;
static int check_packed_git_idx(const char *path, unsigned long *idx_size_, static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
void **idx_map_) void **idx_map_)
{ {
SHA_CTX ctx;
unsigned char sha1[20];
void *idx_map; void *idx_map;
unsigned int *index; unsigned int *index;
unsigned long idx_size; unsigned long idx_size;
int nr, i; int nr, i;
int fd = open(path, O_RDONLY); int fd;
struct stat st; struct stat st;

fd = open(path, O_RDONLY);
if (fd < 0) if (fd < 0)
return -1; return -1;
if (fstat(fd, &st)) { if (fstat(fd, &st)) {
@ -364,6 +368,16 @@ static int check_packed_git_idx(const char *path, unsigned long *idx_size_,
if (idx_size != 4*256 + nr * 24 + 20 + 20) if (idx_size != 4*256 + nr * 24 + 20 + 20)
return error("wrong index file size"); 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; return 0;
} }



71
show-branch.c

@ -284,10 +284,54 @@ static void show_one_commit(struct commit *commit, int no_name)
static char *ref_name[MAX_REVS + 1]; static char *ref_name[MAX_REVS + 1];
static int ref_name_cnt; static int ref_name_cnt;


static const char *find_digit_prefix(const char *s, int *v)
{
const char *p;
int ver;
char ch;

for (p = s, ver = 0;
'0' <= (ch = *p) && ch <= '9';
p++)
ver = ver * 10 + ch - '0';
*v = ver;
return p;
}


static int version_cmp(const char *a, const char *b)
{
while (1) {
int va, vb;

a = find_digit_prefix(a, &va);
b = find_digit_prefix(b, &vb);
if (va != vb)
return va - vb;

while (1) {
int ca = *a;
int cb = *b;
if ('0' <= ca && ca <= '9')
ca = 0;
if ('0' <= cb && cb <= '9')
cb = 0;
if (ca != cb)
return ca - cb;
if (!ca)
break;
a++;
b++;
}
if (!*a && !*b)
return 0;
}
}

static int compare_ref_name(const void *a_, const void *b_) static int compare_ref_name(const void *a_, const void *b_)
{ {
const char * const*a = a_, * const*b = b_; const char * const*a = a_, * const*b = b_;
return strcmp(*a, *b); return version_cmp(*a, *b);
} }


static void sort_ref_range(int bottom, int top) static void sort_ref_range(int bottom, int top)
@ -299,8 +343,15 @@ static void sort_ref_range(int bottom, int top)
static int append_ref(const char *refname, const unsigned char *sha1) static int append_ref(const char *refname, const unsigned char *sha1)
{ {
struct commit *commit = lookup_commit_reference_gently(sha1, 1); struct commit *commit = lookup_commit_reference_gently(sha1, 1);
int i;

if (!commit) if (!commit)
return 0; return 0;
/* Avoid adding the same thing twice */
for (i = 0; i < ref_name_cnt; i++)
if (!strcmp(refname, ref_name[i]))
return 0;

if (MAX_REVS <= ref_name_cnt) { if (MAX_REVS <= ref_name_cnt) {
fprintf(stderr, "warning: ignoring %s; " fprintf(stderr, "warning: ignoring %s; "
"cannot handle more than %d refs\n", "cannot handle more than %d refs\n",
@ -512,19 +563,17 @@ int main(int ac, char **av)
if (1 < independent + merge_base + (extra != 0)) if (1 < independent + merge_base + (extra != 0))
usage(show_branch_usage); usage(show_branch_usage);


/* If nothing is specified, show all branches by default */
if (ac + all_heads + all_tags == 0)
all_heads = 1;

if (all_heads + all_tags) if (all_heads + all_tags)
snarf_refs(all_heads, all_tags); snarf_refs(all_heads, all_tags);

while (0 < ac) {
if (ac) { append_one_rev(*av);
while (0 < ac) { ac--; av++;
append_one_rev(*av);
ac--; av++;
}
}
else {
/* If no revs given, then add heads */
snarf_refs(1, 0);
} }

if (!ref_name_cnt) { if (!ref_name_cnt) {
fprintf(stderr, "No revs to be shown.\n"); fprintf(stderr, "No revs to be shown.\n");
exit(0); exit(0);

7
t/t5300-pack-object.sh

@ -163,6 +163,13 @@ test_expect_success \
else :; else :;
fi && fi &&


cp test-1-${packname_1}.pack test-3.pack &&
dd if=/dev/zero of=test-3.idx count=1 bs=1 conv=notrunc seek=1200 &&
if git-verify-pack test-3.pack
then false
else :;
fi &&

:' :'


test_expect_success \ test_expect_success \

Loading…
Cancel
Save