summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-archimport-script.txt42
-rw-r--r--Documentation/git-build-rev-cache.txt20
-rw-r--r--Documentation/git-checkout-script.txt23
-rw-r--r--Documentation/git-parse-remote-script.txt48
-rw-r--r--Documentation/git-reset-script.txt25
-rw-r--r--Documentation/git-rev-parse.txt65
-rw-r--r--Documentation/git-show-rev-cache.txt19
-rw-r--r--Documentation/git.txt52
-rw-r--r--Makefile49
-rwxr-xr-xgit4
-rwxr-xr-xgit-applymbox (renamed from tools/git-applymbox)0
-rwxr-xr-xgit-applypatch (renamed from tools/git-applypatch)0
-rw-r--r--mailinfo.c (renamed from tools/mailinfo.c)4
-rw-r--r--mailsplit.c (renamed from tools/mailsplit.c)0
-rw-r--r--tools/.gitignore2
-rw-r--r--tools/Makefile25
16 files changed, 268 insertions, 110 deletions
diff --git a/Documentation/git-archimport-script.txt b/Documentation/git-archimport-script.txt
new file mode 100644
index 0000000..134fbed
--- /dev/null
+++ b/Documentation/git-archimport-script.txt
@@ -0,0 +1,42 @@
+git-archimport-script(1)
+========================
+
+NAME
+----
+git-archimport-script - Import an arch repository into git
+
+
+SYNOPSIS
+--------
+`git-archimport-script` [--option...] <args>
+
+DESCRIPTION
+-----------
+The script expects you to provide the key roots where it can start the
+import from an 'initial import' or 'tag' type of Arch commit. It will
+then follow all the branching and tagging within the provided roots.
+
+It will die if it sees branches that have different roots.
+
+
+OPTIONS
+-------
+--option::
+ Some option not yet documented.
+
+<args>...::
+ Some argument not yet documented.
+
+
+Author
+------
+Written by Martin Langhoff <martin@catalyst.net.nz>.
+
+Documentation
+--------------
+Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the link:git.html[git] suite
+
diff --git a/Documentation/git-build-rev-cache.txt b/Documentation/git-build-rev-cache.txt
index b199cf9..1dbad77 100644
--- a/Documentation/git-build-rev-cache.txt
+++ b/Documentation/git-build-rev-cache.txt
@@ -3,26 +3,26 @@ git-build-rev-cache(1)
NAME
----
-git-build-rev-cache - Some git command not yet documented.
-
+git-build-rev-cache - Create or update a rev-cache file.
SYNOPSIS
--------
-'git-build-rev-cache' [ --option ] <args>...
+'git-build-rev-cache' [-v] <rev-cache-file> < list-of-heads
DESCRIPTION
-----------
-Does something not yet documented.
-
+Creates or updates a file that describes the commit ancestry reachable
+from the list-of-head read from stdin. This file is in an append-only
+binary format to make the server side friendly to rsync mirroring
+scheme, and can be read by the git-show-rev-cache command.
OPTIONS
-------
---option::
- Some option not yet documented.
-
-<args>...::
- Some argument not yet documented.
+-v::
+ Verbose.
+<rev-cache-file>::
+ The rev-cache to operate on.
Author
------
diff --git a/Documentation/git-checkout-script.txt b/Documentation/git-checkout-script.txt
index ca469ec..52831ab 100644
--- a/Documentation/git-checkout-script.txt
+++ b/Documentation/git-checkout-script.txt
@@ -3,26 +3,31 @@ git-checkout-script(1)
NAME
----
-git-checkout-script - Some git command not yet documented.
-
+git-checkout-script - Checkout and switch to a branch.
SYNOPSIS
--------
-'git-checkout-script' [ --option ] <args>...
+'git-checkout-script' [-f] [-b <new_branch>] [<branch>]
DESCRIPTION
-----------
-Does something not yet documented.
-
+Updates the index and working tree to reflect the specified branch,
+<branch>. Updates HEAD to be <branch> or, if specified, <new_branch>.
OPTIONS
-------
---option::
- Some option not yet documented.
+-f::
+ Force an re-read of everything.
+
+-b::
+ Create a new branch and start it at <branch>.
-<args>...::
- Some argument not yet documented.
+<new_branch>::
+ Name for the new branch.
+<branch>::
+ Branch to checkout; may be any object ID that resolves to a
+ commit. Defaults to HEAD.
Author
------
diff --git a/Documentation/git-parse-remote-script.txt b/Documentation/git-parse-remote-script.txt
new file mode 100644
index 0000000..d6e551f
--- /dev/null
+++ b/Documentation/git-parse-remote-script.txt
@@ -0,0 +1,48 @@
+git-parse-remote-script(1)
+==========================
+
+NAME
+----
+git-parse-remote-script - Routines to help parsing $GIT_DIR/remotes/
+
+
+SYNOPSIS
+--------
+'. git-parse-remote-script'
+
+DESCRIPTION
+-----------
+This script is included in various scripts to supply
+routines to parse files under $GIT_DIR/remotes/ and
+$GIT_DIR/branches/.
+
+The primary entry points are:
+
+get_remote_refs_for_fetch::
+ Given the list of user-supplied `<repo> <refspec>...`,
+ return the list of refs to fetch after canonicalizing
+ them into `$GIT_DIR` relative paths
+ (e.g. `refs/heads/foo`). When `<refspec>...` is empty
+ the returned list of refs consists of the defaults
+ for the given `<repo>`, if specified in
+ `$GIT_DIR/remotes/` or `$GIT_DIR/branches/`.
+
+get_remote_refs_for_push::
+ Given the list of user-supplied `<repo> <refspec>...`,
+ return the list of refs to push in a form suitable to be
+ fed to the `git-send-pack` command. When `<refspec>...`
+ is empty the returned list of refs consists of the
+ defaults for the given `<repo>`, if specified in
+ `$GIT_DIR/remotes/`.
+
+Author
+------
+Written by Junio C Hamano.
+
+Documentation
+--------------
+Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the link:git.html[git] suite
diff --git a/Documentation/git-reset-script.txt b/Documentation/git-reset-script.txt
index 2c12f59..18bd9e9 100644
--- a/Documentation/git-reset-script.txt
+++ b/Documentation/git-reset-script.txt
@@ -3,26 +3,33 @@ git-reset-script(1)
NAME
----
-git-reset-script - Some git command not yet documented.
-
+git-reset-script - Reset current HEAD to the specified state.
SYNOPSIS
--------
-'git-reset-script' [ --option ] <args>...
+'git-reset-script' [--mixed | --soft | --hard] [<commit-ish>]
DESCRIPTION
-----------
-Does something not yet documented.
-
+Sets the current head to the specified commit and optionally resets the
+index and working tree to match.
OPTIONS
-------
---option::
- Some option not yet documented.
+--mixed::
+ Like --soft but reports what has not been updated. This is the
+ default action.
+
+--soft::
+ Does not touch the index file nor the working tree at all, but
+ requires them in a good order.
-<args>...::
- Some argument not yet documented.
+--hard::
+ Matches the working tree and index to that of the tree being
+ switched to.
+<commit-ish>::
+ Commit to make the current HEAD.
Author
------
diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
index 592c2bd..fa64c5a 100644
--- a/Documentation/git-rev-parse.txt
+++ b/Documentation/git-rev-parse.txt
@@ -3,7 +3,7 @@ git-rev-parse(1)
NAME
----
-git-rev-parse - Some git command not yet documented.
+git-rev-parse - Pick out and massage parameters.
SYNOPSIS
@@ -12,21 +12,74 @@ SYNOPSIS
DESCRIPTION
-----------
-Does something not yet documented.
+
+Many git Porcelainish commands take mixture of flags
+(i.e. parameters that begin with a dash '-') and parameters
+meant for underlying `git-rev-list` command they use internally
+and flags and parameters for other commands they use as the
+downstream of `git-rev-list`. This command is used to
+distinguish between them.
OPTIONS
-------
---option::
- Some option not yet documented.
+--revs-only::
+ Do not output flags and parameters not meant for
+ `git-rev-list` command.
+
+--no-revs::
+ Do not output flags and parameters meant for
+ `git-rev-list` command.
+
+--flags::
+ Do not output non-flag parameters.
+
+--no-flags::
+ Do not output flag parameters.
+
+--default <arg>::
+ If there is no parameter given by the user, use `<arg>`
+ instead.
+
+--verify::
+ The parameter given must be usable as a single, valid
+ object name. Otherwise barf and abort.
+
+--sq::
+ Usually the output is made one line per flag and
+ parameter. This option makes output a single line,
+ properly quoted for consumption by shell. Useful when
+ you expect your parameter to contain whitespaces and
+ newlines (e.g. when using pickaxe `-S` with
+ `git-diff-\*`).
+
+--not::
+ When showing object names, prefix them with '^' and
+ strip '^' prefix from the object names that already have
+ one.
+
+--symbolic::
+ Usually the object names are output in SHA1 form (with
+ possible '^' prefix); this option makes them output in a
+ form as close to the original input as possible.
+
+
+--all::
+ Show all refs found in `$GIT_DIR/refs`.
+
+--show-prefix::
+ When the command is invoked from a directory show the
+ path of the current directory relative to the top-level
+ directory.
<args>...::
- Some argument not yet documented.
+ Flags and parameters to be parsed.
Author
------
-Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net>
+Written by Linus Torvalds <torvalds@osdl.org> and
+Junio C Hamano <junkio@cox.net>
Documentation
--------------
diff --git a/Documentation/git-show-rev-cache.txt b/Documentation/git-show-rev-cache.txt
index 48f1ca3..104ecb7 100644
--- a/Documentation/git-show-rev-cache.txt
+++ b/Documentation/git-show-rev-cache.txt
@@ -3,26 +3,25 @@ git-show-rev-cache(1)
NAME
----
-git-show-rev-cache - Some git command not yet documented.
-
+git-show-rev-cache - Show the contents of a rev-cache file.
SYNOPSIS
--------
-'git-show-rev-cache' [ --option ] <args>...
+'git-show-rev-cache' <rev-cache-file>
DESCRIPTION
-----------
-Does something not yet documented.
+Show the contents of <rev-cache-file>.
+A rev-cache file describes the commit ancestry reachable from references
+supplied as input to get-build-rev-cache. This file is in an
+append-only binary format to make the server side friendly to rsync
+mirroring scheme.
OPTIONS
-------
---option::
- Some option not yet documented.
-
-<args>...::
- Some argument not yet documented.
-
+<rev-cache-file>::
+ Rev-cache file to display.
Author
------
diff --git a/Documentation/git.txt b/Documentation/git.txt
index b10edff..fd5108c 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -209,6 +209,9 @@ link:git-bisect-script.html[git-bisect-script]::
link:git-branch-script.html[git-branch-script]::
Create and Show branches.
+link:git-checkout-script.html[git-checkout-script]::
+ Checkout and switch to a branch.
+
link:git-cherry-pick-script.html[git-cherry-pick-script]::
Cherry-pick the effect of an existing commit.
@@ -245,6 +248,9 @@ link:git-rename-script.html[git-rename]::
link:git-repack-script.html[git-repack-script]::
Pack unpacked objects in a repository.
+link:git-reset-script.html[git-reset-script]::
+ Reset current HEAD to the specified state.
+
link:git-resolve-script.html[git-resolve-script]::
Merge two commits.
@@ -274,6 +280,9 @@ Manipulators:
link:git-applypatch.html[git-applypatch]::
Apply one patch extracted from an e-mail.
+link:git-archimport-script.html[git-archimport-script]::
+ Import an arch repository into git.
+
link:git-convert-cache.html[git-convert-cache]::
Converts old-style GIT repository
@@ -298,15 +307,24 @@ link:git-tag-script.html[git-tag-script]::
Interrogators:
+link:git-build-rev-cache.html[git-build-rev-cache]::
+ Create or update a rev-cache file.
+
link:git-cherry.html[git-cherry]::
Find commits not merged upstream.
link:git-count-objects-script.html[git-count-objects-script]::
Count unpacked number of objects and their disk consumption.
+link:git-daemon.html[git-daemon]::
+ A really simple server for GIT repositories.
+
link:git-diff-helper.html[git-diff-helper]::
Generates patch format output for git-diff-*
+link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
+ Extract commit ID from an archive created using git-tar-tree.
+
link:git-mailinfo.html[git-mailinfo]::
Extracts patch from a single e-mail message.
@@ -316,42 +334,30 @@ link:git-mailsplit.html[git-mailsplit]::
link:git-patch-id.html[git-patch-id]::
Compute unique ID for a patch.
+link:git-parse-remote-script.html[git-parse-remote-script]::
+ Routines to help parsing $GIT_DIR/remotes/
+
+link:git-request-pull-script.html[git-request-pull-script]::
+ git-request-pull-script.
+
+link:git-rev-parse.html[git-rev-parse]::
+ Pick out and massage parameters.
+
link:git-send-email-script.html[git-send-email]::
Send patch e-mails out of "format-patch --mbox" output.
-link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
- Extract commit ID from an archive created using git-tar-tree.
+link:git-show-rev-cache.html[git-show-rev-cache]::
+ Show the contents of a rev-cache file.
Commands not yet documented
---------------------------
-link:git-build-rev-cache.html[git-build-rev-cache]::
- git-build-rev-cache.
-
-link:git-checkout-script.html[git-checkout-script]::
- git-checkout-script.
-
-link:git-daemon.html[git-daemon]::
- git-daemon.
-
link:git-diff-script.html[git-diff-script]::
git-diff-script.
link:git-format-patch-script.html[git-format-patch-script]::
git-format-patch-script.
-link:git-request-pull-script.html[git-request-pull-script]::
- git-request-pull-script.
-
-link:git-reset-script.html[git-reset-script]::
- git-reset-script.
-
-link:git-rev-parse.html[git-rev-parse]::
- git-rev-parse.
-
-link:git-show-rev-cache.html[git-show-rev-cache]::
- git-show-rev-cache.
-
link:git-stripspace.html[git-stripspace]::
git-stripspace.
diff --git a/Makefile b/Makefile
index 033c96e..6dbffc2 100644
--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,9 @@
#
# Define PPC_SHA1 environment variable when running make to make use of
# a bundled SHA1 routine optimized for PowerPC.
-
+#
+# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
+# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
# Define COLLISION_CHECK below if you believe that SHA1's
# 1461501637330902918203684832716283019655932542976 hashes do not give you
@@ -66,13 +68,20 @@ SCRIPTS=git git-merge-one-file-script git-prune-script \
git-format-patch-script git-sh-setup-script git-push-script \
git-branch-script git-parse-remote-script git-verify-tag-script \
git-ls-remote-script git-rename-script \
- git-request-pull-script git-bisect-script
+ git-request-pull-script git-bisect-script \
+ git-applymbox git-applypatch
SCRIPTS += git-count-objects-script
SCRIPTS += git-revert-script
SCRIPTS += git-octopus-script
SCRIPTS += git-archimport-script
+# The ones that do not have to link with lcrypto nor lz.
+SIMPLE_PROGRAMS = \
+ git-get-tar-commit-id git-mailinfo git-mailsplit git-stripspace \
+ git-daemon git-var
+
+# ... and all the rest
PROG= git-update-cache git-diff-files git-init-db git-write-tree \
git-read-tree git-commit-tree git-cat-file git-fsck-cache \
git-checkout-cache git-diff-tree git-rev-tree git-ls-files \
@@ -80,12 +89,13 @@ PROG= git-update-cache git-diff-files git-init-db git-write-tree \
git-unpack-file git-export git-diff-cache git-convert-cache \
git-ssh-push git-ssh-pull git-rev-list git-mktag \
git-diff-helper git-tar-tree git-local-pull git-hash-object \
- git-get-tar-commit-id git-apply git-stripspace \
+ git-apply \
git-diff-stages git-rev-parse git-patch-id git-pack-objects \
git-unpack-objects git-verify-pack git-receive-pack git-send-pack \
git-prune-packed git-fetch-pack git-upload-pack git-clone-pack \
- git-show-index git-daemon git-var git-peek-remote git-show-branch \
- git-update-server-info git-show-rev-cache git-build-rev-cache
+ git-show-index git-peek-remote git-show-branch \
+ git-update-server-info git-show-rev-cache git-build-rev-cache \
+ $(SIMPLE_PROGRAMS)
ifdef WITH_SEND_EMAIL
SCRIPTS += git-send-email-script
@@ -126,6 +136,11 @@ LIB_OBJS += server-info.o
LIBS = $(LIB_FILE)
LIBS += -lz
+ifeq ($(shell uname -s),Darwin)
+ NEEDS_SSL_WITH_CRYPTO = YesPlease
+ NEEDS_LIBICONV = YesPlease
+endif
+
ifndef NO_OPENSSL
LIB_OBJS += epoch.o
OPENSSL_LIBSSL=-lssl
@@ -134,6 +149,16 @@ else
MOZILLA_SHA1=1
OPENSSL_LIBSSL=
endif
+ifdef NEEDS_SSL_WITH_CRYPTO
+ LIB_4_CRYPTO = -lcrypto -lssl
+else
+ LIB_4_CRYPTO = -lcrypto
+endif
+ifdef NEEDS_LIBICONV
+ LIB_4_ICONV = -liconv
+else
+ LIB_4_ICONV =
+endif
ifdef MOZILLA_SHA1
SHA1_HEADER="mozilla-sha1/sha1.h"
LIB_OBJS += mozilla-sha1/sha1.o
@@ -143,11 +168,7 @@ else
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
else
SHA1_HEADER=<openssl/sha.h>
- ifeq ($(shell uname -s),Darwin)
- LIBS += -lcrypto -lssl
- else
- LIBS += -lcrypto
- endif
+ LIBS += $(LIB_4_CRYPTO)
endif
endif
@@ -161,7 +182,6 @@ all: $(PROG)
all:
$(MAKE) -C templates
- $(MAKE) -C tools
%.o: %.c
$(CC) -o $*.o -c $(ALL_CFLAGS) $<
@@ -171,6 +191,11 @@ all:
git-%: %.o $(LIB_FILE)
$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+git-mailinfo : SIMPLE_LIB += $(LIB_4_ICONV)
+$(SIMPLE_PROGRAMS) : $(LIB_FILE)
+$(SIMPLE_PROGRAMS) : git-% : %.o
+ $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB)
+
git-http-pull: pull.o
git-local-pull: pull.o
git-ssh-pull: rsh.o pull.o
@@ -218,7 +243,6 @@ install: $(PROG) $(SCRIPTS)
$(INSTALL) $(PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
$(INSTALL) git-revert-script $(DESTDIR)$(bindir)/git-cherry-pick-script
$(MAKE) -C templates install
- $(MAKE) -C tools install
install-doc:
$(MAKE) -C Documentation install
@@ -258,7 +282,6 @@ clean:
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 Documentation/ clean
$(MAKE) -C templates/ clean
$(MAKE) -C t/ clean
diff --git a/git b/git
index 0d8b382..476aeec 100755
--- a/git
+++ b/git
@@ -17,6 +17,4 @@ else
echo " git commands are:"
fi
-alternatives=$(cd $path &&
- ls git-*-script | sed -e 's/git-//' -e 's/-script//')
-echo $alternatives | fmt | sed 's/^/ /'
+ls $path | sed -ne 's/^git-\(.*\)-script/ \1/p' | fmt
diff --git a/tools/git-applymbox b/git-applymbox
index e58bb21..e58bb21 100755
--- a/tools/git-applymbox
+++ b/git-applymbox
diff --git a/tools/git-applypatch b/git-applypatch
index e5bc3c0..e5bc3c0 100755
--- a/tools/git-applypatch
+++ b/git-applypatch
diff --git a/tools/mailinfo.c b/mailinfo.c
index ef2add7..df470bb 100644
--- a/tools/mailinfo.c
+++ b/mailinfo.c
@@ -152,6 +152,10 @@ static int handle_subcontent_type(char *line)
/* We do not want to mess with boundary. Note that we do not
* handle nested multipart.
*/
+ if (strcasestr(line, "boundary=")) {
+ fprintf(stderr, "Not handling nested multipart message.\n");
+ exit(1);
+ }
slurp_attr(line, "charset=", charset);
if (*charset) {
int i, c;
diff --git a/tools/mailsplit.c b/mailsplit.c
index a3238c2..a3238c2 100644
--- a/tools/mailsplit.c
+++ b/mailsplit.c
diff --git a/tools/.gitignore b/tools/.gitignore
deleted file mode 100644
index d1ea9ea..0000000
--- a/tools/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-git-mailinfo
-git-mailsplit
diff --git a/tools/Makefile b/tools/Makefile
deleted file mode 100644
index 5cc6d14..0000000
--- a/tools/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# Make Linus git-tools
-#
-CC=gcc
-CFLAGS = -O2 -g -Wall
-ALL_CFLAGS = $(CFLAGS)
-INSTALL=install
-prefix=$(HOME)
-bindir=$(prefix)/bin
-# DESTDIR=
-
-PROGRAMS=git-mailsplit git-mailinfo
-SCRIPTS=git-applymbox git-applypatch
-
-git-%: %.c
- $(CC) $(ALL_CFLAGS) -o $@ $(filter %.c,$^)
-
-all: $(PROGRAMS)
-
-install: $(PROGRAMS) $(SCRIPTS)
- $(INSTALL) -m755 -d $(DESTDIR)$(bindir)
- $(INSTALL) $(PROGRAMS) $(SCRIPTS) $(DESTDIR)$(bindir)
-
-clean:
- rm -f $(PROGRAMS) *.o