Browse Source

GIT 0.99.9e

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint v0.99.9e
Junio C Hamano 19 years ago
parent
commit
72e5890b68
  1. 27
      Documentation/git-clone.txt
  2. 89
      Documentation/git-http-push.txt
  3. 2
      Documentation/git-merge.txt
  4. 36
      Documentation/git-pull.txt
  5. 4
      Documentation/install-webdoc.sh
  6. 35
      Documentation/merge-strategies.txt
  7. 21
      Documentation/pull-fetch-param.txt
  8. 3
      INSTALL
  9. 54
      Makefile
  10. 19
      debian/changelog
  11. 39
      debian/control
  12. 2
      debian/git-arch.files
  13. 2
      debian/git-cvs.files
  14. 7
      debian/git-doc.files
  15. 2
      debian/git-email.files
  16. 2
      debian/git-svn.files
  17. 11
      debian/rules
  18. 14
      fetch-pack.c
  19. 12
      git-clone.sh
  20. 2
      git-format-patch.sh
  21. 2
      git-status.sh
  22. 6
      http-fetch.c
  23. 1811
      http-push.c
  24. 26
      ls-files.c
  25. 2
      sha1_file.c
  26. 2
      t/t4102-apply-rename.sh

27
Documentation/git-clone.txt

@ -12,7 +12,22 @@ SYNOPSIS


DESCRIPTION DESCRIPTION
----------- -----------
Clones a repository into a newly created directory. Clones a repository into a newly created directory. All remote
branch heads are copied under `$GIT_DIR/refs/heads/`, except
that the remote `master` is also copied to `origin` branch.

In addition, `$GIT_DIR/remotes/origin` file is set up to have
this line:

Pull: master:origin

This is to help the typical workflow of working off of the
remote `master` branch. Every time `git pull` without argument
is run, the progress on the remote `master` branch is tracked by
copying it into the local `origin` branch, and merged into the
branch you are currently working on. Remote branches other than
`master` are also added there to be tracked.



OPTIONS OPTIONS
------- -------
@ -28,9 +43,10 @@ OPTIONS
--shared:: --shared::
-s:: -s::
When the repository to clone is on the local machine, When the repository to clone is on the local machine,
instead of using hard links automatically setup instead of using hard links, automatically setup
.git/objects/info/alternatives to share the objects .git/objects/info/alternatives to share the objects
with the source repository with the source repository. The resulting repository
starts out without any object of its own.


--quiet:: --quiet::
-q:: -q::
@ -49,14 +65,13 @@ OPTIONS


<repository>:: <repository>::
The (possibly remote) repository to clone from. It can The (possibly remote) repository to clone from. It can
be an "rsync://host/dir" URL, an "http://host/dir" URL, be any URL git-fetch supports.
or [<host>:]/dir notation that is used by 'git-clone-pack'.
Currently http transport is not supported.


<directory>:: <directory>::
The name of a new directory to be cloned into. It is an The name of a new directory to be cloned into. It is an
error to specify an existing directory. error to specify an existing directory.



Author Author
------ ------
Written by Linus Torvalds <torvalds@osdl.org> Written by Linus Torvalds <torvalds@osdl.org>

89
Documentation/git-http-push.txt

@ -0,0 +1,89 @@
git-http-push(1)
================

NAME
----
git-http-push - Push missing objects using HTTP/DAV.


SYNOPSIS
--------
'git-http-push' [--complete] [--force] [--verbose] <url> <ref> [<ref>...]

DESCRIPTION
-----------
Sends missing objects to remote repository, and updates the
remote branch.


OPTIONS
-------
--complete::
Do not assume that the remote repository is complete in its
current state, and verify all objects in the entire local
ref's history exist in the remote repository.

--force::
Usually, the command refuses to update a remote ref that
is not an ancestor of the local ref used to overwrite it.
This flag disables the check. What this means is that
the remote repository can lose commits; use it with
care.

--verbose::
Report the list of objects being walked locally and the
list of objects successfully sent to the remote repository.

<ref>...:
The remote refs to update.


Specifying the Refs
-------------------

A '<ref>' specification can be either a single pattern, or a pair
of such patterns separated by a colon ":" (this means that a ref name
cannot have a colon in it). A single pattern '<name>' is just a
shorthand for '<name>:<name>'.

