GIT 1.1.0

This commit is contained in:
Junio C Hamano 2006-01-08 14:22:19 -08:00
commit 5a2282de13
36 changed files with 47 additions and 504 deletions

View File

@ -496,12 +496,6 @@ dist: git.spec git-tar-tree
rpm: dist rpm: dist
$(RPMBUILD) -ta $(GIT_TARNAME).tar.gz $(RPMBUILD) -ta $(GIT_TARNAME).tar.gz
deb: dist
rm -rf $(GIT_TARNAME)
$(TAR) zxf $(GIT_TARNAME).tar.gz
dpkg-source -b $(GIT_TARNAME)
cd $(GIT_TARNAME) && fakeroot debian/rules binary
### Cleaning rules ### Cleaning rules
clean: clean:
@ -511,8 +505,6 @@ clean:
rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo
rm -rf $(GIT_TARNAME) rm -rf $(GIT_TARNAME)
rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
rm -f git-core_$(GIT_VERSION)-*.dsc
rm -f git-*_$(GIT_VERSION)-*.deb
$(MAKE) -C Documentation/ clean $(MAKE) -C Documentation/ clean
$(MAKE) -C templates clean $(MAKE) -C templates clean
$(MAKE) -C t/ clean $(MAKE) -C t/ clean

2
blob.c
View File

@ -1,5 +1,5 @@
#include "blob.h"
#include "cache.h" #include "cache.h"
#include "blob.h"
#include <stdlib.h> #include <stdlib.h>
const char *blob_type = "blob"; const char *blob_type = "blob";

View File

