GIT 0.99.9e
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
commit
72e5890b68
@ -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
Normal file
89
Documentation/git-http-push.txt
Normal file
@ -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
|
@ -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
|
||||||
--------
|
--------
|
||||||
|
@ -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
|
||||||
|
@ -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
Normal file
35
Documentation/merge-strategies.txt
Normal file
@ -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.
|
@ -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
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
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
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
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
Normal file
2
debian/git-arch.files
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/usr/bin/git-archimport
|
||||||
|
/usr/share/doc/git-core/git-archimport.*
|
2
debian/git-cvs.files
vendored
Normal file
2
debian/git-cvs.files
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/usr/bin/git-cvsimport
|
||||||
|
/usr/share/doc/git-core/git-cvsimport.*
|
7
debian/git-doc.files
vendored
Normal file
7
debian/git-doc.files
vendored
Normal file
@ -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
Normal file
2
debian/git-email.files
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/usr/bin/git-send-email
|
||||||
|
/usr/share/doc/git-core/git-send-email.*
|
2
debian/git-svn.files
vendored
Normal file
2
debian/git-svn.files
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/usr/bin/git-svnimport
|
||||||
|
/usr/share/doc/git-core/git-svnimport.*
|
11
debian/rules
vendored
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
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
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
|
||||||
|
@ -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,*)
|
||||||
|
@ -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
|
||||||
|
@ -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
Normal file
1811
http-push.c
Normal file
File diff suppressed because it is too large
Load Diff
26
ls-files.c
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();
|
||||||
}
|
}
|
||||||
|
@ -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, '/');
|
||||||
|
@ -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…
Reference in New Issue
Block a user