Each pattern pair consists of the source side (before the colon)
and the destination side (after the colon). The ref to be
pushed is determined by finding a match that matches the source
side, and where it is pushed is determined by using the
destination side.

- It is an error if <src> does not match exactly one of the
local refs.

- If <dst> does not match any remote ref, either

* it has to start with "refs/"; <dst> is used as the
destination literally in this case.

* <src> == <dst> and the ref that matched the <src> must not
exist in the set of remote refs; the ref matched <src>
locally is used as the name of the destination.

Without '--force', the <src> ref is stored at the remote only if
<dst> does not exist, or <dst> is a proper subset (i.e. an
ancestor) of <src>. This check, known as "fast forward check",
is performed in order to avoid accidentally overwriting the
remote ref and lose other peoples' commits from there.

With '--force', the fast forward check is disabled for all refs.

Optionally, a <ref> parameter can be prefixed with a plus '+' sign
to disable the fast-forward check only on that ref.


Author
------
Written by Nick Hengeveld <nickh@reactrix.com>

Documentation
--------------
Documentation by Nick Hengeveld

GIT
---
Part of the gitlink:git[7] suite

2
Documentation/git-merge.txt

@ -34,6 +34,8 @@ include::merge-pull-opts.txt[]
least one <remote>. Specifying more than one <remote> least one <remote>. Specifying more than one <remote>
obviously means you are trying an Octopus. obviously means you are trying an Octopus.


include::merge-strategies.txt[]



SEE ALSO SEE ALSO
-------- --------

36
Documentation/git-pull.txt

@ -31,42 +31,8 @@ include::pull-fetch-param.txt[]


include::merge-pull-opts.txt[] include::merge-pull-opts.txt[]


include::merge-strategies.txt[]


MERGE STRATEGIES
----------------

resolve::
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities and is considered generally safe and
fast. This is the default merge strategy when pulling
one branch.

recursive::
This can only resolve two heads using 3-way merge
algorithm. When there are more than one common
ancestors that can be used for 3-way merge, it creates a
merged tree of the common ancestores and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mis-merges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames.

octopus::
This resolves more than two-head case, but refuses to do
complex merge that needs manual resolution. It is
primarily meant to be used for bundling topic branch
heads together. This is the default merge strategy when
pulling more than one branch.

ours::
This resolves any number of heads, but the result of the
merge is always the current branch head. It is meant to
be used to supersede old development history of side
branches.




EXAMPLES EXAMPLES

4
Documentation/install-webdoc.sh

@ -2,7 +2,7 @@


T="$1" T="$1"