@ -81,7 +81,7 @@ struct cache_entry {
unsigned int ce_size; unsigned int ce_size;
unsigned char sha1[20]; unsigned char sha1[20];
unsigned short ce_flags; unsigned short ce_flags;
char name[0]; char name[FLEX_ARRAY]; /* more */
}; };
#define CE_NAMEMASK (0x0fff) #define CE_NAMEMASK (0x0fff)
@ -259,7 +259,7 @@ extern int checkout_entry(struct cache_entry *ce, struct checkout *state);
extern struct alternate_object_database { extern struct alternate_object_database {
struct alternate_object_database *next; struct alternate_object_database *next;
char *name; char *name;
char base[0]; /* more */ char base[FLEX_ARRAY]; /* more */
} *alt_odb_list; } *alt_odb_list;
extern void prepare_alt_odb(void); extern void prepare_alt_odb(void);
@ -273,7 +273,8 @@ extern struct packed_git {
unsigned int pack_use_cnt; unsigned int pack_use_cnt;
int pack_local; int pack_local;
unsigned char sha1[20]; unsigned char sha1[20];
char pack_name[0]; /* something like ".git/objects/pack/xxxxx.pack" */ /* something like ".git/objects/pack/xxxxx.pack" */
char pack_name[FLEX_ARRAY]; /* more */
} *packed_git; } *packed_git;
struct pack_entry { struct pack_entry {
@ -288,7 +289,7 @@ struct ref {
unsigned char new_sha1[20]; unsigned char new_sha1[20];
unsigned char force; unsigned char force;
struct ref *peer_ref; /* when renaming */ struct ref *peer_ref; /* when renaming */
char name[0]; char name[FLEX_ARRAY]; /* more */
}; };
extern int git_connect(int fd[2], char *url, const char *prog); extern int git_connect(int fd[2], char *url, const char *prog);

View File

@ -1,6 +1,6 @@
#include "cache.h"
#include "tag.h" #include "tag.h"
#include "commit.h" #include "commit.h"
#include "cache.h"
int save_commit_buffer = 1; int save_commit_buffer = 1;

6
debian/.gitignore vendored
View File

@ -1,6 +0,0 @@
git-core
git-tk
*.debhelper
*.substvars
build-stamp
files

242
debian/changelog vendored
View File

@ -1,242 +0,0 @@
git-core (1.0.GIT-0) unstable; urgency=low
* Post GIT 1.0 development track.
-- Junio C Hamano <junkio@cox.net> Wed, 21 Dec 2005 22:28:33 -0800
git-core (1.0.0.GIT-0) unstable; urgency=low
* Post GIT 1.0.0 development track.
-- Junio C Hamano <junkio@cox.net> Wed, 21 Dec 2005 12:12:05 -0800
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 1.0.3 maintenance release.
-- Junio C Hamano <junkio@cox.net> Thu, 22 Dec 2005 18:13:33 -0800
git-core (1.0.0b-0) unstable; urgency=low
* GIT 1.0.0b to include two more fixes.
-- Junio C Hamano <junkio@cox.net> Wed, 21 Dec 2005 13:50:21 -0800
git-core (1.0.0a-0) unstable; urgency=low
* GIT 1.0.0a to include the following fixes:
- Avoid misleading success message on error (Johannes)
- objects/info/packs: work around bug in http-fetch.c::fetch_indices()
- http-fetch.c: fix objects/info/pack parsing.
- An off-by-one bug found by valgrind (Pavel)
-- Junio C Hamano <junkio@cox.net> Wed, 21 Dec 2005 13:17:17 -0800
git-core (1.0.0-0) unstable; urgency=low
* GIT 1.0.0
-- Junio C Hamano <junkio@cox.net> Wed, 21 Dec 2005 00:01:00 -0800
git-core (0.99.9n-0) unstable; urgency=low
* GIT 0.99.9n aka 1.0rc6
-- Junio C Hamano <junkio@cox.net> Wed, 14 Dec 2005 17:27:08 -0800
git-core (0.99.9m-0) unstable; urgency=low
* GIT 0.99.9m aka 1.0rc5
-- Junio C Hamano <junkio@cox.net> Sun, 11 Dec 2005 16:48:06 -0800
git-core (0.99.9l-0) unstable; urgency=low
* GIT 0.99.9l aka 1.0rc4
-- Junio C Hamano <junkio@cox.net> Sat, 3 Dec 2005 23:45:23 -0800
git-core (0.99.9k-0) unstable; urgency=low
* GIT 0.99.9k but not 1.0rc yet.
-- Junio C Hamano <junkio@cox.net> Fri, 25 Nov 2005 16:33:11 -0800
git-core (0.99.9j-0) unstable; urgency=low
* GIT 0.99.9j aka 1.0rc3
-- Junio C Hamano <junkio@cox.net> Wed, 16 Nov 2005 20:39:55 -0800
git-core (0.99.9i-0) unstable; urgency=low
* GIT 0.99.9i aka 1.0rc2
-- Junio C Hamano <junkio@cox.net> Mon, 14 Nov 2005 18:38:27 -0800
git-core (0.99.9h-0) unstable; urgency=low
* GIT 0.99.9h
-- Junio C Hamano <junkio@cox.net> Fri, 11 Nov 2005 22:33:18 -0800
git-core (0.99.9g-0) unstable; urgency=low
* GIT 0.99.9g
-- Junio C Hamano <junkio@cox.net> Wed, 9 Nov 2005 21:01:55 -0800
git-core (0.99.9f-0) unstable; urgency=low
* GIT 0.99.9f
-- Junio C Hamano <junkio@cox.net> Tue, 8 Nov 2005 01:21:52 -0800
git-core (0.99.9e-0) unstable; urgency=low
* GIT 0.99.9e
-- Junio C Hamano <junkio@cox.net> Sun, 6 Nov 2005 18:37:18 -0800
git-core (0.99.9d-0) unstable; urgency=low
* GIT 0.99.9d
-- Junio C Hamano <junkio@cox.net> Sat, 5 Nov 2005 11:46:37 -0800
git-core (0.99.9c-0) unstable; urgency=low
* GIT 0.99.9c
-- Junio C Hamano <junkio@cox.net> Thu, 3 Nov 2005 15:44:54 -0800
git-core (0.99.9b-0) unstable; urgency=low
* GIT 0.99.9b
-- Junio C Hamano <junkio@cox.net> Tue, 1 Nov 2005 21:39:39 -0800
git-core (0.99.9a-0) unstable; urgency=low
* GIT 0.99.9a
-- Junio C Hamano <junkio@cox.net> Sun, 30 Oct 2005 15:03:32 -0800
git-core (0.99.9.GIT-2) unstable; urgency=low
* Build Dependency did not include libexpat-dev.
-- Junio C Hamano <junkio@cox.net> Sun, 13 Nov 2005 01:55:34 -0800
git-core (0.99.9.GIT-1) unstable; urgency=low
* Do not scatter txt and html documentation into feature
subpackages. Do place man pages into them.
* Capture more cvs stuff into git-cvs package.
-- Junio C Hamano <junkio@cox.net> Tue, 8 Nov 2005 01:19:06 -0800
git-core (0.99.9.GIT-0) unstable; urgency=low
* Test Build.
-- Junio C Hamano <junkio@cox.net> Sat, 5 Nov 2005 11:18:13 -0800
git-core (0.99.9-1) unstable; urgency=low
* Split the git-core binary package into core, doc, and foreign SCM
interoperability modules.
-- Junio C Hamano <junkio@cox.net> Sat, 5 Nov 2005 11:18:13 -0800
git-core (0.99.9-0) unstable; urgency=low
* GIT 0.99.9
-- Junio C Hamano <junkio@cox.net> Sat, 29 Oct 2005 14:34:30 -0700
git-core (0.99.8-0) unstable; urgency=low
* GIT 0.99.8
-- Junio C Hamano <junkio@cox.net> Sun, 2 Oct 2005 12:54:26 -0700
git-core (0.99.7-0) unstable; urgency=low
* GIT 0.99.7
-- Junio C Hamano <junkio@cox.net> Sat, 10 Sep 2005 18:36:39 -0700
git-core (0.99.6-0) unstable; urgency=low
* GIT 0.99.6
-- Junio C Hamano <junkio@cox.net> Wed, 24 Aug 2005 23:09:35 -0700
git-core (0.99.5-1) unstable; urgency=low
* Enable git-send-email on Debian. There is no reason to shy
away from it, since we have the necessary Perl modules available.
-- Junio C Hamano <junkio@cox.net> Thu, 25 Aug 2005 14:16:59 -0700
git-core (0.99.5-0) unstable; urgency=low
* GIT 0.99.5
-- Junio C Hamano <junkio@cox.net> Wed, 10 Aug 2005 22:05:00 -0700
git-core (0.99.4-4) unstable; urgency=low
* Mark git-tk as architecture neutral.
-- Junio C Hamano <junkio@cox.net> Fri, 12 Aug 2005 13:25:00 -0700
git-core (0.99.4-3) unstable; urgency=low
* Split off gitk.
* Do not depend on diff which is an essential package.
* Use dh_movefiles, not dh_install, to stage two subpackages.
-- Matthias Urlichs <smurf@debian.org> Thu, 11 Aug 2005 01:43:24 +0200
git-core (0.99.4-2) unstable; urgency=low
* Git 0.99.4 official release.
-- Junio C Hamano <junkio@cox.net> Wed, 10 Aug 2005 15:00:00 -0700
git-core (0.99.4-1) unstable; urgency=low
* Pass prefix down to the submake when building.
-- Junio C Hamano <junkio@cox.net> Sat, 6 Aug 2005 13:00:00 -0700
git-core (0.99-2) unstable; urgency=low
* Conflict with the GNU Interactive Tools package, which also installs
/usr/bin/git.
* Use the Mozilla SHA1 code and/or the PPC assembly in preference to
OpenSSL. This is only a partial fix for the license issues with OpenSSL.
* Minor tweaks to the Depends.
-- Ryan Anderson <ryan@michonline.com> Sat, 23 Jul 2005 14:15:00 -0400
git-core (0.99-1) unstable; urgency=low
* Update deb package support to build correctly.
-- Ryan Anderson <ryan@michonline.com> Thu, 21 Jul 2005 02:03:32 -0400
git-core (0.99-0) unstable; urgency=low
* Initial deb package support
-- Eric Biederman <ebiederm@xmission.com> Tue, 12 Jul 2005 10:57:51 -0600

1
debian/compat vendored
View File

@ -1 +0,0 @@
4

63
debian/control vendored
View File

@ -1,63 +0,0 @@
Source: git-core
Section: devel
Priority: optional
Maintainer: Junio C Hamano <junkio@cox.net>
Build-Depends-Indep: libz-dev, libssl-dev, libcurl3-dev|libcurl3-gnutls-dev|libcurl3-openssl-dev, asciidoc (>= 7), xmlto, debhelper (>= 4.0.0), bc, libexpat-dev
Standards-Version: 3.6.1
Package: git-core
Architecture: any
Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}, rcs
Recommends: rsync, curl, ssh, python (>= 2.4.0), less
Suggests: cogito, patch
Conflicts: git, cogito (<< 0.13)
Description: The git content addressable filesystem
GIT comes in two layers. The bottom layer is merely an extremely fast
and flexible filesystem-based database designed to store directory trees
with regard to their history. The top layer is a SCM-like tool which
enables human beings to work with the database in a manner to a degree
similar to other SCM tools.
Package: git-doc
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, git-core
Description: The git content addressable filesystem, Documentation
This package contains documentation for GIT.
Package: git-tk
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, git-core, tk8.4
Description: The git content addressable filesystem, GUI add-on
This package contains 'gitk', the git revision tree visualizer.
Package: git-svn
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, git-core, libsvn-core-perl (>= 1.2.1)
Suggests: subversion
Description: The git content addressable filesystem, SVN interoperability
This package contains 'git-svnimport', to import development history from
SVN repositories.
Package: git-arch
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, git-core
Suggests: tla, bazaar
Description: The git content addressable filesystem, GNUArch interoperability
This package contains 'git-archimport', to import development history from
GNUArch repositories.
Package: git-cvs
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, git-core, cvsps (>= 2.1)
Suggests: cvs
Description: The git content addressable filesystem, CVS interoperability
This package contains 'git-cvsimport', to import development history from
CVS repositories.
Package: git-email
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, git-core, libmail-sendmail-perl, libemail-valid-perl
Description: The git content addressable filesystem, e-mail add-on
This package contains 'git-send-email', to send a series of patch e-mails.

