зеркало из https://github.com/microsoft/git.git
Merge master changes into release candidate branch.
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Коммит
755d62788f
|
@ -11,6 +11,7 @@ bin=$(prefix)/bin
|
||||||
mandir=$(prefix)/man
|
mandir=$(prefix)/man
|
||||||
man1=$(mandir)/man1
|
man1=$(mandir)/man1
|
||||||
man7=$(mandir)/man7
|
man7=$(mandir)/man7
|
||||||
|
# DESTDIR=
|
||||||
|
|
||||||
INSTALL=install
|
INSTALL=install
|
||||||
|
|
||||||
|
@ -33,9 +34,9 @@ man1: $(DOC_MAN1)
|
||||||
man7: $(DOC_MAN7)
|
man7: $(DOC_MAN7)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(INSTALL) -m755 -d $(dest)/$(man1) $(dest)/$(man7)
|
$(INSTALL) -m755 -d $(DESTDIR)/$(man1) $(DESTDIR)/$(man7)
|
||||||
$(INSTALL) $(DOC_MAN1) $(dest)/$(man1)
|
$(INSTALL) $(DOC_MAN1) $(DESTDIR)/$(man1)
|
||||||
$(INSTALL) $(DOC_MAN7) $(dest)/$(man7)
|
$(INSTALL) $(DOC_MAN7) $(DESTDIR)/$(man7)
|
||||||
|
|
||||||
# 'include' dependencies
|
# 'include' dependencies
|
||||||
git-diff-%.txt: diff-format.txt diff-options.txt
|
git-diff-%.txt: diff-format.txt diff-options.txt
|
||||||
|
|
|
@ -9,19 +9,19 @@ git-fetch-pack - Receive missing objects from another repository.
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
git-fetch-pack [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<head>...] < <commit-list>
|
git-fetch-pack [-q] [--exec=<git-upload-pack>] [<host>:]<directory> [<refs>...]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Invokes 'git-upload-pack' on a potentially remote repository,
|
Invokes 'git-upload-pack' on a potentially remote repository,
|
||||||
and asks it to send objects missing from this repository, to
|
and asks it to send objects missing from this repository, to
|
||||||
update the named heads. The list of commits available locally
|
update the named heads. The list of commits available locally
|
||||||
is fed from the standard input, to be sent to 'git-upload-pack'
|
is found out by scanning local $GIT_DIR/refs/ and sent to
|
||||||
running on the other end.
|
'git-upload-pack' running on the other end.
|
||||||
|
|
||||||
This command can be used only when the local side has a common
|
This command degenerates to download everything to complete the
|
||||||
(ancestor) commit with the remote head that is being pulled
|
asked refs from the remote side when the local side does not
|
||||||
from. Use 'git-clone-pack' for that.
|
have a common ancestor commit.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -50,15 +50,11 @@ OPTIONS
|
||||||
<directory>::
|
<directory>::
|
||||||
The repository to sync from.
|
The repository to sync from.
|
||||||
|
|
||||||
<head>...::
|
<refs>...::
|
||||||
The remote heads to update from. This is relative to
|
The remote heads to update from. This is relative to
|
||||||
$GIT_DIR (e.g. "HEAD", "refs/heads/master"). When
|
$GIT_DIR (e.g. "HEAD", "refs/heads/master"). When
|
||||||
unspecified, update from all heads the remote side has.
|
unspecified, update from all heads the remote side has.
|
||||||
|
|
||||||
However the program refuses to work if more than one
|
|
||||||
remote head matches the specified heads. I am not sure
|
|
||||||
what this means... Help!!!!!
|
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
|
|
@ -9,7 +9,7 @@ git-unpack-objects - Unpack objects from a packed archive.
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
'git-unpack-objects' < pack-file
|
'git-unpack-objects' [-q] <pack-file
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
|
@ -18,6 +18,12 @@ Reads a packed archive (.pack) from the standard input, and
|
||||||
expands the objects contained in the pack into "one-file
|
expands the objects contained in the pack into "one-file
|
||||||
one-object" format in $GIT_OBJECT_DIRECTORY.
|
one-object" format in $GIT_OBJECT_DIRECTORY.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-------
|
||||||
|
-q::
|
||||||
|
The command usually shows percentage progress. This
|
||||||
|
flag suppresses it.
|
||||||
|
|
||||||
|
|
||||||
Author
|
Author
|
||||||
------
|
------
|
||||||
|
|
89
Makefile
89
Makefile
|
@ -32,24 +32,24 @@
|
||||||
|
|
||||||
# DEFINES += -DUSE_STDEV
|
# DEFINES += -DUSE_STDEV
|
||||||
|
|
||||||
GIT_VERSION=0.99.5
|
GIT_VERSION = 0.99.5
|
||||||
|
|
||||||
COPTS?=-g -O2
|
CFLAGS = -g -O2 -Wall
|
||||||
CFLAGS+=$(COPTS) -Wall $(DEFINES)
|
ALL_CFLAGS = $(CFLAGS) $(DEFINES)
|
||||||
|
|
||||||
prefix=$(HOME)
|
prefix = $(HOME)
|
||||||
bindir=$(prefix)/bin
|
bindir = $(prefix)/bin
|
||||||
template_dir=$(prefix)/share/git-core/templates/
|
template_dir = $(prefix)/share/git-core/templates/
|
||||||
# dest=
|
# DESTDIR=
|
||||||
|
|
||||||
CC?=gcc
|
CC = gcc
|
||||||
AR?=ar
|
AR = ar
|
||||||
INSTALL?=install
|
INSTALL = install
|
||||||
RPMBUILD?=rpmbuild
|
RPMBUILD = rpmbuild
|
||||||
|
|
||||||
# sparse is architecture-neutral, which means that we need to tell it
|
# sparse is architecture-neutral, which means that we need to tell it
|
||||||
# explicitly what architecture to check for. Fix this up for yours..
|
# explicitly what architecture to check for. Fix this up for yours..
|
||||||
SPARSE_FLAGS?=-D__BIG_ENDIAN__ -D__powerpc__
|
SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ PROG= git-update-cache git-diff-files git-init-db git-write-tree \
|
||||||
git-update-server-info git-show-rev-cache git-build-rev-cache
|
git-update-server-info git-show-rev-cache git-build-rev-cache
|
||||||
|
|
||||||
ifndef NO_CURL
|
ifndef NO_CURL
|
||||||
PROG+= git-http-pull
|
PROG+= git-http-pull
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIB_FILE=libgit.a
|
LIB_FILE=libgit.a
|
||||||
|
@ -125,28 +125,28 @@ ifndef NO_OPENSSL
|
||||||
LIB_OBJS += epoch.o
|
LIB_OBJS += epoch.o
|
||||||
OPENSSL_LIBSSL=-lssl
|
OPENSSL_LIBSSL=-lssl
|
||||||
else
|
else
|
||||||
CFLAGS += '-DNO_OPENSSL'
|
DEFINES += '-DNO_OPENSSL'
|
||||||
MOZILLA_SHA1=1
|
MOZILLA_SHA1=1
|
||||||
OPENSSL_LIBSSL=
|
OPENSSL_LIBSSL=
|
||||||
endif
|
endif
|
||||||
ifdef MOZILLA_SHA1
|
ifdef MOZILLA_SHA1
|
||||||
SHA1_HEADER="mozilla-sha1/sha1.h"
|
SHA1_HEADER="mozilla-sha1/sha1.h"
|
||||||
LIB_OBJS += mozilla-sha1/sha1.o
|
LIB_OBJS += mozilla-sha1/sha1.o
|
||||||
else
|
else
|
||||||
ifdef PPC_SHA1
|
ifdef PPC_SHA1
|
||||||
SHA1_HEADER="ppc/sha1.h"
|
SHA1_HEADER="ppc/sha1.h"
|
||||||
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
|
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
|
||||||
else
|
else
|
||||||
SHA1_HEADER=<openssl/sha.h>
|
SHA1_HEADER=<openssl/sha.h>
|
||||||
ifeq ($(shell uname -s),Darwin)
|
ifeq ($(shell uname -s),Darwin)
|
||||||
LIBS += -lcrypto -lssl
|
LIBS += -lcrypto -lssl
|
||||||
else
|
else
|
||||||
LIBS += -lcrypto
|
LIBS += -lcrypto
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += '-DSHA1_HEADER=$(SHA1_HEADER)'
|
DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -156,12 +156,15 @@ all: $(PROG)
|
||||||
|
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C templates
|
$(MAKE) -C templates
|
||||||
|
$(MAKE) -C tools
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) -o $*.o -c $(ALL_CFLAGS) $<
|
||||||
|
%.o: %.S
|
||||||
|
$(CC) -o $*.o -c $(ALL_CFLAGS) $<
|
||||||
|
|
||||||
.SECONDARY: %.o
|
|
||||||
.c.o:
|
|
||||||
$(CC) $(CFLAGS) -o $*.o -c $*.c
|
|
||||||
git-%: %.o $(LIB_FILE)
|
git-%: %.o $(LIB_FILE)
|
||||||
$(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
|
$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
|
||||||
|
|
||||||
git-http-pull: pull.o
|
git-http-pull: pull.o
|
||||||
git-local-pull: pull.o
|
git-local-pull: pull.o
|
||||||
|
@ -172,7 +175,8 @@ git-http-pull: LIBS += -lcurl
|
||||||
git-rev-list: LIBS += $(OPENSSL_LIBSSL)
|
git-rev-list: LIBS += $(OPENSSL_LIBSSL)
|
||||||
|
|
||||||
init-db.o: init-db.c
|
init-db.o: init-db.c
|
||||||
$(CC) -c $(CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
|
$(CC) -c $(ALL_CFLAGS) \
|
||||||
|
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
|
||||||
|
|
||||||
$(LIB_OBJS): $(LIB_H)
|
$(LIB_OBJS): $(LIB_H)
|
||||||
$(patsubst git-%,%.o,$(PROG)): $(LIB_H)
|
$(patsubst git-%,%.o,$(PROG)): $(LIB_H)
|
||||||
|
@ -192,24 +196,22 @@ test: all
|
||||||
$(MAKE) -C t/ all
|
$(MAKE) -C t/ all
|
||||||
|
|
||||||
test-date: test-date.c date.o
|
test-date: test-date.c date.o
|
||||||
$(CC) $(CFLAGS) -o $@ test-date.c date.o
|
$(CC) $(ALL_CFLAGS) -o $@ test-date.c date.o
|
||||||
|
|
||||||
test-delta: test-delta.c diff-delta.o patch-delta.o
|
test-delta: test-delta.c diff-delta.o patch-delta.o
|
||||||
$(CC) $(CFLAGS) -o $@ $^
|
$(CC) $(ALL_CFLAGS) -o $@ $^
|
||||||
|
|
||||||
check:
|
check:
|
||||||
for i in *.c; do sparse $(CFLAGS) $(SPARSE_FLAGS) $$i; done
|
for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Installation rules
|
### Installation rules
|
||||||
|
|
||||||
install: $(PROG) $(SCRIPTS)
|
install: $(PROG) $(SCRIPTS)
|
||||||
$(INSTALL) -m755 -d $(dest)$(bindir)
|
$(INSTALL) -m755 -d $(DESTDIR)$(bindir)
|
||||||
$(INSTALL) $(PROG) $(SCRIPTS) $(dest)$(bindir)
|
$(INSTALL) $(PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
|
||||||
$(MAKE) -C templates install
|
$(MAKE) -C templates install
|
||||||
|
|
||||||
install-tools:
|
|
||||||
$(MAKE) -C tools install
|
$(MAKE) -C tools install
|
||||||
|
|
||||||
install-doc:
|
install-doc:
|
||||||
|
@ -238,15 +240,18 @@ rpm: dist
|
||||||
deb: dist
|
deb: dist
|
||||||
rm -rf $(GIT_TARNAME)
|
rm -rf $(GIT_TARNAME)
|
||||||
tar zxf $(GIT_TARNAME).tar.gz
|
tar zxf $(GIT_TARNAME).tar.gz
|
||||||
|
dpkg-source -b $(GIT_TARNAME)
|
||||||
cd $(GIT_TARNAME) && fakeroot debian/rules binary
|
cd $(GIT_TARNAME) && fakeroot debian/rules binary
|
||||||
|
|
||||||
### Cleaning rules
|
### Cleaning rules
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o mozilla-sha1/*.o ppc/*.o $(PROG) $(LIB_FILE)
|
rm -f *.o mozilla-sha1/*.o ppc/*.o $(PROG) $(LIB_FILE)
|
||||||
rm -f $(GIT_TARNAME).tar.gz git-core.spec
|
rm -f git-core.spec
|
||||||
rm -f git-core_$(GIT_VERSION)-*.deb git-tk_$(GIT_VERSION)-*.deb
|
|
||||||
rm -rf $(GIT_TARNAME)
|
rm -rf $(GIT_TARNAME)
|
||||||
|
rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
|
||||||
|
rm -f git-core_$(GIT_VERSION)-*.deb git-core_$(GIT_VERSION)-*.dsc
|
||||||
|
rm -f git-tk_$(GIT_VERSION)-*.deb
|
||||||
$(MAKE) -C tools/ clean
|
$(MAKE) -C tools/ clean
|
||||||
$(MAKE) -C Documentation/ clean
|
$(MAKE) -C Documentation/ clean
|
||||||
$(MAKE) -C templates/ clean
|
$(MAKE) -C templates/ clean
|
||||||
|
|
|
@ -4,6 +4,12 @@ git-core (0.99.5-0) unstable; urgency=low
|
||||||
|
|
||||||
-- Junio C Hamano <junkio@cox.net> Wed, 10 Aug 2005 22:05:00 -0700
|
-- 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
|
git-core (0.99.4-3) unstable; urgency=low
|
||||||
|
|
||||||
* Split off gitk.
|
* Split off gitk.
|
||||||
|
|
|
@ -7,7 +7,7 @@ Standards-Version: 3.6.1
|
||||||
|
|
||||||
Package: git-core
|
Package: git-core
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, patch, rcs
|
Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}, patch, rcs
|
||||||
Recommends: rsync, curl, ssh, libmail-sendmail-perl, libemail-valid-perl
|
Recommends: rsync, curl, ssh, libmail-sendmail-perl, libemail-valid-perl
|
||||||
Conflicts: git
|
Conflicts: git
|
||||||
Description: The git content addressable filesystem
|
Description: The git content addressable filesystem
|
||||||
|
@ -18,7 +18,7 @@ Description: The git content addressable filesystem
|
||||||
similar to other SCM tools.
|
similar to other SCM tools.
|
||||||
|
|
||||||
Package: git-tk
|
Package: git-tk
|
||||||
Architecture: any
|
Architecture: all
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, git-core, tk8.4
|
Depends: ${shlibs:Depends}, ${misc:Depends}, git-core, tk8.4
|
||||||
Description: The git content addressable filesystem, GUI add-on
|
Description: The git content addressable filesystem, GUI add-on
|
||||||
This package contains 'gitk', the git revision tree visualizer.
|
This package contains 'gitk', the git revision tree visualizer.
|
||||||
|
|
|
@ -56,7 +56,8 @@ install: build
|
||||||
dh_clean -k
|
dh_clean -k
|
||||||
dh_installdirs
|
dh_installdirs
|
||||||
|
|
||||||
make dest=$(DESTDIR) prefix=$(PREFIX) mandir=$(MANDIR) install install-tools install-doc
|
make DESTDIR=$(DESTDIR) prefix=$(PREFIX) mandir=$(MANDIR) \
|
||||||
|
install install-doc
|
||||||
|
|
||||||
mkdir -p $(DOC_DESTDIR)
|
mkdir -p $(DOC_DESTDIR)
|
||||||
find $(DOC) '(' -name '*.txt' -o -name '*.html' ')' -exec install {} $(DOC_DESTDIR) ';'
|
find $(DOC) '(' -name '*.txt' -o -name '*.html' ')' -exec install {} $(DOC_DESTDIR) ';'
|
||||||
|
@ -65,33 +66,36 @@ install: build
|
||||||
dh_movefiles -p git-core
|
dh_movefiles -p git-core
|
||||||
find debian/tmp -type d -o -print | sed -e 's/^/? /'
|
find debian/tmp -type d -o -print | sed -e 's/^/? /'
|
||||||
|
|
||||||
binary: build install
|
binary-arch: build install
|
||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
dh_installchangelogs
|
dh_installchangelogs -a
|
||||||
dh_installdocs
|
dh_installdocs -a
|
||||||
dh_installexamples
|
dh_strip -a
|
||||||
# dh_installmenu
|
dh_compress -a
|
||||||
# dh_installdebconf
|
dh_fixperms -a
|
||||||
# dh_installlogrotate
|
dh_perl -a
|
||||||
# dh_installemacsen
|
dh_makeshlibs -a
|
||||||
# dh_installpam
|
dh_installdeb -a
|
||||||
# dh_installmime
|
dh_shlibdeps -a
|
||||||
# dh_installinit
|
dh_gencontrol -a
|
||||||
# dh_installcron
|
dh_md5sums -a
|
||||||
# dh_installinfo
|
dh_builddeb -a
|
||||||
dh_installman
|
|
||||||
dh_link
|
binary-indep: build install
|
||||||
dh_strip
|
dh_testdir
|
||||||
dh_compress
|
dh_testroot
|
||||||
dh_fixperms
|
dh_installchangelogs -i
|
||||||
# dh_perl
|
dh_installdocs -i
|
||||||
# dh_python
|
dh_compress -i
|
||||||
dh_makeshlibs
|
dh_fixperms -i
|
||||||
dh_installdeb
|
dh_makeshlibs -i
|
||||||
dh_shlibdeps
|
dh_installdeb -i
|
||||||
dh_gencontrol
|
dh_shlibdeps -i
|
||||||
dh_md5sums
|
dh_gencontrol -i
|
||||||
dh_builddeb
|
dh_md5sums -i
|
||||||
|
dh_builddeb -i
|
||||||
|
|
||||||
|
binary: binary-arch binary-indep
|
||||||
|
|
||||||
.PHONY: build clean binary install clean debian-clean
|
.PHONY: build clean binary install clean debian-clean
|
||||||
|
|
56
fetch-pack.c
56
fetch-pack.c
|
@ -4,10 +4,13 @@
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
static int quiet;
|
static int quiet;
|
||||||
static const char fetch_pack_usage[] = "git-fetch-pack [-q] [--exec=upload-pack] [host:]directory [heads]* < mycommitlist";
|
static int verbose;
|
||||||
|
static const char fetch_pack_usage[] =
|
||||||
|
"git-fetch-pack [-q] [-v] [--exec=upload-pack] [host:]directory <refs>...";
|
||||||
static const char *exec = "git-upload-pack";
|
static const char *exec = "git-upload-pack";
|
||||||
|
|
||||||
static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *remote)
|
static int find_common(int fd[2], unsigned char *result_sha1,
|
||||||
|
struct ref *refs)
|
||||||
{
|
{
|
||||||
static char line[1000];
|
static char line[1000];
|
||||||
int count = 0, flushes = 0, retval;
|
int count = 0, flushes = 0, retval;
|
||||||
|
@ -16,7 +19,16 @@ static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *rem
|
||||||
revs = popen("git-rev-list $(git-rev-parse --all)", "r");
|
revs = popen("git-rev-list $(git-rev-parse --all)", "r");
|
||||||
if (!revs)
|
if (!revs)
|
||||||
die("unable to run 'git-rev-list'");
|
die("unable to run 'git-rev-list'");
|
||||||
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
|
|
||||||
|
while (refs) {
|
||||||
|
unsigned char *remote = refs->old_sha1;
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stderr,
|
||||||
|
"want %s (%s)\n", sha1_to_hex(remote),
|
||||||
|
refs->name);
|
||||||
|
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
|
||||||
|
refs = refs->next;
|
||||||
|
}
|
||||||
packet_flush(fd[1]);
|
packet_flush(fd[1]);
|
||||||
flushes = 1;
|
flushes = 1;
|
||||||
retval = -1;
|
retval = -1;
|
||||||
|
@ -25,6 +37,8 @@ static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *rem
|
||||||
if (get_sha1_hex(line, sha1))
|
if (get_sha1_hex(line, sha1))
|
||||||
die("git-fetch-pack: expected object name, got crud");
|
die("git-fetch-pack: expected object name, got crud");
|
||||||
packet_write(fd[1], "have %s\n", sha1_to_hex(sha1));
|
packet_write(fd[1], "have %s\n", sha1_to_hex(sha1));
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stderr, "have %s\n", sha1_to_hex(sha1));
|
||||||
if (!(31 & ++count)) {
|
if (!(31 & ++count)) {
|
||||||
packet_flush(fd[1]);
|
packet_flush(fd[1]);
|
||||||
flushes++;
|
flushes++;
|
||||||
|
@ -38,6 +52,8 @@ static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *rem
|
||||||
if (get_ack(fd[0], result_sha1)) {
|
if (get_ack(fd[0], result_sha1)) {
|
||||||
flushes = 0;
|
flushes = 0;
|
||||||
retval = 0;
|
retval = 0;
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stderr, "got ack\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
flushes--;
|
flushes--;
|
||||||
|
@ -45,19 +61,19 @@ static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *rem
|
||||||
}
|
}
|
||||||
pclose(revs);
|
pclose(revs);
|
||||||
packet_write(fd[1], "done\n");
|
packet_write(fd[1], "done\n");
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stderr, "done\n");
|
||||||
while (flushes) {
|
while (flushes) {
|
||||||
flushes--;
|
flushes--;
|
||||||
if (get_ack(fd[0], result_sha1))
|
if (get_ack(fd[0], result_sha1)) {
|
||||||
|
if (verbose)
|
||||||
|
fprintf(stderr, "got ack\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Eventually we'll want to be able to fetch multiple heads.
|
|
||||||
*
|
|
||||||
* Right now we'll just require a single match.
|
|
||||||
*/
|
|
||||||
static int fetch_pack(int fd[2], int nr_match, char **match)
|
static int fetch_pack(int fd[2], int nr_match, char **match)
|
||||||
{
|
{
|
||||||
struct ref *ref;
|
struct ref *ref;
|
||||||
|
@ -70,12 +86,8 @@ static int fetch_pack(int fd[2], int nr_match, char **match)
|
||||||
packet_flush(fd[1]);
|
packet_flush(fd[1]);
|
||||||
die("no matching remote head");
|
die("no matching remote head");
|
||||||
}
|
}
|
||||||
if (ref->next) {
|
if (find_common(fd, sha1, ref) < 0)
|
||||||
packet_flush(fd[1]);
|
fprintf(stderr, "warning: no common commits\n");
|
||||||
die("multiple remote heads");
|
|
||||||
}
|
|
||||||
if (find_common(fd, sha1, ref->old_sha1) < 0)
|
|
||||||
die("git-fetch-pack: no common commits");
|
|
||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
die("git-fetch-pack: unable to fork off git-unpack-objects");
|
die("git-fetch-pack: unable to fork off git-unpack-objects");
|
||||||
|
@ -97,7 +109,11 @@ static int fetch_pack(int fd[2], int nr_match, char **match)
|
||||||
int code = WEXITSTATUS(status);
|
int code = WEXITSTATUS(status);
|
||||||
if (code)
|
if (code)
|
||||||
die("git-unpack-objects died with error code %d", code);
|
die("git-unpack-objects died with error code %d", code);
|
||||||
puts(sha1_to_hex(ref->old_sha1));
|
while (ref) {
|
||||||
|
printf("%s %s\n",
|
||||||
|
sha1_to_hex(ref->old_sha1), ref->name);
|
||||||
|
ref = ref->next;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (WIFSIGNALED(status)) {
|
if (WIFSIGNALED(status)) {
|
||||||
|
@ -124,6 +140,14 @@ int main(int argc, char **argv)
|
||||||
exec = arg + 7;
|
exec = arg + 7;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!strcmp("-q", arg)) {
|
||||||
|
quiet = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!strcmp("-v", arg)) {
|
||||||
|
verbose = 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
usage(fetch_pack_usage);
|
usage(fetch_pack_usage);
|
||||||
}
|
}
|
||||||
dest = arg;
|
dest = arg;
|
||||||
|
|
|
@ -28,8 +28,8 @@ make prefix=%{_prefix} all %{!?_without_docs: doc}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
make dest=$RPM_BUILD_ROOT prefix=%{_prefix} mandir=%{_mandir} \
|
make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} mandir=%{_mandir} \
|
||||||
install install-tools %{!?_without_docs: install-doc}
|
install %{!?_without_docs: install-doc}
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
|
@ -31,6 +31,10 @@ rsync://*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
head=$(git-fetch-pack "$merge_repo" "$merge_head")
|
head=$(git-fetch-pack "$merge_repo" "$merge_head")
|
||||||
|
if h=`expr "$head" : '\([^ ][^ ]*\) '`
|
||||||
|
then
|
||||||
|
head=$h
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac || exit 1
|
esac || exit 1
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
. git-sh-setup-script || die "Not a git archive."
|
. git-sh-setup-script || die "Not a git archive."
|
||||||
|
|
||||||
usage () {
|
usage () {
|
||||||
echo >&2 "usage: $0"' [-n] [-o dir] [--mbox] [--check] [-<diff options>...] upstream [ our-head ]
|
echo >&2 "usage: $0"' [-n] [-o dir] [--mbox] [--check] [--sign] [-<diff options>...] upstream [ our-head ]
|
||||||
|
|
||||||
Prepare each commit with its patch since our-head forked from upstream,
|
Prepare each commit with its patch since our-head forked from upstream,
|
||||||
one file per patch, for e-mail submission. Each output file is
|
one file per patch, for e-mail submission. Each output file is
|
||||||
|
@ -46,6 +46,8 @@ do
|
||||||
date=t author=t mbox=t ;;
|
date=t author=t mbox=t ;;
|
||||||
-n|--n|--nu|--num|--numb|--numbe|--number|--numbere|--numbered)
|
-n|--n|--nu|--num|--numb|--numbe|--number|--numbere|--numbered)
|
||||||
numbered=t ;;
|
numbered=t ;;
|
||||||
|
-s|--s|--si|--sig|--sign)
|
||||||
|
signoff=t ;;
|
||||||
-o=*|--o=*|--ou=*|--out=*|--outp=*|--outpu=*|--output=*|--output-=*|\
|
-o=*|--o=*|--ou=*|--out=*|--outp=*|--outpu=*|--output=*|--output-=*|\
|
||||||
--output-d=*|--output-di=*|--output-dir=*|--output-dire=*|\
|
--output-d=*|--output-di=*|--output-dir=*|--output-dire=*|\
|
||||||
--output-direc=*|--output-direct=*|--output-directo=*|\
|
--output-direc=*|--output-direct=*|--output-directo=*|\
|
||||||
|
@ -174,6 +176,14 @@ Date: '"$ad"
|
||||||
b body'
|
b body'
|
||||||
|
|
||||||
sed -ne "$mailScript" <$commsg
|
sed -ne "$mailScript" <$commsg
|
||||||
|
|
||||||
|
test "$signoff" = "t" && {
|
||||||
|
offsigner=`git-var GIT_COMMITTER_IDENT | sed -e 's/>.*/>/'`
|
||||||
|
echo
|
||||||
|
echo "Signed-off-by: $offsigner"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
echo '---'
|
echo '---'
|
||||||
echo
|
echo
|
||||||
git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
|
git-diff-tree -p $diff_opts "$commit" | git-apply --stat --summary
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
INSTALL=install
|
INSTALL=install
|
||||||
prefix=$(HOME)
|
prefix=$(HOME)
|
||||||
template_dir=$(prefix)/share/git-core/templates/
|
template_dir=$(prefix)/share/git-core/templates/
|
||||||
# dest=
|
# DESTDIR=
|
||||||
|
|
||||||
all: boilerplates custom
|
all: boilerplates custom
|
||||||
find blt
|
find blt
|
||||||
|
@ -34,5 +34,5 @@ clean:
|
||||||
rm -rf blt
|
rm -rf blt
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL) -d -m755 $(dest)$(template_dir)
|
$(INSTALL) -d -m755 $(DESTDIR)$(template_dir)
|
||||||
tar Ccf blt - . | tar Cxf $(dest)$(template_dir) -
|
tar Ccf blt - . | tar Cxf $(DESTDIR)$(template_dir) -
|
||||||
|
|
|
@ -2,25 +2,24 @@
|
||||||
# Make Linus git-tools
|
# Make Linus git-tools
|
||||||
#
|
#
|
||||||
CC=gcc
|
CC=gcc
|
||||||
COPTS=-O2
|
CFLAGS = -O2 -g -Wall
|
||||||
CFLAGS=-g $(COPTS) -Wall
|
ALL_CFLAGS = $(CFLAGS)
|
||||||
INSTALL=install
|
INSTALL=install
|
||||||
HOME=$(shell echo $$HOME)
|
|
||||||
prefix=$(HOME)
|
prefix=$(HOME)
|
||||||
bindir=$(prefix)/bin
|
bindir=$(prefix)/bin
|
||||||
# dest=
|
# DESTDIR=
|
||||||
|
|
||||||
PROGRAMS=git-mailsplit git-mailinfo
|
PROGRAMS=git-mailsplit git-mailinfo
|
||||||
SCRIPTS=git-applymbox git-applypatch
|
SCRIPTS=git-applymbox git-applypatch
|
||||||
|
|
||||||
git-%: %.c
|
git-%: %.c
|
||||||
$(CC) $(CFLAGS) -o $@ $(filter %.c,$^)
|
$(CC) $(ALL_CFLAGS) -o $@ $(filter %.c,$^)
|
||||||
|
|
||||||
all: $(PROGRAMS)
|
all: $(PROGRAMS)
|
||||||
|
|
||||||
install: $(PROGRAMS) $(SCRIPTS)
|
install: $(PROGRAMS) $(SCRIPTS)
|
||||||
$(INSTALL) -m755 -d $(dest)$(bindir)
|
$(INSTALL) -m755 -d $(dest)$(bindir)
|
||||||
$(INSTALL) $(PROGRAMS) $(SCRIPTS) $(dest)$(bindir)
|
$(INSTALL) $(PROGRAMS) $(SCRIPTS) $(DESTDIR)$(bindir)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGRAMS) *.o
|
rm -f $(PROGRAMS) *.o
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
static int dry_run, quiet;
|
static int dry_run, quiet;
|
||||||
static const char unpack_usage[] = "git-unpack-objects < pack-file";
|
static const char unpack_usage[] = "git-unpack-objects [-q] < pack-file";
|
||||||
|
|
||||||
/* We always read in 4kB chunks. */
|
/* We always read in 4kB chunks. */
|
||||||
static unsigned char buffer[4096];
|
static unsigned char buffer[4096];
|
||||||
|
|
Загрузка…
Ссылка в новой задаче