for h in *.html howto/*.txt howto/*.html for h in *.html *.txt howto/*.txt howto/*.html
do do
diff -u -I'Last updated [0-9][0-9]-[A-Z][a-z][a-z]-' "$T/$h" "$h" || { diff -u -I'Last updated [0-9][0-9]-[A-Z][a-z][a-z]-' "$T/$h" "$h" || {
echo >&2 "# install $h $T/$h" echo >&2 "# install $h $T/$h"
@ -12,7 +12,7 @@ do
} }
done done
strip_leading=`echo "$T/" | sed -e 's|.|.|g'` strip_leading=`echo "$T/" | sed -e 's|.|.|g'`
for th in "$T"/*.html "$T"/howto/*.txt "$T"/howto/*.html for th in "$T"/*.html "$T"/*.txt "$T"/howto/*.txt "$T"/howto/*.html
do do
h=`expr "$th" : "$strip_leading"'\(.*\)'` h=`expr "$th" : "$strip_leading"'\(.*\)'`
case "$h" in case "$h" in

35
Documentation/merge-strategies.txt

@ -0,0 +1,35 @@
MERGE STRATEGIES
----------------

resolve::
This can only resolve two heads (i.e. the current branch
and another branch you pulled from) using 3-way merge
algorithm. It tries to carefully detect criss-cross
merge ambiguities and is considered generally safe and
fast. This is the default merge strategy when pulling
one branch.

recursive::
This can only resolve two heads using 3-way merge
algorithm. When there are more than one common
ancestors that can be used for 3-way merge, it creates a
merged tree of the common ancestores and uses that as
the reference tree for the 3-way merge. This has been
reported to result in fewer merge conflicts without
causing mis-merges by tests done on actual merge commits
taken from Linux 2.6 kernel development history.
Additionally this can detect and handle merges involving
renames.

octopus::
This resolves more than two-head case, but refuses to do
complex merge that needs manual resolution. It is
primarily meant to be used for bundling topic branch
heads together. This is the default merge strategy when
pulling more than one branch.

ours::
This resolves any number of heads, but the result of the
merge is always the current branch head. It is meant to
be used to supersede old development history of side
branches.

21
Documentation/pull-fetch-param.txt

@ -82,14 +82,19 @@ must know this is the expected usage pattern for a branch.
[NOTE] [NOTE]
You never do your own development on branches that appear You never do your own development on branches that appear
on the right hand side of a <refspec> colon on `Pull:` lines; on the right hand side of a <refspec> colon on `Pull:` lines;
they are to be updated by `git-fetch`. The corollary is that they are to be updated by `git-fetch`. If you intend to do
a local branch should be introduced and named on a <refspec> development derived from a remote branch `B`, have a `Pull:`
right-hand-side if you intend to do development derived from line to track it (i.e. `Pull: B:remote-B`), and have a separate
that branch. branch `my-B` to do your development on top of it. The latter
This leads to the common `Pull: master:origin` mapping of a is created by `git branch my-B remote-B` (or its equivalent `git
remote `master` branch to a local `origin` branch, which checkout -b my-B remote-B`). Run `git fetch` to keep track of
is then merged to a local development branch, again typically the progress of the remote side, and when you see something new
named `master`. on the remote branch, merge it into your development branch with
`git pull . remote-B`, while you are on `my-B` branch.
The common `Pull: master:origin` mapping of a remote `master`
branch to a local `origin` branch, which is then merged to a
ocal development branch, again typically named `master`, is made
when you run `git clone` for you to follow this pattern.
+ +
[NOTE] [NOTE]
There is a difference between listing multiple <refspec> There is a difference between listing multiple <refspec>

3
INSTALL

@ -46,6 +46,9 @@ Issues of note:
transfer, you are probabaly OK if you do not have transfer, you are probabaly OK if you do not have
them. them.


- expat library; git-http-push uses it for remote lock
management over DAV. Similar to "curl" above, this is optional.

- "GNU diff" to generate patches. Of course, you don't _have_ to - "GNU diff" to generate patches. Of course, you don't _have_ to
generate patches if you don't want to, but let's face it, you'll generate patches if you don't want to, but let's face it, you'll
be wanting to. Or why did you get git in the first place? be wanting to. Or why did you get git in the first place?

54
Makefile

@ -6,12 +6,16 @@
# Define NO_OPENSSL environment variable if you do not have OpenSSL. You will # Define NO_OPENSSL environment variable if you do not have OpenSSL. You will
# miss out git-rev-list --merge-order. This also implies MOZILLA_SHA1. # miss out git-rev-list --merge-order. This also implies MOZILLA_SHA1.
# #
# Define NO_CURL if you do not have curl installed. git-http-pull is not # Define NO_CURL if you do not have curl installed. git-http-pull and
# built, and you cannot use http:// and https:// transports. # git-http-push are not built, and you cannot use http:// and https://
# transports.
# #
# Define CURLDIR=/foo/bar if your curl header and library files are in # Define CURLDIR=/foo/bar if your curl header and library files are in
# /foo/bar/include and /foo/bar/lib directories. # /foo/bar/include and /foo/bar/lib directories.
# #
# Define NO_EXPAT if you do not have expat installed. git-http-push is
# not built, and you cannot push using http:// and https:// transports.
#
# Define NO_STRCASESTR if you don't have strcasestr. # Define NO_STRCASESTR if you don't have strcasestr.
# #
# Define PPC_SHA1 environment variable when running make to make use of # Define PPC_SHA1 environment variable when running make to make use of
@ -37,25 +41,20 @@
# 1461501637330902918203684832716283019655932542976 hashes do not give you # 1461501637330902918203684832716283019655932542976 hashes do not give you
# sufficient guarantee that no collisions between objects will ever happen. # sufficient guarantee that no collisions between objects will ever happen.


# DEFINES += -DCOLLISION_CHECK

# Define USE_NSEC below if you want git to care about sub-second file mtimes # Define USE_NSEC below if you want git to care about sub-second file mtimes
# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and # and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely # it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
# randomly break unless your underlying filesystem supports those sub-second # randomly break unless your underlying filesystem supports those sub-second
# times (my ext3 doesn't). # times (my ext3 doesn't).


# DEFINES += -DUSE_NSEC

# 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.


# DEFINES += -DUSE_STDEV GIT_VERSION = 0.99.9e

GIT_VERSION = 0.99.9d


# CFLAGS is for the users to override from the command line.
CFLAGS = -g -O2 -Wall CFLAGS = -g -O2 -Wall
ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES) ALL_CFLAGS = $(CFLAGS)


prefix = $(HOME) prefix = $(HOME)
bindir = $(prefix)/bin bindir = $(prefix)/bin
@ -185,6 +184,10 @@ uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
ifeq ($(uname_S),Darwin) ifeq ($(uname_S),Darwin)
NEEDS_SSL_WITH_CRYPTO = YesPlease NEEDS_SSL_WITH_CRYPTO = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
## fink
ALL_CFLAGS += -I/sw/include -L/sw/lib
## darwinports
ALL_CFLAGS += -I/opt/local/include -L/opt/local/lib
endif endif
ifeq ($(uname_S),SunOS) ifeq ($(uname_S),SunOS)
NEEDS_SOCKET = YesPlease NEEDS_SOCKET = YesPlease
@ -194,19 +197,19 @@ ifeq ($(uname_S),SunOS)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
INSTALL = ginstall INSTALL = ginstall
TAR = gtar TAR = gtar
PLATFORM_DEFINES += -D__EXTENSIONS__ ALL_CFLAGS += -D__EXTENSIONS__
endif endif
ifeq ($(uname_O),Cygwin) ifeq ($(uname_O),Cygwin)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
NO_IPV6 = YesPlease NO_IPV6 = YesPlease
X = .exe X = .exe
PLATFORM_DEFINES += -DUSE_SYMLINK_HEAD=0 ALL_CFLAGS += -DUSE_SYMLINK_HEAD=0
endif endif
ifeq ($(uname_S),OpenBSD) ifeq ($(uname_S),OpenBSD)
NO_STRCASESTR = YesPlease NO_STRCASESTR = YesPlease
NEEDS_LIBICONV = YesPlease NEEDS_LIBICONV = YesPlease
PLATFORM_DEFINES += -I/usr/local/include -L/usr/local/lib ALL_CFLAGS += -I/usr/local/include -L/usr/local/lib
endif endif
ifneq (,$(findstring arm,$(uname_M))) ifneq (,$(findstring arm,$(uname_M)))
ARM_SHA1 = YesPlease ARM_SHA1 = YesPlease
@ -217,12 +220,16 @@ endif
ifndef NO_CURL ifndef NO_CURL
ifdef CURLDIR ifdef CURLDIR
# This is still problematic -- gcc does not want -R. # This is still problematic -- gcc does not want -R.
CFLAGS += -I$(CURLDIR)/include ALL_CFLAGS += -I$(CURLDIR)/include
CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
else else
CURL_LIBCURL = -lcurl CURL_LIBCURL = -lcurl
endif endif
PROGRAMS += git-http-fetch$X PROGRAMS += git-http-fetch$X
ifndef NO_EXPAT
EXPAT_LIBEXPAT = -lexpat
PROGRAMS += git-http-push$X
endif
endif endif


ifndef SHELL_PATH ifndef SHELL_PATH
@ -240,13 +247,13 @@ ifndef NO_OPENSSL
OPENSSL_LIBSSL = -lssl OPENSSL_LIBSSL = -lssl
ifdef OPENSSLDIR ifdef OPENSSLDIR
# Again this may be problematic -- gcc does not always want -R. # Again this may be problematic -- gcc does not always want -R.
CFLAGS += -I$(OPENSSLDIR)/include ALL_CFLAGS += -I$(OPENSSLDIR)/include
OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib
else else
OPENSSL_LINK = OPENSSL_LINK =
endif endif
else else
DEFINES += -DNO_OPENSSL ALL_CFLAGS += -DNO_OPENSSL
MOZILLA_SHA1 = 1 MOZILLA_SHA1 = 1
OPENSSL_LIBSSL = OPENSSL_LIBSSL =
endif endif
@ -258,7 +265,7 @@ endif
ifdef NEEDS_LIBICONV ifdef NEEDS_LIBICONV
ifdef ICONVDIR ifdef ICONVDIR
# Again this may be problematic -- gcc does not always want -R. # Again this may be problematic -- gcc does not always want -R.
CFLAGS += -I$(ICONVDIR)/include ALL_CFLAGS += -I$(ICONVDIR)/include
ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib
else else
ICONV_LINK = ICONV_LINK =
@ -276,15 +283,15 @@ ifdef NEEDS_NSL
SIMPLE_LIB += -lnsl SIMPLE_LIB += -lnsl
endif endif
ifdef NO_STRCASESTR ifdef NO_STRCASESTR
DEFINES += -Dstrcasestr=gitstrcasestr -DNO_STRCASESTR=1 ALL_CFLAGS += -Dstrcasestr=gitstrcasestr -DNO_STRCASESTR=1
LIB_OBJS += compat/strcasestr.o LIB_OBJS += compat/strcasestr.o
endif endif
ifdef NO_MMAP ifdef NO_MMAP
DEFINES += -Dmmap=gitfakemmap -Dmunmap=gitfakemunmap -DNO_MMAP ALL_CFLAGS += -Dmmap=gitfakemmap -Dmunmap=gitfakemunmap -DNO_MMAP
LIB_OBJS += compat/mmap.o LIB_OBJS += compat/mmap.o
endif endif
ifdef NO_IPV6 ifdef NO_IPV6
DEFINES += -DNO_IPV6 -Dsockaddr_storage=sockaddr_in ALL_CFLAGS += -DNO_IPV6 -Dsockaddr_storage=sockaddr_in
endif endif


ifdef PPC_SHA1 ifdef PPC_SHA1
@ -305,7 +312,7 @@ endif
endif endif
endif endif


DEFINES += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER))


SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \ SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) \ $(patsubst %.perl,%,$(SCRIPT_PERL)) \
@ -375,6 +382,7 @@ git-ssh-pull$X: rsh.o fetch.o
git-ssh-push$X: rsh.o git-ssh-push$X: rsh.o


git-http-fetch$X: LIBS += $(CURL_LIBCURL) git-http-fetch$X: LIBS += $(CURL_LIBCURL)
git-http-push$X: LIBS += $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
git-rev-list$X: LIBS += $(OPENSSL_LIBSSL) git-rev-list$X: LIBS += $(OPENSSL_LIBSSL)


init-db.o: init-db.c init-db.o: init-db.c
@ -454,8 +462,8 @@ clean:
rm -f git-core.spec *.pyc *.pyo rm -f git-core.spec *.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)-*.deb git-core_$(GIT_VERSION)-*.dsc rm -f git-core_$(GIT_VERSION)-*.dsc
rm -f git-tk_$(GIT_VERSION)-*.deb 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

19
debian/changelog vendored

@ -1,3 +1,9 @@
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-core (0.99.9d-0) unstable; urgency=low


* GIT 0.99.9d * GIT 0.99.9d
@ -22,6 +28,19 @@ git-core (0.99.9a-0) unstable; urgency=low


-- Junio C Hamano <junkio@cox.net> Sun, 30 Oct 2005 15:03:32 -0800 -- Junio C Hamano <junkio@cox.net> Sun, 30 Oct 2005 15:03:32 -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-core (0.99.9-0) unstable; urgency=low


* GIT 0.99.9 * GIT 0.99.9

39
debian/control vendored

@ -8,7 +8,7 @@ Standards-Version: 3.6.1
Package: git-core Package: git-core
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}, rcs Depends: ${shlibs:Depends}, ${perl:Depends}, ${misc:Depends}, rcs
Recommends: rsync, curl, ssh, libmail-sendmail-perl, libemail-valid-perl, libsvn-core-perl (>= 1.2.1), python (>= 2.4.0), less Recommends: rsync, curl, ssh, python (>= 2.4.0), less
Suggests: cogito, patch Suggests: cogito, patch
Conflicts: git, cogito (<< 0.13) Conflicts: git, cogito (<< 0.13)
Description: The git content addressable filesystem Description: The git content addressable filesystem
@ -18,9 +18,46 @@ Description: The git content addressable filesystem
enables human beings to work with the database in a manner to a degree enables human beings to work with the database in a manner to a degree
similar to other SCM tools. 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 Package: git-tk
Architecture: all 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.


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
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.



2
debian/git-arch.files vendored

@ -0,0 +1,2 @@
/usr/bin/git-archimport
/usr/share/doc/git-core/git-archimport.*

2
debian/git-cvs.files vendored

@ -0,0 +1,2 @@
/usr/bin/git-cvsimport
/usr/share/doc/git-core/git-cvsimport.*

7
debian/git-doc.files vendored

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



2
debian/git-email.files vendored

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

2
debian/git-svn.files vendored

@ -0,0 +1,2 @@
/usr/bin/git-svnimport
/usr/share/doc/git-core/git-svnimport.*

11
debian/rules vendored

@ -41,7 +41,7 @@ MAN_DESTDIR := $(DESTDIR)/$(MANDIR)
build: debian/build-stamp build: debian/build-stamp
debian/build-stamp: debian/build-stamp:
dh_testdir dh_testdir
$(MAKE) prefix=$(PREFIX) PYTHON_PATH=/usr/bin/python2.4 all doc test $(MAKE) prefix=$(PREFIX) PYTHON_PATH=/usr/bin/python2.4 all test doc
touch debian/build-stamp touch debian/build-stamp


debian-clean: debian-clean:
@ -62,10 +62,15 @@ install: build
make DESTDIR=$(DESTDIR) prefix=$(PREFIX) mandir=$(MANDIR) \ make DESTDIR=$(DESTDIR) prefix=$(PREFIX) mandir=$(MANDIR) \
install install-doc install install-doc


mkdir -p $(DOC_DESTDIR) make -C Documentation DESTDIR=$(DESTDIR) prefix=$(PREFIX) \
find $(DOC) '(' -name '*.txt' -o -name '*.html' ')' -exec install {} $(DOC_DESTDIR) ';' 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-tk
dh_movefiles -p git-email
dh_movefiles -p git-doc
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/^/? /'



14
fetch-pack.c

@ -458,5 +458,19 @@ int main(int argc, char **argv)
close(fd[0]); close(fd[0]);
close(fd[1]); close(fd[1]);
finish_connect(pid); finish_connect(pid);

if (!ret && nr_heads) {
/* If the heads to pull were given, we should have
* consumed all of them by matching the remote.
* Otherwise, 'git-fetch remote no-such-ref' would
* silently succeed without issuing an error.
*/
for (i = 0; i < nr_heads; i++)
if (heads[i] && heads[i][0]) {
error("no such remote ref %s", heads[i]);
ret = 1;
}
}