24
debian/copyright vendored
View File

@ -1,24 +0,0 @@
This package was downloaded from ftp.kernel.org:/pub/software/scm/git/.
Upstream Author: Linus Torvalds and many others
Copyright:
Copyright 2005, Linus Torvalds and others.
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.

1
debian/docs vendored
View File

@ -1 +0,0 @@
README

View File

@ -1,2 +0,0 @@
/usr/bin/git-arch*
/usr/share/man/*/git-arch*

View File

@ -1,13 +0,0 @@
Document: git-core
Title: git reference
Abstract: This manual describes git
Section: Devel
Format: HTML
Index: /usr/share/doc/git-core/git.html
Files: /usr/share/doc/git-core/*.html
/usr/share/doc/git-core/*/*.html
Format: text
Files: /usr/share/doc/git-core/*.txt
/usr/share/doc/git-core/*/*.txt

View File

@ -1 +0,0 @@
/usr

View File

@ -1,2 +0,0 @@
/usr/bin/git-cvs*
/usr/share/man/*/git-cvs*

View File

@ -1,4 +0,0 @@
/usr/share/doc/git-core/*.txt
/usr/share/doc/git-core/*.html
/usr/share/doc/git-core/*/*.html
/usr/share/doc/git-core/*/*.txt

View File

@ -1,2 +0,0 @@
/usr/bin/git-send-email
/usr/share/man/*/git-send-email.*

View File

@ -1,2 +0,0 @@
/usr/bin/git-svn*
/usr/share/man/*/git-svn*

2
debian/git-tk.files vendored
View File

@ -1,2 +0,0 @@
/usr/bin/gitk
/usr/share/man/man1/gitk.*

109
debian/rules vendored
View File

@ -1,109 +0,0 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
CFLAGS = -g -Wall
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
export CFLAGS
#
# On PowerPC we compile against the hand-crafted assembly, on all
# other architectures we compile against GPL'ed sha1 code lifted
# from Mozilla. OpenSSL is strangely licensed and best avoided
# in Debian.
#
HOST_ARCH=$(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq (${HOST_ARCH},powerpc)
export PPC_SHA1=YesPlease
else
export MOZILLA_SHA1=YesPlease
endif
# We do have the requisite perl modules in the mainline, and
# have no reason to shy away from this script.
export WITH_SEND_EMAIL=YesPlease
PREFIX := /usr
MANDIR := /usr/share/man/
SRC := ./
DOC := Documentation/
DESTDIR := $(CURDIR)/debian/tmp
DOC_DESTDIR := $(DESTDIR)/usr/share/doc/git-core/
MAN_DESTDIR := $(DESTDIR)/$(MANDIR)
build: debian/build-stamp
debian/build-stamp:
dh_testdir
$(MAKE) prefix=$(PREFIX) PYTHON_PATH=/usr/bin/python2.4 all test doc
touch debian/build-stamp
debian-clean:
dh_testdir
dh_testroot
rm -f debian/build-stamp
dh_clean
clean: debian-clean
$(MAKE) clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
make DESTDIR=$(DESTDIR) prefix=$(PREFIX) mandir=$(MANDIR) \
install install-doc
make -C Documentation DESTDIR=$(DESTDIR) prefix=$(PREFIX) \
WEBDOC_DEST=$(DOC_DESTDIR) install-webdoc
dh_movefiles -p git-arch
dh_movefiles -p git-cvs
dh_movefiles -p git-svn
dh_movefiles -p git-tk
dh_movefiles -p git-email
dh_movefiles -p git-doc
dh_movefiles -p git-core
find debian/tmp -type d -o -print | sed -e 's/^/? /'
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs -a
dh_installdocs -a
dh_strip -a
dh_compress -a
dh_fixperms -a
dh_perl -a
dh_makeshlibs -a
dh_installdeb -a
dh_shlibdeps -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary-indep: build install
dh_testdir
dh_testroot
dh_installchangelogs -i
dh_installdocs -i
dh_compress -i
dh_fixperms -i
dh_makeshlibs -i
dh_installdeb -i
dh_shlibdeps -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
binary: binary-arch binary-indep
.PHONY: build clean binary install clean debian-clean

View File

@ -18,7 +18,7 @@ static int names = 0, allocs = 0;
static struct commit_name { static struct commit_name {
const struct commit *commit; const struct commit *commit;
int prio; /* annotated tag = 2, tag = 1, head = 0 */ int prio; /* annotated tag = 2, tag = 1, head = 0 */
char path[]; char path[FLEX_ARRAY]; /* more */
} **name_array = NULL; } **name_array = NULL;
static struct commit_name *match(struct commit *cmit) static struct commit_name *match(struct commit *cmit)