return ret; return ret;
} }

12
git-clone.sh

@ -202,8 +202,16 @@ then
mkdir -p .git/remotes && mkdir -p .git/remotes &&
echo >.git/remotes/origin \ echo >.git/remotes/origin \
"URL: $repo "URL: $repo
Pull: $head_points_at:origin" Pull: $head_points_at:origin" &&
cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin &&
find .git/refs/heads -type f -print |
while read ref
do
head=`expr "$ref" : '.git/refs/heads/\(.*\)'` &&
test "$head_points_at" = "$head" ||
test "origin" = "$head" ||
echo "Pull: ${head}:${head}"
done >>.git/remotes/origin
esac esac


case "$no_checkout" in case "$no_checkout" in

2
git-format-patch.sh

@ -101,7 +101,7 @@ case "$#,$1" in
;; ;;
1,?*..) 1,?*..)
# single "rev1.." should mean "rev1..HEAD" # single "rev1.." should mean "rev1..HEAD"
set x "$1"HEAD" set x "$1"HEAD
shift shift
;; ;;
1,*) 1,*)

2
git-status.sh

@ -41,7 +41,7 @@ git-update-index -q --unmerged --refresh || exit


if GIT_DIR="$GIT_DIR" git-rev-parse --verify HEAD >/dev/null 2>&1 if GIT_DIR="$GIT_DIR" git-rev-parse --verify HEAD >/dev/null 2>&1
then then
git-diff-index -M --cached --name-status HEAD | git-diff-index -M --cached --name-status --diff-filter=MDTCRA HEAD |
sed -e ' sed -e '
s/\\/\\\\/g s/\\/\\\\/g
s/ /\\ /g s/ /\\ /g

6
http-fetch.c

@ -578,6 +578,7 @@ void process_curl_messages(void)


while (curl_message != NULL) { while (curl_message != NULL) {
if (curl_message->msg == CURLMSG_DONE) { if (curl_message->msg == CURLMSG_DONE) {
int curl_result = curl_message->data.result;
slot = active_queue_head; slot = active_queue_head;
while (slot != NULL && while (slot != NULL &&
slot->curl != curl_message->easy_handle) slot->curl != curl_message->easy_handle)
@ -587,7 +588,7 @@ void process_curl_messages(void)
active_requests--; active_requests--;
slot->done = 1; slot->done = 1;
slot->in_use = 0; slot->in_use = 0;
slot->curl_result = curl_message->data.result; slot->curl_result = curl_result;
curl_easy_getinfo(slot->curl, curl_easy_getinfo(slot->curl,
CURLINFO_HTTP_CODE, CURLINFO_HTTP_CODE,
&slot->http_code); &slot->http_code);
@ -599,8 +600,7 @@ void process_curl_messages(void)
fprintf(stderr, "Received DONE message for unknown request!\n"); fprintf(stderr, "Received DONE message for unknown request!\n");
} }
if (request != NULL) { if (request != NULL) {
request->curl_result = request->curl_result = curl_result;
curl_message->data.result;
request->http_code = slot->http_code; request->http_code = slot->http_code;
request->slot = NULL; request->slot = NULL;
request->state = COMPLETE; request->state = COMPLETE;

1811
http-push.c

File diff suppressed because it is too large Load Diff

26
ls-files.c

@ -348,6 +348,29 @@ static void show_dir_entry(const char *tag, struct nond_on_fs *ent)
putchar(line_terminator); putchar(line_terminator);
} }


static void show_other_files(void)
{
int i;
for (i = 0; i < nr_dir; i++) {
/* We should not have a matching entry, but we
* may have an unmerged entry for this path.
*/
struct nond_on_fs *ent = dir[i];
int pos = cache_name_pos(ent->name, ent->len);
struct cache_entry *ce;
if (0 <= pos)
die("bug in show-other-files");
pos = -pos - 1;
if (pos < active_nr) {
ce = active_cache[pos];
if (ce_namelen(ce) == ent->len &&
!memcmp(ce->name, ent->name, ent->len))
continue; /* Yup, this one exists unmerged */
}
show_dir_entry(tag_other, ent);
}
}

static void show_killed_files(void) static void show_killed_files(void)
{ {
int i; int i;
@ -438,8 +461,7 @@ static void show_files(void)
read_directory(path, base, baselen); read_directory(path, base, baselen);
qsort(dir, nr_dir, sizeof(struct nond_on_fs *), cmp_name); qsort(dir, nr_dir, sizeof(struct nond_on_fs *), cmp_name);
if (show_others) if (show_others)
for (i = 0; i < nr_dir; i++) show_other_files();
show_dir_entry(tag_other, dir[i]);
if (show_killed) if (show_killed)
show_killed_files(); show_killed_files();
} }

2
sha1_file.c

@ -51,6 +51,8 @@ int get_sha1_hex(const char *hex, unsigned char *sha1)
int safe_create_leading_directories(char *path) int safe_create_leading_directories(char *path)
{ {
char *pos = path; char *pos = path;
if (*pos == '/')
pos++;


while (pos) { while (pos) {
pos = strchr(pos, '/'); pos = strchr(pos, '/');

2
t/t4102-apply-rename.sh

@ -32,6 +32,6 @@ test_expect_success apply \
'git-apply --index --stat --summary --apply test-patch' 'git-apply --index --stat --summary --apply test-patch'


test_expect_success validate \ test_expect_success validate \
'test -f bar && ls -l bar | grep "^-..x..x..x"' 'test -f bar && ls -l bar | grep "^-..x......"'


test_done test_done

Loading…
Cancel
Save