View File

@ -1,6 +1,14 @@
#ifndef GIT_COMPAT_UTIL_H #ifndef GIT_COMPAT_UTIL_H
#define GIT_COMPAT_UTIL_H #define GIT_COMPAT_UTIL_H
#ifndef FLEX_ARRAY
#if defined(__GNUC__) && (__GNUC__ < 3)
#define FLEX_ARRAY 0
#else
#define FLEX_ARRAY /* empty */
#endif
#endif
#include <unistd.h> #include <unistd.h>
#include <stdio.h> #include <stdio.h>
#include <sys/stat.h> #include <sys/stat.h>

View File

@ -103,8 +103,16 @@ undef @files; # don't need it anymore
# check that the files are clean and up to date according to cvs # check that the files are clean and up to date according to cvs
my $dirty; my $dirty;
foreach my $f (@afiles, @mfiles, @dfiles) { foreach my $f (@afiles) {
# TODO:we need to handle removed in cvs and/or new (from git) my $status = `cvs -q status "$f" | grep '^File: '`;
unless ($status =~ m/Status: Unknown$/) {
$dirty = 1;
warn "File $f is already known in your CVS checkout!\n";
}
}
foreach my $f (@mfiles, @dfiles) {
# TODO:we need to handle removed in cvs
my $status = `cvs -q status "$f" | grep '^File: '`; my $status = `cvs -q status "$f" | grep '^File: '`;
unless ($status =~ m/Status: Up-to-date$/) { unless ($status =~ m/Status: Up-to-date$/) {

View File

@ -649,6 +649,7 @@ my $commit = sub {
my($xtag) = $tag; my($xtag) = $tag;
$xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY ** $xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY **
$xtag =~ tr/_/\./ if ( $opt_u ); $xtag =~ tr/_/\./ if ( $opt_u );
$xtag =~ s/[\/]/$opt_s/g;
my $pid = open2($in, $out, 'git-mktag'); my $pid = open2($in, $out, 'git-mktag');
print $out "object $cid\n". print $out "object $cid\n".

View File

@ -9,8 +9,10 @@ one file per patch, for e-mail submission. Each output file is
numbered sequentially from 1, and uses the first line of the commit numbered sequentially from 1, and uses the first line of the commit
message (massaged for pathname safety) as the filename. message (massaged for pathname safety) as the filename.
When -o is specified, output files are created in that directory; otherwise in There are three output modes. By default, output files are created in
the current working directory. the current working directory; when -o is specified, they are created
in that directory instead; when --stdout is specified, they are spit
on standard output, and can be piped to git-am.
When -n is specified, instead of "[PATCH] Subject", the first line is formatted When -n is specified, instead of "[PATCH] Subject", the first line is formatted
as "[PATCH N/M] Subject", unless you have only one patch. as "[PATCH N/M] Subject", unless you have only one patch.

View File

@ -33,8 +33,7 @@ sed -ne '/unreachable /{
git-prune-packed $dryrun git-prune-packed $dryrun
redundant=$(git-pack-redundant --all) if redundant=$(git-pack-redundant --all 2>/dev/null) && test "" != "$redundant"
if test "" != "$redundant"
then then
if test "" = "$dryrun" if test "" = "$dryrun"
then then

View File

@ -93,6 +93,7 @@ revert)
cherry-pick) cherry-pick)
pick_author_script=' pick_author_script='
/^author /{ /^author /{
s/'\''/'\''\\'\'\''/g
h h
s/^author \([^<]*\) <[^>]*> .*$/\1/ s/^author \([^<]*\) <[^>]*> .*$/\1/
s/'\''/'\''\'\'\''/g s/'\''/'\''\'\'\''/g

View File

@ -209,7 +209,7 @@ static int excluded(const char *pathname)
struct nond_on_fs { struct nond_on_fs {
int len; int len;
char name[0]; char name[FLEX_ARRAY]; /* more */
}; };
static struct nond_on_fs **dir; static struct nond_on_fs **dir;

View File

@ -169,8 +169,11 @@ int main(int argc, const char **argv)
if ( !f ) if ( !f )
die ("cannot open mbox %s", file); die ("cannot open mbox %s", file);
if (fgets(buf, sizeof(buf), f) == NULL) if (fgets(buf, sizeof(buf), f) == NULL) {
if (f == stdin)
break; /* empty stdin is OK */
die("cannot read mbox %s", file); die("cannot read mbox %s", file);
}
while (!file_done) { while (!file_done) {
sprintf(name, "%s/%0*d", dir, nr_prec, ++nr); sprintf(name, "%s/%0*d", dir, nr_prec, ++nr);

View File

@ -1,8 +1,8 @@
#include "cache.h"
#include "object.h" #include "object.h"
#include "blob.h" #include "blob.h"
#include "tree.h" #include "tree.h"
#include "commit.h" #include "commit.h"
#include "cache.h"
#include "tag.h" #include "tag.h"
struct object **objs; struct object **objs;

View File

@ -9,7 +9,7 @@ struct object_list {
struct object_refs { struct object_refs {
unsigned count; unsigned count;
struct object *ref[0]; struct object *ref[FLEX_ARRAY]; /* more */
}; };
struct object { struct object {

View File

@ -37,7 +37,7 @@ struct command {
const char *error_string; const char *error_string;
unsigned char old_sha1[20]; unsigned char old_sha1[20];
unsigned char new_sha1[20]; unsigned char new_sha1[20];
char ref_name[0]; char ref_name[FLEX_ARRAY]; /* more */
}; };
static struct command *commands = NULL; static struct command *commands = NULL;

View File

@ -74,7 +74,7 @@ test_debug 'show_files $tree3'
test_expect_success \ test_expect_success \
'read previously written tree and checkout.' \ 'read previously written tree and checkout.' \
'git-read-tree $tree2 && git-checkout-index -f -a' 'git-read-tree $tree2 && git-checkout-index -f -a'
test_debug show_files $tree2 test_debug 'show_files $tree2'
test_expect_success \ test_expect_success \
'checking out conflicting path with -f' \ 'checking out conflicting path with -f' \

2
tag.c
View File

@ -1,5 +1,5 @@
#include "tag.h"
#include "cache.h" #include "cache.h"
#include "tag.h"
const char *tag_type = "tag"; const char *tag_type = "tag";

View File

@ -433,7 +433,7 @@ int main(int argc, char **argv)
archive_time = time(NULL); archive_time = time(NULL);
if (basedir) if (basedir)
write_header((unsigned char *)"0", TYPEFLAG_DIR, NULL, NULL, write_header((unsigned char *)"0", TYPEFLAG_DIR, NULL, NULL,
basedir, 040755, NULL, 0); basedir, 040777, NULL, 0);
traverse_tree(buffer, size, NULL); traverse_tree(buffer, size, NULL);
free(buffer); free(buffer);
write_trailer(); write_trailer();

2
tree.c
View File

@ -1,8 +1,8 @@
#include "cache.h"
#include "tree.h" #include "tree.h"
#include "blob.h" #include "blob.h"
#include "commit.h" #include "commit.h"
#include "tag.h" #include "tag.h"
#include "cache.h"
#include <stdlib.h> #include <stdlib.h>
const char *tree_type = "tree"; const char *tree_type = "tree";

View File

@ -269,6 +269,8 @@ int main(int argc, char **argv)
setup_git_directory(); setup_git_directory();
quiet = !isatty(2);
for (i = 1 ; i < argc; i++) { for (i = 1 ; i < argc; i++) {
const char *arg = argv[i]; const char *arg = argv[i];