Big tool rename.

As promised, this is the "big tool rename" patch.  The primary differences
since 0.99.6 are:

  (1) git-*-script are no more.  The commands installed do not
      have any such suffix so users do not have to remember if
      something is implemented as a shell script or not.

  (2) Many command names with 'cache' in them are renamed with
      'index' if that is what they mean.

There are backward compatibility symblic links so that you and
Porcelains can keep using the old names, but the backward
compatibility support  is expected to be removed in the near
future.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2005-09-07 17:26:23 -07:00
parent 99977bd5fd
commit 215a7ad1ef
160 changed files with 1022 additions and 914 deletions

20
.gitignore vendored
View File

@ -1,28 +1,28 @@
git-apply git-apply
git-build-rev-cache git-build-rev-cache
git-cat-file git-cat-file
git-checkout-cache git-checkout-index
git-clone-pack git-clone-pack
git-commit-tree git-commit-tree
git-convert-cache git-convert-objects
git-daemon git-daemon
git-diff-cache git-diff-index
git-diff-files git-diff-files
git-diff-helper git-diff-helper
git-diff-stages git-diff-stages
git-diff-tree git-diff-tree
git-export git-export
git-fetch-pack git-fetch-pack
git-fsck-cache git-fsck-objects
git-get-tar-commit-id git-get-tar-commit-id
git-hash-object git-hash-object
git-http-pull git-http-fetch
git-init-db git-init-db
git-local-pull git-local-fetch
git-ls-files git-ls-files
git-ls-tree git-ls-tree
git-merge-base git-merge-base
git-merge-cache git-merge-index
git-mktag git-mktag
git-pack-objects git-pack-objects
git-patch-id git-patch-id
@ -37,13 +37,13 @@ git-send-pack
git-show-branch git-show-branch
git-show-index git-show-index
git-show-rev-cache git-show-rev-cache
git-ssh-pull git-ssh-fetch
git-ssh-push git-ssh-upload
git-stripspace git-stripspace
git-tar-tree git-tar-tree
git-unpack-file git-unpack-file
git-unpack-objects git-unpack-objects
git-update-cache git-update-index
git-update-server-info git-update-server-info
git-upload-pack git-upload-pack
git-var git-var

View File

@ -1,13 +1,13 @@
The output format from "git-diff-cache", "git-diff-tree" and The output format from "git-diff-index", "git-diff-tree" and
"git-diff-files" are very similar. "git-diff-files" are very similar.
These commands all compare two sets of things; what are These commands all compare two sets of things; what are
compared are different: compared are different:
git-diff-cache <tree-ish>:: git-diff-index <tree-ish>::
compares the <tree-ish> and the files on the filesystem. compares the <tree-ish> and the files on the filesystem.
git-diff-cache --cached <tree-ish>:: git-diff-index --cached <tree-ish>::
compares the <tree-ish> and the cache. compares the <tree-ish> and the cache.
git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]:: git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]::
@ -58,7 +58,7 @@ Example:
Generating patches with -p Generating patches with -p
-------------------------- --------------------------
When "git-diff-cache", "git-diff-tree", or "git-diff-files" are run When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
with a '-p' option, they do not produce the output described above; with a '-p' option, they do not produce the output described above;
instead they produce a patch file. instead they produce a patch file.
@ -77,7 +77,7 @@ The "diff" formatting options can be customized via the
environment variable 'GIT_DIFF_OPTS'. For example, if you environment variable 'GIT_DIFF_OPTS'. For example, if you
prefer context diff: prefer context diff:
GIT_DIFF_OPTS=-c git-diff-cache -p $(cat .git/HEAD) GIT_DIFF_OPTS=-c git-diff-index -p $(cat .git/HEAD)
2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the 2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the

View File

@ -6,7 +6,7 @@ June 2005
Introduction Introduction
------------ ------------
The diff commands git-diff-cache, git-diff-files, and The diff commands git-diff-index, git-diff-files, and
git-diff-tree can be told to manipulate differences they find git-diff-tree can be told to manipulate differences they find
in unconventional ways before showing diff(1) output. The in unconventional ways before showing diff(1) output. The
manipulation is collectively called "diffcore transformation". manipulation is collectively called "diffcore transformation".
@ -21,7 +21,7 @@ The chain of operation
The git-diff-* family works by first comparing two sets of The git-diff-* family works by first comparing two sets of
files: files:
- git-diff-cache compares contents of a "tree" object and the - git-diff-index compares contents of a "tree" object and the
working directory (when '--cached' flag is not used) or a working directory (when '--cached' flag is not used) or a
"tree" object and the index file (when '--cached' flag is "tree" object and the index file (when '--cached' flag is
used); used);

View File

@ -1,17 +1,17 @@
git-add-script(1) git-add(1)
================= ==========
NAME NAME
---- ----
git-add-script - Add files to the cache. git-add - Add files to the cache.
SYNOPSIS SYNOPSIS
-------- --------
'git-add-script' <file>... 'git-add' <file>...
DESCRIPTION DESCRIPTION
----------- -----------
A simple wrapper to git-update-cache to add files to the cache for people used A simple wrapper to git-update-index to add files to the cache for people used
to do "cvs add". to do "cvs add".
OPTIONS OPTIONS

View File

@ -1,14 +1,14 @@
git-archimport-script(1) git-archimport(1)
======================== =================
NAME NAME
---- ----
git-archimport-script - Import an arch repository into git git-archimport - Import an arch repository into git
SYNOPSIS SYNOPSIS
-------- --------
`git-archimport-script` [--option...] <args> `git-archimport` [--option...] <args>
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,9 +1,9 @@
git-bisect-script(1) git-bisect(1)
==================== =============
NAME NAME
---- ----
git-bisect-script - Find the change that introduced a bug git-bisect - Find the change that introduced a bug
SYNOPSIS SYNOPSIS

View File

@ -1,13 +1,13 @@
git-branch-script(1) git-branch(1)
==================== =============
NAME NAME
---- ----
git-branch-script - Create a new branch. git-branch - Create a new branch.
SYNOPSIS SYNOPSIS
-------- --------
'git-branch-script' [<branchname> [start-point]] 'git-branch' [<branchname> [start-point]]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-checkout-cache(1) git-checkout-index(1)
===================== =====================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-checkout-cache - Copy files from the cache to the working directory git-checkout-index - Copy files from the cache to the working directory
SYNOPSIS SYNOPSIS
-------- --------
'git-checkout-cache' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>] 'git-checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
[--] <file>... [--] <file>...
DESCRIPTION DESCRIPTION
@ -46,21 +46,21 @@ OPTIONS
Note that the order of the flags matters: Note that the order of the flags matters:
git-checkout-cache -a -f file.c git-checkout-index -a -f file.c
will first check out all files listed in the cache (but not overwrite will first check out all files listed in the cache (but not overwrite
any old ones), and then force-checkout `file.c` a second time (ie that any old ones), and then force-checkout `file.c` a second time (ie that
one *will* overwrite any old contents with the same filename). one *will* overwrite any old contents with the same filename).
Also, just doing "git-checkout-cache" does nothing. You probably meant Also, just doing "git-checkout-index" does nothing. You probably meant
"git-checkout-cache -a". And if you want to force it, you want "git-checkout-index -a". And if you want to force it, you want
"git-checkout-cache -f -a". "git-checkout-index -f -a".
Intuitiveness is not the goal here. Repeatability is. The reason for Intuitiveness is not the goal here. Repeatability is. The reason for
the "no arguments means no work" thing is that from scripts you are the "no arguments means no work" thing is that from scripts you are
supposed to be able to do things like: supposed to be able to do things like:
find . -name '*.h' -print0 | xargs -0 git-checkout-cache -f -- find . -name '*.h' -print0 | xargs -0 git-checkout-index -f --
which will force all existing `*.h` files to be replaced with their which will force all existing `*.h` files to be replaced with their
cached copies. If an empty command line implied "all", then this would cached copies. If an empty command line implied "all", then this would
@ -68,7 +68,7 @@ force-refresh everything in the cache, which was not the point.
To update and refresh only the files already checked out: To update and refresh only the files already checked out:
git-checkout-cache -n -f -a && git-update-cache --ignore-missing --refresh git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
Oh, and the "--" is just a good idea when you know the rest will be Oh, and the "--" is just a good idea when you know the rest will be
filenames. Just so that you wouldn't have a filename of "-a" causing filenames. Just so that you wouldn't have a filename of "-a" causing
@ -76,18 +76,18 @@ problems (not possible in the above example, but get used to it in
scripting!). scripting!).
The prefix ability basically makes it trivial to use The prefix ability basically makes it trivial to use
git-checkout-cache as an "export as tree" function. Just read the git-checkout-index as an "export as tree" function. Just read the
desired tree into the index, and do a desired tree into the index, and do a
git-checkout-cache --prefix=git-export-dir/ -a git-checkout-index --prefix=git-export-dir/ -a
and git-checkout-cache will "export" the cache into the specified and git-checkout-index will "export" the cache into the specified
directory. directory.
NOTE The final "/" is important. The exported name is literally just NOTE The final "/" is important. The exported name is literally just
prefixed with the specified string, so you can also do something like prefixed with the specified string, so you can also do something like
git-checkout-cache --prefix=.merged- Makefile git-checkout-index --prefix=.merged- Makefile
to check out the currently cached copy of `Makefile` into the file to check out the currently cached copy of `Makefile` into the file
`.merged-Makefile` `.merged-Makefile`

View File

@ -1,13 +1,13 @@
git-checkout-script(1) git-checkout(1)
====================== ===============
NAME NAME
---- ----
git-checkout-script - Checkout and switch to a branch. git-checkout - Checkout and switch to a branch.
SYNOPSIS SYNOPSIS
-------- --------
'git-checkout-script' [-f] [-b <new_branch>] [<branch>] 'git-checkout' [-f] [-b <new_branch>] [<branch>]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,14 +1,14 @@
git-cherry-pick-script(1) git-cherry-pick(1)
========================= ==================
v0.99.5 Aug 2005 v0.99.5 Aug 2005
NAME NAME
---- ----
git-cherry-pick-script - Apply the change introduced by an existing commit. git-cherry-pick - Apply the change introduced by an existing commit.
SYNOPSIS SYNOPSIS
-------- --------
'git-cherry-pick-script' [-n] [-r] <commit> 'git-cherry-pick' [-n] [-r] <commit>
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,10 +1,10 @@
git-clone-script(1) git-clone(1)
=================== ============
v0.1, July 2005 v0.1, July 2005
NAME NAME
---- ----
git-clone-script - Clones a repository. git-clone - Clones a repository.
SYNOPSIS SYNOPSIS

View File

@ -1,10 +1,10 @@
git-commit-script(1) git-commit(1)
==================== =============
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-commit-script - Record your changes git-commit - Record your changes
SYNOPSIS SYNOPSIS
-------- --------

View File

@ -1,15 +1,15 @@
git-convert-cache(1) git-convert-objects(1)
==================== ======================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-convert-cache - Converts old-style GIT repository git-convert-objects - Converts old-style GIT repository
SYNOPSIS SYNOPSIS
-------- --------
'git-convert-cache' 'git-convert-objects'
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,13 +1,13 @@
git-count-objects-script(1) git-count-objects(1)
=========================== ====================
NAME NAME
---- ----
git-count-objects-script - Reports on unpacked objects. git-count-objects - Reports on unpacked objects.
SYNOPSIS SYNOPSIS
-------- --------
'git-count-objects-script' 'git-count-objects'
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-cvsimport-script(1) git-cvsimport(1)
======================= ================
v0.1, July 2005 v0.1, July 2005
NAME NAME
---- ----
git-cvsimport-script - Import a CVS repository into git git-cvsimport - Import a CVS repository into git
SYNOPSIS SYNOPSIS
-------- --------
'git-cvsimport-script' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] 'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
[ -d <CVSROOT> ] [ -p <options-for-cvsps> ] [ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
[ -C <GIT_repository> ] [ -i ] [ -k ] [ -C <GIT_repository> ] [ -i ] [ -k ]
[ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ] [ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]

View File

@ -16,7 +16,7 @@ DESCRIPTION
Compares the files in the working tree and the cache. When paths Compares the files in the working tree and the cache. When paths
are specified, compares only those named paths. Otherwise all are specified, compares only those named paths. Otherwise all
entries in the cache are compared. The output format is the entries in the cache are compared. The output format is the
same as "git-diff-cache" and "git-diff-tree". same as "git-diff-index" and "git-diff-tree".
OPTIONS OPTIONS
------- -------

View File

@ -13,7 +13,7 @@ SYNOPSIS
DESCRIPTION DESCRIPTION
----------- -----------
Reads output from "git-diff-cache", "git-diff-tree" and "git-diff-files" and Reads output from "git-diff-index", "git-diff-tree" and "git-diff-files" and
generates patch format output. generates patch format output.
OPTIONS OPTIONS
@ -35,7 +35,7 @@ OPTIONS
See Also See Also
-------- --------
The section on generating patches in link:git-diff-cache.html[git-diff-cache] The section on generating patches in link:git-diff-index.html[git-diff-index]
Author Author

View File

@ -1,15 +1,15 @@
git-diff-cache(1) git-diff-index(1)
================= =================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-diff-cache - Compares content and mode of blobs between the cache and repository git-diff-index - Compares content and mode of blobs between the cache and repository
SYNOPSIS SYNOPSIS
-------- --------
'git-diff-cache' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...] 'git-diff-index' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...]
DESCRIPTION DESCRIPTION
----------- -----------
@ -32,7 +32,7 @@ include::diff-options.txt[]
-m:: -m::
By default, files recorded in the index but not checked By default, files recorded in the index but not checked
out are reported as deleted. This flag makes out are reported as deleted. This flag makes
"git-diff-cache" say that all non-checked-out files are up "git-diff-index" say that all non-checked-out files are up
to date. to date.
Output format Output format
@ -58,24 +58,24 @@ some files in the cache and are ready to commit. You want to see eactly
*what* you are going to commit is without having to write a new tree *what* you are going to commit is without having to write a new tree
object and compare it that way, and to do that, you just do object and compare it that way, and to do that, you just do
git-diff-cache --cached $(cat .git/HEAD) git-diff-index --cached $(cat .git/HEAD)
Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had Example: let's say I had renamed `commit.c` to `git-commit.c`, and I had
done an "git-update-cache" to make that effective in the index file. done an "git-update-index" to make that effective in the index file.
"git-diff-files" wouldn't show anything at all, since the index file "git-diff-files" wouldn't show anything at all, since the index file
matches my working directory. But doing a "git-diff-cache" does: matches my working directory. But doing a "git-diff-index" does:
torvalds@ppc970:~/git> git-diff-cache --cached $(cat .git/HEAD) torvalds@ppc970:~/git> git-diff-index --cached $(cat .git/HEAD)
-100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c
+100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c +100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c
You can trivially see that the above is a rename. You can trivially see that the above is a rename.
In fact, "git-diff-cache --cached" *should* always be entirely equivalent to In fact, "git-diff-index --cached" *should* always be entirely equivalent to
actually doing a "git-write-tree" and comparing that. Except this one is much actually doing a "git-write-tree" and comparing that. Except this one is much
nicer for the case where you just want to check where you are. nicer for the case where you just want to check where you are.
So doing a "git-diff-cache --cached" is basically very useful when you are So doing a "git-diff-index --cached" is basically very useful when you are
asking yourself "what have I already marked for being committed, and asking yourself "what have I already marked for being committed, and
what's the difference to a previous tree". what's the difference to a previous tree".
@ -96,10 +96,10 @@ output to a tee, but with a twist.
The twist is that if some file doesn't match the cache, we don't have The twist is that if some file doesn't match the cache, we don't have
a backing store thing for it, and we use the magic "all-zero" sha1 to a backing store thing for it, and we use the magic "all-zero" sha1 to
show that. So let's say that you have edited `kernel/sched.c`, but show that. So let's say that you have edited `kernel/sched.c`, but
have not actually done a "git-update-cache" on it yet - there is no have not actually done a "git-update-index" on it yet - there is no
"object" associated with the new state, and you get: "object" associated with the new state, and you get:
torvalds@ppc970:~/v2.6/linux> git-diff-cache $(cat .git/HEAD ) torvalds@ppc970:~/v2.6/linux> git-diff-index $(cat .git/HEAD )
*100644->100664 blob 7476bb......->000000...... kernel/sched.c *100644->100664 blob 7476bb......->000000...... kernel/sched.c
ie it shows that the tree has changed, and that `kernel/sched.c` has is ie it shows that the tree has changed, and that `kernel/sched.c` has is
@ -107,7 +107,7 @@ not up-to-date and may contain new stuff. The all-zero sha1 means that to
get the real diff, you need to look at the object in the working directory get the real diff, you need to look at the object in the working directory
directly rather than do an object-to-object diff. directly rather than do an object-to-object diff.
NOTE! As with other commands of this type, "git-diff-cache" does not NOTE! As with other commands of this type, "git-diff-index" does not
actually look at the contents of the file at all. So maybe actually look at the contents of the file at all. So maybe
`kernel/sched.c` hasn't actually changed, and it's just that you `kernel/sched.c` hasn't actually changed, and it's just that you
touched it. In either case, it's a note that you need to touched it. In either case, it's a note that you need to

View File

@ -93,7 +93,7 @@ so it can be used to name subdirectories.
An example of normal usage is: An example of normal usage is:
torvalds@ppc970:~/git> git-diff-tree 5319e4...... torvalds@ppc970:~/git> git-diff-tree 5319e4......
*100664->100664 blob ac348b.......->a01513....... git-fsck-cache.c *100664->100664 blob ac348b.......->a01513....... git-fsck-objects.c
which tells you that the last commit changed just one file (it's from which tells you that the last commit changed just one file (it's from
this one: this one:
@ -104,7 +104,7 @@ this one:
author Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 2005 author Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 2005
committer Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 2005 committer Linus Torvalds <torvalds@ppc970.osdl.org> Sat Apr 9 12:02:30 2005
Make "git-fsck-cache" print out all the root commits it finds. Make "git-fsck-objects" print out all the root commits it finds.
Once I do the reference tracking, I'll also make it print out all the Once I do the reference tracking, I'll also make it print out all the
HEAD commits it finds, which is even more interesting. HEAD commits it finds, which is even more interesting.

View File

@ -1,14 +1,14 @@
git-diff-script(1) git-diff(1)
================== ===========
NAME NAME
---- ----
git-diff-script - Some git command not yet documented. git-diff - Some git command not yet documented.
SYNOPSIS SYNOPSIS
-------- --------
'git-diff-script' [ --option ] <args>... 'git-diff' [ --option ] <args>...
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-fetch-script(1) git-fetch(1)
=================== ============
v0.99.5, Aug 2005 v0.99.5, Aug 2005
NAME NAME
---- ----
git-fetch-script - Download objects and a head from another repository. git-fetch - Download objects and a head from another repository.
SYNOPSIS SYNOPSIS
-------- --------
'git-fetch-script' <repository> <refspec>... 'git-fetch' <repository> <refspec>...
DESCRIPTION DESCRIPTION

View File

@ -1,14 +1,14 @@
git-format-patch-script(1) git-format-patch(1)
========================== ===================
NAME NAME
---- ----
git-format-patch-script - Some git command not yet documented. git-format-patch - Some git command not yet documented.
SYNOPSIS SYNOPSIS
-------- --------
'git-format-patch-script' [ --option ] <args>... 'git-format-patch' [ --option ] <args>...
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-fsck-cache(1) git-fsck-objects(1)
================= ===================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-fsck-cache - Verifies the connectivity and validity of the objects in the database git-fsck-objects - Verifies the connectivity and validity of the objects in the database
SYNOPSIS SYNOPSIS
-------- --------
'git-fsck-cache' [--tags] [--root] [--unreachable] [--cache] [--standalone | --full] [--strict] [<object>*] 'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache] [--standalone | --full] [--strict] [<object>*]
DESCRIPTION DESCRIPTION
----------- -----------
@ -20,7 +20,7 @@ OPTIONS
<object>:: <object>::
An object to treat as the head of an unreachability trace. An object to treat as the head of an unreachability trace.
If no objects are given, git-fsck-cache defaults to using the If no objects are given, git-fsck-objects defaults to using the
index file and all SHA1 references in .git/refs/* as heads. index file and all SHA1 references in .git/refs/* as heads.
--unreachable:: --unreachable::
@ -69,11 +69,11 @@ that aren't readable from any of the specified head nodes.
So for example So for example
git-fsck-cache --unreachable $(cat .git/HEAD .git/refs/heads/*) git-fsck-objects --unreachable $(cat .git/HEAD .git/refs/heads/*)
will do quite a _lot_ of verification on the tree. There are a few will do quite a _lot_ of verification on the tree. There are a few
extra validity tests to be added (make sure that tree objects are extra validity tests to be added (make sure that tree objects are
sorted properly etc), but on the whole if "git-fsck-cache" is happy, you sorted properly etc), but on the whole if "git-fsck-objects" is happy, you
do have a valid tree. do have a valid tree.
Any corrupt objects you will have to find in backups or other archives Any corrupt objects you will have to find in backups or other archives
@ -111,7 +111,7 @@ dangling <type> <object>::
The <type> object <object>, is present in the database but never The <type> object <object>, is present in the database but never
'directly' used. A dangling commit could be a root node. 'directly' used. A dangling commit could be a root node.
warning: git-fsck-cache: tree <tree> has full pathnames in it:: warning: git-fsck-objects: tree <tree> has full pathnames in it::
And it shouldn't... And it shouldn't...
sha1 mismatch <object>:: sha1 mismatch <object>::

View File

@ -17,7 +17,7 @@ Computes the object ID value for an object with specified type
with the contents of the named file (which can be outside of the with the contents of the named file (which can be outside of the
work tree), and optionally writes the resulting object into the work tree), and optionally writes the resulting object into the
object database. Reports its object ID to its standard output. object database. Reports its object ID to its standard output.
This is used by "git-cvsimport-script" to update the cache This is used by "git-cvsimport" to update the cache
without modifying files in the work tree. When <type> is not without modifying files in the work tree. When <type> is not
specified, it defaults to "blob". specified, it defaults to "blob".

View File

@ -1,15 +1,15 @@
git-http-pull(1) git-http-fetch(1)
================ =================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-http-pull - Downloads a remote GIT repository via HTTP git-http-fetch - Downloads a remote GIT repository via HTTP
SYNOPSIS SYNOPSIS
-------- --------
'git-http-pull' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url 'git-http-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-local-pull(1) git-local-fetch(1)
================= ==================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-local-pull - Duplicates another GIT repository on a local system git-local-fetch - Duplicates another GIT repository on a local system
SYNOPSIS SYNOPSIS
-------- --------
'git-local-pull' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [-l] [-s] [-n] commit-id path 'git-local-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] [-l] [-s] [-n] commit-id path
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,10 +1,10 @@
git-log-script(1) git-log(1)
================= ==========
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-log-script - Show commit logs git-log - Show commit logs
SYNOPSIS SYNOPSIS

View File

@ -1,10 +1,10 @@
git-ls-remote-script(1) git-ls-remote(1)
======================= ================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-ls-remote-script - Look at references other repository has. git-ls-remote - Look at references other repository has.
SYNOPSIS SYNOPSIS

View File

@ -1,15 +1,15 @@
git-merge-cache(1) git-merge-index(1)
================== ==================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-merge-cache - Runs a merge for files needing merging git-merge-index - Runs a merge for files needing merging
SYNOPSIS SYNOPSIS
-------- --------
'git-merge-cache' [-o] [-q] <merge-program> (-a | -- | <file>\*) 'git-merge-index' [-o] [-q] <merge-program> (-a | -- | <file>\*)
DESCRIPTION DESCRIPTION
----------- -----------
@ -37,14 +37,14 @@ OPTIONS
failure usually indicates conflicts during merge). This is for failure usually indicates conflicts during merge). This is for
porcelains which might want to emit custom messages. porcelains which might want to emit custom messages.
If "git-merge-cache" is called with multiple <file>s (or -a) then it If "git-merge-index" is called with multiple <file>s (or -a) then it
processes them in turn only stopping if merge returns a non-zero exit processes them in turn only stopping if merge returns a non-zero exit
code. code.
Typically this is run with the a script calling the merge command from Typically this is run with the a script calling the merge command from
the RCS package. the RCS package.
A sample script called "git-merge-one-file-script" is included in the A sample script called "git-merge-one-file" is included in the
distribution. distribution.
ALERT ALERT ALERT! The git "merge object order" is different from the ALERT ALERT ALERT! The git "merge object order" is different from the
@ -54,7 +54,7 @@ original is first. But the argument order to the 3-way merge program
Examples: Examples:
torvalds@ppc970:~/merge-test> git-merge-cache cat MM torvalds@ppc970:~/merge-test> git-merge-index cat MM
This is MM from the original tree. # original This is MM from the original tree. # original
This is modified MM in the branch A. # merge1 This is modified MM in the branch A. # merge1
This is modified MM in the branch B. # merge2 This is modified MM in the branch B. # merge2
@ -62,17 +62,17 @@ Examples:
or or
torvalds@ppc970:~/merge-test> git-merge-cache cat AA MM torvalds@ppc970:~/merge-test> git-merge-index cat AA MM
cat: : No such file or directory cat: : No such file or directory
This is added AA in the branch A. This is added AA in the branch A.
This is added AA in the branch B. This is added AA in the branch B.
This is added AA in the branch B. This is added AA in the branch B.
fatal: merge program failed fatal: merge program failed
where the latter example shows how "git-merge-cache" will stop trying to where the latter example shows how "git-merge-index" will stop trying to
merge once anything has returned an error (ie "cat" returned an error merge once anything has returned an error (ie "cat" returned an error
for the AA file, because it didn't exist in the original, and thus for the AA file, because it didn't exist in the original, and thus
"git-merge-cache" didn't even try to merge the MM thing). "git-merge-index" didn't even try to merge the MM thing).
Author Author
------ ------

View File

@ -1,19 +1,19 @@
git-merge-one-file-script(1) git-merge-one-file(1)
============================ =====================
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-merge-one-file-script - The standard helper program to use with "git-merge-cache" git-merge-one-file - The standard helper program to use with "git-merge-index"
SYNOPSIS SYNOPSIS
-------- --------
'git-merge-one-file-script' 'git-merge-one-file'
DESCRIPTION DESCRIPTION
----------- -----------
This is the standard helper program to use with "git-merge-cache" This is the standard helper program to use with "git-merge-index"
to resolve a merge after the trivial merge done with "git-read-tree -m". to resolve a merge after the trivial merge done with "git-read-tree -m".
Author Author

View File

@ -1,10 +1,10 @@
git-octopus-script(1) git-octopus(1)
===================== ==============
v0.99.5, Aug 2005 v0.99.5, Aug 2005
NAME NAME
---- ----
git-octopus-script - Merge more than two commits. git-octopus - Merge more than two commits.
SYNOPSIS SYNOPSIS

View File

@ -76,7 +76,7 @@ Documentation by Junio C Hamano
See-Also See-Also
-------- --------
git-repack-script(1) git-prune-packed(1) git-repack(1) git-prune-packed(1)
GIT GIT
--- ---

View File

@ -1,14 +1,14 @@
git-parse-remote-script(1) git-parse-remote(1)
========================== ===================
NAME NAME
---- ----
git-parse-remote-script - Routines to help parsing $GIT_DIR/remotes/ git-parse-remote - Routines to help parsing $GIT_DIR/remotes/
SYNOPSIS SYNOPSIS
-------- --------
'. git-parse-remote-script' '. git-parse-remote'
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -34,7 +34,7 @@ Documentation by Ryan Anderson <ryan@michonline.com>
See-Also See-Also
-------- --------
git-pack-objects(1) git-repack-script(1) git-pack-objects(1) git-repack(1)
GIT GIT
--- ---

View File

@ -1,20 +1,20 @@
git-prune-script(1) git-prune(1)
=================== ============
v0.99.5, Aug 2005 v0.99.5, Aug 2005
NAME NAME
---- ----
git-prune-script - Prunes all unreachable objects from the object database git-prune - Prunes all unreachable objects from the object database
SYNOPSIS SYNOPSIS
-------- --------
'git-prune-script' [-n] 'git-prune' [-n]
DESCRIPTION DESCRIPTION
----------- -----------
This runs `git-fsck-cache --unreachable` using the heads This runs `git-fsck-objects --unreachable` using the heads
specified on the command line (or `$GIT_DIR/refs/heads/\*` and specified on the command line (or `$GIT_DIR/refs/heads/\*` and
`$GIT_DIR/refs/tags/\*` if none is specified), and prunes all `$GIT_DIR/refs/tags/\*` if none is specified), and prunes all
unreachable objects from the object database. In addition, it unreachable objects from the object database. In addition, it

View File

@ -1,20 +1,20 @@
git-pull-script(1) git-pull(1)
================== ===========
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-pull-script - Pull and merge from another repository. git-pull - Pull and merge from another repository.
SYNOPSIS SYNOPSIS
-------- --------
'git-pull-script' <repository> <refspec>... 'git-pull' <repository> <refspec>...
DESCRIPTION DESCRIPTION
----------- -----------
Runs 'git-fetch-script' with the given parameters. Runs 'git-fetch' with the given parameters.
When only one ref is downloaded, runs 'git resolve' to merge it When only one ref is downloaded, runs 'git resolve' to merge it
into the local HEAD. Otherwise uses 'git octopus' to merge them into the local HEAD. Otherwise uses 'git octopus' to merge them

View File

@ -1,14 +1,14 @@
git-push-script(1) git-push(1)
================== ===========
NAME NAME
---- ----
git-push-script - Update remote refs along with associated objects. git-push - Update remote refs along with associated objects.
SYNOPSIS SYNOPSIS
-------- --------
'git-push-script' [--all] [--force] <repository> <refspec>... 'git-push' [--all] [--force] <repository> <refspec>...
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -16,7 +16,7 @@ DESCRIPTION
----------- -----------
Reads the tree information given by <tree-ish> into the directory cache, Reads the tree information given by <tree-ish> into the directory cache,
but does not actually *update* any of the files it "caches". (see: but does not actually *update* any of the files it "caches". (see:
git-checkout-cache) git-checkout-index)
Optionally, it can merge a tree into the cache, perform a Optionally, it can merge a tree into the cache, perform a
fast-forward (i.e. 2-way) merge, or a 3-way merge, with the -m fast-forward (i.e. 2-way) merge, or a 3-way merge, with the -m
@ -56,7 +56,7 @@ being read, the stat info from the cache is used. (In other words, the
cache's stat()s take precedence over the merged tree's). cache's stat()s take precedence over the merged tree's).
That means that if you do a "git-read-tree -m <newtree>" followed by a That means that if you do a "git-read-tree -m <newtree>" followed by a
"git-checkout-cache -f -u -a", the "git-checkout-cache" only checks out "git-checkout-index -f -u -a", the "git-checkout-index" only checks out
the stuff that really changed. the stuff that really changed.
This is used to avoid unnecessary false hits when "git-diff-files" is This is used to avoid unnecessary false hits when "git-diff-files" is
@ -126,13 +126,13 @@ operating under the -u flag.
When this form of git-read-tree returns successfully, you can When this form of git-read-tree returns successfully, you can
see what "local changes" you made are carried forward by running see what "local changes" you made are carried forward by running
"git-diff-cache --cached $M". Note that this does not "git-diff-index --cached $M". Note that this does not
necessarily match "git-diff-cache --cached $H" would have necessarily match "git-diff-index --cached $H" would have
produced before such a two tree merge. This is because of cases produced before such a two tree merge. This is because of cases
18 and 19 --- if you already had the changes in $M (e.g. maybe 18 and 19 --- if you already had the changes in $M (e.g. maybe
you picked it up via e-mail in a patch form), "git-diff-cache you picked it up via e-mail in a patch form), "git-diff-index
--cached $H" would have told you about the change before this --cached $H" would have told you about the change before this
merge, but it would not show in "git-diff-cache --cached $M" merge, but it would not show in "git-diff-index --cached $M"
output after two-tree merge. output after two-tree merge.
@ -205,8 +205,8 @@ populated. Here is an outline of how the algorithm works:
matching "stage1" entry if it exists too. .. all the normal matching "stage1" entry if it exists too. .. all the normal
trivial rules .. trivial rules ..
You would normally use "git-merge-cache" with supplied You would normally use "git-merge-index" with supplied
"git-merge-one-file-script" to do this last step. The script "git-merge-one-file" to do this last step. The script
does not touch the files in the work tree, and the entire merge does not touch the files in the work tree, and the entire merge
happens in the index file. In other words, there is no need to happens in the index file. In other words, there is no need to
worry about what is in the working directory, since it is never worry about what is in the working directory, since it is never
@ -225,13 +225,13 @@ changes. To illustrate, suppose you start from what has been
commited last to your repository: commited last to your repository:
$ JC=`cat .git/HEAD` $ JC=`cat .git/HEAD`
$ git-checkout-cache -f -u -a $JC $ git-checkout-index -f -u -a $JC
You do random edits, without running git-update-cache. And then You do random edits, without running git-update-index. And then
you notice that the tip of your "upstream" tree has advanced you notice that the tip of your "upstream" tree has advanced
since you pulled from him: since you pulled from him:
$ git-fetch-script rsync://.... linus $ git-fetch rsync://.... linus
$ LT=`cat .git/MERGE_HEAD` $ LT=`cat .git/MERGE_HEAD`
Your work tree is still based on your HEAD ($JC), but you have Your work tree is still based on your HEAD ($JC), but you have
@ -240,7 +240,7 @@ added or modified cache entries since $JC, and if you haven't,
then does the right thing. So with the following sequence: then does the right thing. So with the following sequence:
$ git-read-tree -m -u `git-merge-base $JC $LT` $JC $LT $ git-read-tree -m -u `git-merge-base $JC $LT` $JC $LT
$ git-merge-cache git-merge-one-file-script -a $ git-merge-index git-merge-one-file -a
$ echo "Merge with Linus" | \ $ echo "Merge with Linus" | \
git-commit-tree `git-write-tree` -p $JC -p $LT git-commit-tree `git-write-tree` -p $JC -p $LT

View File

@ -1,13 +1,13 @@
git-rebase-script(1) git-rebase(1)
==================== =============
NAME NAME
---- ----
git-rebase-script - Rebase local commits to new upstream head. git-rebase - Rebase local commits to new upstream head.
SYNOPSIS SYNOPSIS
-------- --------
'git-rebase-script' <upstream> [<head>] 'git-rebase' <upstream> [<head>]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,13 +1,13 @@
git-relink-script(1) git-relink(1)
==================== =============
NAME NAME
---- ----
git-relink-script - Hardlink common objects in local repositories. git-relink - Hardlink common objects in local repositories.
SYNOPSIS SYNOPSIS
-------- --------
'git-relink-script' [--safe] <dir> <dir> [<dir>]\* 'git-relink' [--safe] <dir> <dir> [<dir>]\*
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-rename-script(1) git-rename(1)
==================== =============
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-rename-script - Script used to rename a file, directory or symlink. git-rename - Script used to rename a file, directory or symlink.
SYNOPSIS SYNOPSIS
-------- --------
'git-rename-script' <source> <destination> 'git-rename' <source> <destination>
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,16 +1,16 @@
git-repack-script(1) git-repack(1)
==================== =============
v0.99.5, August 2005 v0.99.5, August 2005
NAME NAME
---- ----
git-repack-script - Script used to pack a repository from a collection of git-repack - Script used to pack a repository from a collection of
objects into pack files. objects into pack files.
SYNOPSIS SYNOPSIS
-------- --------
'git-repack-script' [-a] [-d] 'git-repack' [-a] [-d]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,13 +1,13 @@
git-request-pull-script(1) git-request-pull(1)
========================== ===================
NAME NAME
---- ----
git-request-pull-script - Generates a summary of pending changes. git-request-pull - Generates a summary of pending changes.
SYNOPSIS SYNOPSIS
-------- --------
'git-request-pull-script' <start> <url> [<end>] 'git-request-pull' <start> <url> [<end>]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,13 +1,13 @@
git-reset-script(1) git-reset(1)
=================== ============
NAME NAME
---- ----
git-reset-script - Reset current HEAD to the specified state. git-reset - Reset current HEAD to the specified state.
SYNOPSIS SYNOPSIS
-------- --------
'git-reset-script' [--mixed | --soft | --hard] [<commit-ish>] 'git-reset' [--mixed | --soft | --hard] [<commit-ish>]
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,10 +1,10 @@
git-resolve-script(1) git-resolve(1)
===================== ==============
v0.99.5, Aug 2005 v0.99.5, Aug 2005
NAME NAME
---- ----
git-resolve-script - Merge two commits git-resolve - Merge two commits
SYNOPSIS SYNOPSIS

View File

@ -1,13 +1,13 @@
git-revert-script(1) git-revert(1)
==================== =============
NAME NAME
---- ----
git-revert-script - Revert an existing commit. git-revert - Revert an existing commit.
SYNOPSIS SYNOPSIS
-------- --------
'git-revert-script' [-n] <commit> 'git-revert' [-n] <commit>
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-send-email-script(1) git-send-email(1)
======================== =================
v0.1, July 2005 v0.1, July 2005
NAME NAME
---- ----
git-send-email-script - Send a collection of patches as emails git-send-email - Send a collection of patches as emails
SYNOPSIS SYNOPSIS
-------- --------
'git-send-email-script' [options] <file|directory> [... file|directory] 'git-send-email' [options] <file|directory> [... file|directory]
@ -66,7 +66,7 @@ Author
------ ------
Written by Ryan Anderson <ryan@michonline.com> Written by Ryan Anderson <ryan@michonline.com>
git-send-email-script is originally based upon git-send-email is originally based upon
send_lots_of_email.pl by Greg Kroah-Hartman. send_lots_of_email.pl by Greg Kroah-Hartman.
Documentation Documentation

View File

@ -1,13 +1,13 @@
git-sh-setup-script(1) git-sh-setup(1)
====================== ===============
NAME NAME
---- ----
git-sh-setup-script - Common git shell script setup code. git-sh-setup - Common git shell script setup code.
SYNOPSIS SYNOPSIS
-------- --------
'git-sh-setup-script' 'git-sh-setup'
DESCRIPTION DESCRIPTION
----------- -----------
@ -16,7 +16,7 @@ Sets up the normal git environment variables and a few helper functions
(currently just "die()"), and returns ok if it all looks like a git archive. (currently just "die()"), and returns ok if it all looks like a git archive.
So use it something like So use it something like
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
to make the rest of the git scripts more careful and readable. to make the rest of the git scripts more careful and readable.

View File

@ -88,7 +88,7 @@ the name of the branch because it is obvious.
$ git show-branch --more=4 master $ git show-branch --more=4 master
[master] Add 'git show-branch'. [master] Add 'git show-branch'.
[~1] Add a new extended SHA1 syntax <name>~<num> [~1] Add a new extended SHA1 syntax <name>~<num>
[~2] Fix "git-diff-script A B" [~2] Fix "git-diff A B"
[~3] git-ls-files: generalized pathspecs [~3] git-ls-files: generalized pathspecs
[~4] Make "git-ls-files" work in subdirectories [~4] Make "git-ls-files" work in subdirectories
------------------------------------------------ ------------------------------------------------

View File

@ -1,22 +1,22 @@
git-ssh-pull(1) git-ssh-fetch(1)
=============== ================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-ssh-pull - Pulls from a remote repository over ssh connection git-ssh-fetch - Pulls from a remote repository over ssh connection
SYNOPSIS SYNOPSIS
-------- --------
'git-ssh-pull' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url 'git-ssh-fetch' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url
DESCRIPTION DESCRIPTION
----------- -----------
Pulls from a remote repository over ssh connection, invoking Pulls from a remote repository over ssh connection, invoking
git-ssh-push on the other end. It functions identically to git-ssh-upload on the other end. It functions identically to
git-ssh-push, aside from which end you run it on. git-ssh-upload, aside from which end you run it on.
OPTIONS OPTIONS

View File

@ -1,21 +1,21 @@
git-ssh-push(1) git-ssh-upload(1)
=============== =================
v0.1, Jun 2005 v0.1, Jun 2005
NAME NAME
---- ----
git-ssh-push - Pushes to a remote repository over ssh connection git-ssh-upload - Pushes to a remote repository over ssh connection
SYNOPSIS SYNOPSIS
-------- --------
'git-ssh-push' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url 'git-ssh-upload' [-c] [-t] [-a] [-d] [-v] [-w filename] [--recover] commit-id url
DESCRIPTION DESCRIPTION
----------- -----------
Pushes from a remote repository over ssh connection, invoking Pushes from a remote repository over ssh connection, invoking
git-ssh-pull on the other end. It functions identically to git-ssh-fetch on the other end. It functions identically to
git-ssh-pull, aside from which end you run it on. git-ssh-fetch, aside from which end you run it on.
OPTIONS OPTIONS
------- -------

View File

@ -1,10 +1,10 @@
git-status-script(1) git-status(1)
==================== =============
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-status-script - Show working tree status. git-status - Show working tree status.
SYNOPSIS SYNOPSIS
@ -16,7 +16,7 @@ DESCRIPTION
Examines paths in the working tree that has changes unrecorded Examines paths in the working tree that has changes unrecorded
to the index file, and changes between the index file and the to the index file, and changes between the index file and the
current HEAD commit. The former paths are what you _could_ current HEAD commit. The former paths are what you _could_
commit by running 'git-update-cache' before running 'git commit by running 'git-update-index' before running 'git
commit', and the latter paths are what you _would_ commit by commit', and the latter paths are what you _would_ commit by
running 'git commit'. running 'git commit'.

View File

@ -1,16 +1,16 @@
git-tag-script(1) git-tag(1)
================= ==========
v0.99.4, Aug 2005 v0.99.4, Aug 2005
NAME NAME
---- ----
git-tag-script - Create a tag object signed with GPG git-tag - Create a tag object signed with GPG
SYNOPSIS SYNOPSIS
-------- --------
'git-tag-script' [-s | -a] [-f] <name> 'git-tag' [-s | -a] [-f] <name>
DESCRIPTION DESCRIPTION
----------- -----------

View File

@ -1,15 +1,15 @@
git-update-cache(1) git-update-index(1)
=================== ===================
v0.1, May 2005 v0.1, May 2005
NAME NAME
---- ----
git-update-cache - Modifies the index or directory cache git-update-index - Modifies the index or directory cache
SYNOPSIS SYNOPSIS
-------- --------
'git-update-cache' 'git-update-index'
[--add] [--remove] [--refresh] [--replace] [--add] [--remove] [--refresh] [--replace]
[--ignore-missing] [--ignore-missing]
[--force-remove] [--force-remove]
@ -23,7 +23,7 @@ Modifies the index or directory cache. Each file mentioned is updated
into the cache and any 'unmerged' or 'needs updating' state is into the cache and any 'unmerged' or 'needs updating' state is
cleared. cleared.
The way "git-update-cache" handles files it is told about can be modified The way "git-update-index" handles files it is told about can be modified
using the various options: using the various options:
OPTIONS OPTIONS
@ -59,7 +59,7 @@ OPTIONS
--replace:: --replace::
By default, when a file `path` exists in the index, By default, when a file `path` exists in the index,
git-update-cache refuses an attempt to add `path/file`. git-update-index refuses an attempt to add `path/file`.
Similarly if a file `path/file` exists, a file `path` Similarly if a file `path/file` exists, a file `path`
cannot be added. With --replace flag, existing entries cannot be added. With --replace flag, existing entries
that conflicts with the entry being added are that conflicts with the entry being added are
@ -94,7 +94,7 @@ merging.
To pretend you have a file with mode and sha1 at path, say: To pretend you have a file with mode and sha1 at path, say:
$ git-update-cache --cacheinfo mode sha1 path $ git-update-index --cacheinfo mode sha1 path
'--info-only' is used to register files without placing them in the object '--info-only' is used to register files without placing them in the object
database. This is useful for status-only repositories. database. This is useful for status-only repositories.
@ -109,7 +109,7 @@ Examples
-------- --------
To update and refresh only the files already checked out: To update and refresh only the files already checked out:
git-checkout-cache -n -f -a && git-update-cache --ignore-missing --refresh git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
Author Author

View File

@ -44,7 +44,7 @@ Your sysadmin must hate you!::
See Also See Also
-------- --------
link:git-commit-tree.html[git-commit-tree] link:git-commit-tree.html[git-commit-tree]
link:git-tag-script.html[git-tag-script] link:git-tag.html[git-tag]
Author Author
------ ------

View File

@ -1,17 +1,17 @@
git-verify-tag-script(1) git-verify-tag(1)
======================== =================
NAME NAME
---- ----
git-verify-tag-script - Check the GPG signature of tag. git-verify-tag - Check the GPG signature of tag.
SYNOPSIS SYNOPSIS
-------- --------
'git-verify-tag-script' <tag> 'git-verify-tag' <tag>
DESCRIPTION DESCRIPTION
----------- -----------
Validates the gpg signature created by git-tag-script. Validates the gpg signature created by git-tag.
OPTIONS OPTIONS
------- -------

View File

@ -20,7 +20,7 @@ The cache must be merged.
Conceptually, "git-write-tree" sync()s the current directory cache contents Conceptually, "git-write-tree" sync()s the current directory cache contents
into a set of tree files. into a set of tree files.
In order to have that match what is actually in your directory right In order to have that match what is actually in your directory right
now, you need to have done a "git-update-cache" phase before you did the now, you need to have done a "git-update-index" phase before you did the
"git-write-tree". "git-write-tree".
OPTIONS OPTIONS

View File

@ -21,7 +21,7 @@ at the link:tutorial.html[tutorial] document.
The <<Discussion>> section below contains much useful definition and The <<Discussion>> section below contains much useful definition and
clarification info - read that first. And of the commands, I suggest clarification info - read that first. And of the commands, I suggest
reading link:git-update-cache.html[git-update-cache] and reading link:git-update-index.html[git-update-index] and
link:git-read-tree.html[git-read-tree] first - I wish I had! link:git-read-tree.html[git-read-tree] first - I wish I had!
If you are migrating from CVS, link:cvs-migration.html[cvs migration] If you are migrating from CVS, link:cvs-migration.html[cvs migration]
@ -59,8 +59,9 @@ link:git-apply.html[git-apply]::
Reads a "diff -up1" or git generated patch file and Reads a "diff -up1" or git generated patch file and
applies it to the working tree. applies it to the working tree.
link:git-checkout-cache.html[git-checkout-cache]:: link:git-checkout-index.html[git-checkout-index]::
Copy files from the cache to the working directory Copy files from the cache to the working directory
Previously this command was known as git-checkout-cache.
link:git-commit-tree.html[git-commit-tree]:: link:git-commit-tree.html[git-commit-tree]::
Creates a new commit object Creates a new commit object
@ -71,8 +72,9 @@ link:git-hash-object.html[git-hash-object]::
link:git-init-db.html[git-init-db]:: link:git-init-db.html[git-init-db]::
Creates an empty git object database Creates an empty git object database
link:git-merge-cache.html[git-merge-cache]:: link:git-merge-index.html[git-merge-index]::
Runs a merge for files needing merging Runs a merge for files needing merging
Previously this command was known as git-merge-cache.
link:git-mktag.html[git-mktag]:: link:git-mktag.html[git-mktag]::
Creates a tag object Creates a tag object
@ -89,8 +91,9 @@ link:git-read-tree.html[git-read-tree]::
link:git-unpack-objects.html[git-unpack-objects]:: link:git-unpack-objects.html[git-unpack-objects]::
Unpacks objects out of a packed archive. Unpacks objects out of a packed archive.
link:git-update-cache.html[git-update-cache]:: link:git-update-index.html[git-update-index]::
Modifies the index or directory cache Modifies the index or directory cache
Previously this command was known as git-update-cache.
link:git-write-tree.html[git-write-tree]:: link:git-write-tree.html[git-write-tree]::
Creates a tree from the current cache Creates a tree from the current cache
@ -102,8 +105,9 @@ Interrogation commands
link:git-cat-file.html[git-cat-file]:: link:git-cat-file.html[git-cat-file]::
Provide content or type information for repository objects Provide content or type information for repository objects
link:git-diff-cache.html[git-diff-cache]:: link:git-diff-index.html[git-diff-index]::
Compares content and mode of blobs between the cache and repository Compares content and mode of blobs between the cache and repository
Previously this command was known as git-diff-cache.
link:git-diff-files.html[git-diff-files]:: link:git-diff-files.html[git-diff-files]::
Compares files in the working tree and the cache Compares files in the working tree and the cache
@ -117,8 +121,9 @@ link:git-diff-tree.html[git-diff-tree]::
link:git-export.html[git-export]:: link:git-export.html[git-export]::
Exports each commit and a diff against each of its parents Exports each commit and a diff against each of its parents
link:git-fsck-cache.html[git-fsck-cache]:: link:git-fsck-objects.html[git-fsck-objects]::
Verifies the connectivity and validity of the objects in the database Verifies the connectivity and validity of the objects in the database
Previously this command was known as git-fsck-cache.
link:git-ls-files.html[git-ls-files]:: link:git-ls-files.html[git-ls-files]::
Information about files in the cache/working directory Information about files in the cache/working directory
@ -164,11 +169,13 @@ link:git-clone-pack.html[git-clone-pack]::
link:git-fetch-pack.html[git-fetch-pack]:: link:git-fetch-pack.html[git-fetch-pack]::
Updates from a remote repository. Updates from a remote repository.
link:git-http-pull.html[git-http-pull]:: link:git-http-fetch.html[git-http-fetch]::
Downloads a remote GIT repository via HTTP Downloads a remote GIT repository via HTTP
Previously this command was known as git-http-pull.
link:git-local-pull.html[git-local-pull]:: link:git-local-fetch.html[git-local-fetch]::
Duplicates another GIT repository on a local system Duplicates another GIT repository on a local system
Previously this command was known as git-local-pull.
link:git-peek-remote.html[git-peek-remote]:: link:git-peek-remote.html[git-peek-remote]::
Lists references on a remote repository using upload-pack protocol. Lists references on a remote repository using upload-pack protocol.
@ -179,11 +186,13 @@ link:git-receive-pack.html[git-receive-pack]::
link:git-send-pack.html[git-send-pack]:: link:git-send-pack.html[git-send-pack]::
Pushes to a remote repository, intelligently. Pushes to a remote repository, intelligently.
link:git-ssh-pull.html[git-ssh-pull]:: link:git-ssh-fetch.html[git-ssh-fetch]::
Pulls from a remote repository over ssh connection Pulls from a remote repository over ssh connection
Previously this command was known as git-ssh-pull.
link:git-ssh-push.html[git-ssh-push]:: link:git-ssh-upload.html[git-ssh-upload]::
Helper "server-side" program used by git-ssh-pull Helper "server-side" program used by git-ssh-fetch
Previously this command was known as git-ssh-push.
link:git-update-server-info.html[git-update-server-info]:: link:git-update-server-info.html[git-update-server-info]::
Updates auxiliary information on a dumb server to help Updates auxiliary information on a dumb server to help
@ -197,65 +206,84 @@ link:git-upload-pack.html[git-upload-pack]::
Porcelain-ish Commands Porcelain-ish Commands
---------------------- ----------------------
link:git-add-script.html[git-add-script]:: link:git-add.html[git-add]::
Add paths to the index file. Add paths to the index file.
Previously this command was known as git-add-script.
link:git-applymbox.html[git-applymbox]:: link:git-applymbox.html[git-applymbox]::
Apply patches from a mailbox. Apply patches from a mailbox.
link:git-bisect-script.html[git-bisect-script]:: link:git-bisect.html[git-bisect]::
Find the change that introduced a bug. Find the change that introduced a bug.
Previously this command was known as git-bisect-script.
link:git-branch-script.html[git-branch-script]:: link:git-branch.html[git-branch]::
Create and Show branches. Create and Show branches.
Previously this command was known as git-branch-script.
link:git-checkout-script.html[git-checkout-script]:: link:git-checkout.html[git-checkout]::
Checkout and switch to a branch. Checkout and switch to a branch.
Previously this command was known as git-checkout-script.
link:git-cherry-pick-script.html[git-cherry-pick-script]:: link:git-cherry-pick.html[git-cherry-pick]::
Cherry-pick the effect of an existing commit. Cherry-pick the effect of an existing commit.
Previously this command was known as git-cherry-pick-script.
link:git-clone-script.html[git-clone-script]:: link:git-clone.html[git-clone]::
Clones a repository into a new directory. Clones a repository into a new directory.
Previously this command was known as git-clone-script.
link:git-commit-script.html[git-commit-script]:: link:git-commit.html[git-commit]::
Record changes to the repository. Record changes to the repository.
Previously this command was known as git-commit-script.
link:git-fetch-script.html[git-fetch-script]:: link:git-fetch.html[git-fetch]::
Download from a remote repository via various protocols. Download from a remote repository via various protocols.
Previously this command was known as git-fetch-script.
link:git-log-script.html[git-log-script]:: link:git-log.html[git-log]::
Shows commit logs. Shows commit logs.
Previously this command was known as git-log-script.
link:git-ls-remote-script.html[git-ls-remote-script]:: link:git-ls-remote.html[git-ls-remote]::
Shows references in a remote or local repository. Shows references in a remote or local repository.
Previously this command was known as git-ls-remote-script.
link:git-octopus-script.html[git-octopus-script]:: link:git-octopus.html[git-octopus]::
Merge more than two commits. Merge more than two commits.
Previously this command was known as git-octopus-script.
link:git-pull-script.html[git-pull-script]:: link:git-pull.html[git-pull]::
Fetch from and merge with a remote repository. Fetch from and merge with a remote repository.
Previously this command was known as git-pull-script.
link:git-push-script.html[git-push-script]:: link:git-push.html[git-push]::
Update remote refs along with associated objects. Update remote refs along with associated objects.
Previously this command was known as git-push-script.
link:git-rebase-script.html[git-rebase-script]:: link:git-rebase.html[git-rebase]::
Rebase local commits to new upstream head. Rebase local commits to new upstream head.
Previously this command was known as git-rebase-script.
link:git-rename-script.html[git-rename]:: link:git-rename.html[git-rename]::
Rename files and directories. Rename files and directories.
Previously this command was known as git-rename-script.
link:git-repack-script.html[git-repack-script]:: link:git-repack.html[git-repack]::
Pack unpacked objects in a repository. Pack unpacked objects in a repository.
Previously this command was known as git-repack-script.
link:git-reset-script.html[git-reset-script]:: link:git-reset.html[git-reset]::
Reset current HEAD to the specified state. Reset current HEAD to the specified state.
Previously this command was known as git-reset-script.
link:git-resolve-script.html[git-resolve-script]:: link:git-resolve.html[git-resolve]::
Merge two commits. Merge two commits.
Previously this command was known as git-resolve-script.
link:git-revert-script.html[git-revert-script]:: link:git-revert.html[git-revert]::
Revert an existing commit. Revert an existing commit.
Previously this command was known as git-revert-script.
link:git-shortlog.html[git-shortlog]:: link:git-shortlog.html[git-shortlog]::
Summarizes 'git log' output. Summarizes 'git log' output.
@ -263,11 +291,13 @@ link:git-shortlog.html[git-shortlog]::
link:git-show-branch.html[git-show-branch]:: link:git-show-branch.html[git-show-branch]::
Show branches and their commits. Show branches and their commits.
link:git-status-script.html[git-status-script]:: link:git-status.html[git-status]::
Shows the working tree status. Shows the working tree status.
Previously this command was known as git-status-script.
link:git-verify-tag-script.html[git-verify-tag-script]:: link:git-verify-tag.html[git-verify-tag]::
Check the GPG signature of tag. Check the GPG signature of tag.
Previously this command was known as git-verify-tag-script.
link:git-whatchanged.html[git-whatchanged]:: link:git-whatchanged.html[git-whatchanged]::
Shows commit logs and differences they introduce. Shows commit logs and differences they introduce.
@ -280,29 +310,37 @@ Manipulators:
link:git-applypatch.html[git-applypatch]:: link:git-applypatch.html[git-applypatch]::
Apply one patch extracted from an e-mail. Apply one patch extracted from an e-mail.
link:git-archimport-script.html[git-archimport-script]:: link:git-archimport.html[git-archimport]::
Import an arch repository into git. Import an arch repository into git.
Previously this command was known as git-archimport-script.
link:git-convert-cache.html[git-convert-cache]:: link:git-convert-objects.html[git-convert-objects]::
Converts old-style GIT repository Converts old-style GIT repository
Previously this command was known as git-convert-cache.
link:git-cvsimport-script.html[git-cvsimport-script]:: link:git-cvsimport.html[git-cvsimport]::
Salvage your data out of another SCM people love to hate. Salvage your data out of another SCM people love to hate.
Previously this command was known as git-cvsimport-script.
link:git-merge-one-file-script.html[git-merge-one-file-script]:: link:git-merge-one-file.html[git-merge-one-file]::
The standard helper program to use with "git-merge-cache" The standard helper program to use with "git-merge-index"
Previously this command was known as git-merge-one-file-script.
link:git-prune-script.html[git-prune-script]:: link:git-prune.html[git-prune]::
Prunes all unreachable objects from the object database Prunes all unreachable objects from the object database
Previously this command was known as git-prune-script.
link:git-relink-script.html[git-relink-script]:: link:git-relink.html[git-relink]::
Hardlink common objects in local repositories. Hardlink common objects in local repositories.
Previously this command was known as git-relink-script.
link:git-sh-setup-script.html[git-sh-setup-script]:: link:git-sh-setup.html[git-sh-setup]::
Common git shell script setup code. Common git shell script setup code.
Previously this command was known as git-sh-setup-script.
link:git-tag-script.html[git-tag-script]:: link:git-tag.html[git-tag]::
An example script to create a tag object signed with GPG An example script to create a tag object signed with GPG
Previously this command was known as git-tag-script.
Interrogators: Interrogators:
@ -313,8 +351,9 @@ link:git-build-rev-cache.html[git-build-rev-cache]::
link:git-cherry.html[git-cherry]:: link:git-cherry.html[git-cherry]::
Find commits not merged upstream. Find commits not merged upstream.
link:git-count-objects-script.html[git-count-objects-script]:: link:git-count-objects.html[git-count-objects]::
Count unpacked number of objects and their disk consumption. Count unpacked number of objects and their disk consumption.
Previously this command was known as git-count-objects-script.
link:git-daemon.html[git-daemon]:: link:git-daemon.html[git-daemon]::
A really simple server for GIT repositories. A really simple server for GIT repositories.
@ -334,17 +373,20 @@ link:git-mailsplit.html[git-mailsplit]::
link:git-patch-id.html[git-patch-id]:: link:git-patch-id.html[git-patch-id]::
Compute unique ID for a patch. Compute unique ID for a patch.
link:git-parse-remote-script.html[git-parse-remote-script]:: link:git-parse-remote.html[git-parse-remote]::
Routines to help parsing $GIT_DIR/remotes/ Routines to help parsing $GIT_DIR/remotes/
Previously this command was known as git-parse-remote-script.
link:git-request-pull-script.html[git-request-pull-script]:: link:git-request-pull.html[git-request-pull]::
git-request-pull-script. git-request-pull.
Previously this command was known as git-request-pull-script.
link:git-rev-parse.html[git-rev-parse]:: link:git-rev-parse.html[git-rev-parse]::
Pick out and massage parameters. Pick out and massage parameters.
link:git-send-email-script.html[git-send-email]:: link:git-send-email.html[git-send-email]::
Send patch e-mails out of "format-patch --mbox" output. Send patch e-mails out of "format-patch --mbox" output.
Previously this command was known as git-send-email-script.
link:git-show-rev-cache.html[git-show-rev-cache]:: link:git-show-rev-cache.html[git-show-rev-cache]::
Show the contents of a rev-cache file. Show the contents of a rev-cache file.
@ -352,11 +394,13 @@ link:git-show-rev-cache.html[git-show-rev-cache]::
Commands not yet documented Commands not yet documented
--------------------------- ---------------------------
link:git-diff-script.html[git-diff-script]:: link:git-diff.html[git-diff]::
git-diff-script. git-diff.
Previously this command was known as git-diff-script.
link:git-format-patch-script.html[git-format-patch-script]:: link:git-format-patch.html[git-format-patch]::
git-format-patch-script. git-format-patch.
Previously this command was known as git-format-patch-script.
link:git-stripspace.html[git-stripspace]:: link:git-stripspace.html[git-stripspace]::
git-stripspace. git-stripspace.
@ -473,7 +517,7 @@ git Diffs
'GIT_DIFF_OPTS':: 'GIT_DIFF_OPTS'::
'GIT_EXTERNAL_DIFF':: 'GIT_EXTERNAL_DIFF'::
see the "generating patches" section in : see the "generating patches" section in :
link:git-diff-cache.html[git-diff-cache]; link:git-diff-index.html[git-diff-index];
link:git-diff-files.html[git-diff-files]; link:git-diff-files.html[git-diff-files];
link:git-diff-tree.html[git-diff-tree] link:git-diff-tree.html[git-diff-tree]

View File

@ -56,11 +56,11 @@ the outcome of `git-applypatch`.
pre-commit pre-commit
---------- ----------
This hook is invoked by `git-commit-script`, and can be bypassed This hook is invoked by `git-commit`, and can be bypassed
with `--no-verify` option. It takes no parameter, and is with `--no-verify` option. It takes no parameter, and is
invoked before obtaining the proposed commit log message and invoked before obtaining the proposed commit log message and
making a commit. Exiting with non-zero status from this script making a commit. Exiting with non-zero status from this script
causes the `git-commit-script` to abort. causes the `git-commit` to abort.
The default pre-commit hook, when enabled, catches introduction The default pre-commit hook, when enabled, catches introduction
of lines with trailing whitespaces and aborts the commit when of lines with trailing whitespaces and aborts the commit when
@ -69,10 +69,10 @@ a such line is found.
commit-msg commit-msg
---------- ----------
This hook is invoked by `git-commit-script`, and can be bypassed This hook is invoked by `git-commit`, and can be bypassed
with `--no-verify` option. It takes a single parameter, the with `--no-verify` option. It takes a single parameter, the
name of the file that holds the proposed commit log message. name of the file that holds the proposed commit log message.
Exiting with non-zero status causes the `git-commit-script` to Exiting with non-zero status causes the `git-commit` to
abort. abort.
The hook is allowed to edit the message file in place, and can The hook is allowed to edit the message file in place, and can
@ -86,11 +86,11 @@ Signed-off-by: lines, and aborts the commit when one is found.
post-commit post-commit
----------- -----------
This hook is invoked by `git-commit-script`. It takes no This hook is invoked by `git-commit`. It takes no
parameter, and is invoked after a commit is made. parameter, and is invoked after a commit is made.
This hook is meant primarily for notification, and cannot affect This hook is meant primarily for notification, and cannot affect
the outcome of `git-commit-script`. the outcome of `git-commit`.
The default post-commit hook, when enabled, demonstrates how to The default post-commit hook, when enabled, demonstrates how to
send out a commit notification e-mail. send out a commit notification e-mail.

View File

@ -32,7 +32,7 @@ This is my crappy "release-script":
stable="$1" stable="$1"
last="$2" last="$2"
new="$3" new="$3"
echo "# git-tag-script v$new" echo "# git-tag v$new"
echo "git-tar-tree v$new linux-$new | gzip -9 > ../linux-$new.tar.gz" echo "git-tar-tree v$new linux-$new | gzip -9 > ../linux-$new.tar.gz"
echo "git-diff-tree -p v$stable v$new | gzip -9 > ../patch-$new.gz" echo "git-diff-tree -p v$stable v$new | gzip -9 > ../patch-$new.gz"
echo "git-rev-list --pretty v$new ^v$last > ../ChangeLog-$new" echo "git-rev-list --pretty v$new ^v$last > ../ChangeLog-$new"

View File

@ -111,7 +111,7 @@ prepare #2 and #3 for e-mail submission.
This creates two files, 0001-XXXX.txt and 0002-XXXX.txt. Send This creates two files, 0001-XXXX.txt and 0002-XXXX.txt. Send
them out "To: " your project maintainer and "Cc: " your mailing them out "To: " your project maintainer and "Cc: " your mailing
list. You could use contributed script git-send-email-script if list. You could use contributed script git-send-email if
your host has necessary perl modules for this, but your usual your host has necessary perl modules for this, but your usual
MUA would do as long as it does not corrupt whitespaces in the MUA would do as long as it does not corrupt whitespaces in the
patch. patch.

View File

@ -182,10 +182,10 @@ And the final repository status looks like this:
------------------------------------------------ ------------------------------------------------
$ git show-branch --more=1 master pu rc $ git show-branch --more=1 master pu rc
! [master] Revert "Replace zero-length array decls with []." ! [master] Revert "Replace zero-length array decls with []."
! [pu] git-repack-script: Add option to repack all objects. ! [pu] git-repack: Add option to repack all objects.
* [rc] Merge refs/heads/master from . * [rc] Merge refs/heads/master from .
--- ---
+ [pu] git-repack-script: Add option to repack all objects. + [pu] git-repack: Add option to repack all objects.
+ [pu~1] More documentation updates. + [pu~1] More documentation updates.
+ [pu~2] Show commits in topo order and name all commits. + [pu~2] Show commits in topo order and name all commits.
+ [pu~3] mailinfo and applymbox updates + [pu~3] mailinfo and applymbox updates

View File

@ -126,7 +126,7 @@ actually check in your hard work, you will have to go through two steps:
- commit that index file as an object. - commit that index file as an object.
The first step is trivial: when you want to tell git about any changes The first step is trivial: when you want to tell git about any changes
to your working tree, you use the `git-update-cache` program. That to your working tree, you use the `git-update-index` program. That
program normally just takes a list of filenames you want to update, but program normally just takes a list of filenames you want to update, but
to avoid trivial mistakes, it refuses to add new entries to the cache to avoid trivial mistakes, it refuses to add new entries to the cache
(or remove existing ones) unless you explicitly tell it that you're (or remove existing ones) unless you explicitly tell it that you're
@ -136,7 +136,7 @@ adding a new entry with the `\--add` flag (or removing an entry with the
So to populate the index with the two files you just created, you can do So to populate the index with the two files you just created, you can do
------------------------------------------------ ------------------------------------------------
git-update-cache --add hello example git-update-index --add hello example
------------------------------------------------ ------------------------------------------------
and you have now told git to track those two files. and you have now told git to track those two files.
@ -183,7 +183,7 @@ hexadecimal digits in most places.
Anyway, as we mentioned previously, you normally never actually take a Anyway, as we mentioned previously, you normally never actually take a
look at the objects themselves, and typing long 40-character hex look at the objects themselves, and typing long 40-character hex
names is not something you'd normally want to do. The above digression names is not something you'd normally want to do. The above digression
was just to show that `git-update-cache` did something magical, and was just to show that `git-update-index` did something magical, and
actually saved away the contents of your files into the git object actually saved away the contents of your files into the git object
database. database.
@ -318,7 +318,7 @@ instead, and it would have done the above magic scripting for you.
Making a change Making a change
--------------- ---------------
Remember how we did the `git-update-cache` on file `hello` and then we Remember how we did the `git-update-index` on file `hello` and then we
changed `hello` afterward, and could compare the new state of `hello` with the changed `hello` afterward, and could compare the new state of `hello` with the
state we saved in the index file? state we saved in the index file?
@ -333,18 +333,18 @@ As before, if we do `git-diff-files -p` in our git-tutorial project,
we'll still see the same difference we saw last time: the index file we'll still see the same difference we saw last time: the index file
hasn't changed by the act of committing anything. However, now that we hasn't changed by the act of committing anything. However, now that we
have committed something, we can also learn to use a new command: have committed something, we can also learn to use a new command:
`git-diff-cache`. `git-diff-index`.
Unlike `git-diff-files`, which showed the difference between the index Unlike `git-diff-files`, which showed the difference between the index
file and the working tree, `git-diff-cache` shows the differences file and the working tree, `git-diff-index` shows the differences
between a committed *tree* and either the index file or the working between a committed *tree* and either the index file or the working
tree. In other words, `git-diff-cache` wants a tree to be diffed tree. In other words, `git-diff-index` wants a tree to be diffed
against, and before we did the commit, we couldn't do that, because we against, and before we did the commit, we couldn't do that, because we
didn't have anything to diff against. didn't have anything to diff against.
But now we can do But now we can do
git-diff-cache -p HEAD git-diff-index -p HEAD
(where `-p` has the same meaning as it did in `git-diff-files`), and it (where `-p` has the same meaning as it did in `git-diff-files`), and it
will show us the same difference, but for a totally different reason. will show us the same difference, but for a totally different reason.
@ -359,16 +359,16 @@ it with
which ends up doing the above for you. which ends up doing the above for you.
In other words, `git-diff-cache` normally compares a tree against the In other words, `git-diff-index` normally compares a tree against the
working tree, but when given the `\--cached` flag, it is told to working tree, but when given the `\--cached` flag, it is told to
instead compare against just the index cache contents, and ignore the instead compare against just the index cache contents, and ignore the
current working tree state entirely. Since we just wrote the index current working tree state entirely. Since we just wrote the index
file to HEAD, doing `git-diff-cache \--cached -p HEAD` should thus return file to HEAD, doing `git-diff-index \--cached -p HEAD` should thus return
an empty set of differences, and that's exactly what it does. an empty set of differences, and that's exactly what it does.
[NOTE] [NOTE]
================ ================
`git-diff-cache` really always uses the index for its `git-diff-index` really always uses the index for its
comparisons, and saying that it compares a tree against the working comparisons, and saying that it compares a tree against the working
tree is thus not strictly accurate. In particular, the list of tree is thus not strictly accurate. In particular, the list of
files to compare (the "meta-data") *always* comes from the index file, files to compare (the "meta-data") *always* comes from the index file,
@ -391,7 +391,7 @@ work through the index file, so the first thing we need to do is to
update the index cache: update the index cache:
------------------------------------------------ ------------------------------------------------
git-update-cache hello git-update-index hello
------------------------------------------------ ------------------------------------------------
(note how we didn't need the `\--add` flag this time, since git knew (note how we didn't need the `\--add` flag this time, since git knew
@ -399,9 +399,9 @@ about the file already).
Note what happens to the different `git-diff-\*` versions here. After Note what happens to the different `git-diff-\*` versions here. After
we've updated `hello` in the index, `git-diff-files -p` now shows no we've updated `hello` in the index, `git-diff-files -p` now shows no
differences, but `git-diff-cache -p HEAD` still *does* show that the differences, but `git-diff-index -p HEAD` still *does* show that the
current state is different from the state we committed. In fact, now current state is different from the state we committed. In fact, now
`git-diff-cache` shows the same difference whether we use the `--cached` `git-diff-index` shows the same difference whether we use the `--cached`
flag or not, since now the index is coherent with the working tree. flag or not, since now the index is coherent with the working tree.
Now, since we've updated `hello` in the index, we can commit the new Now, since we've updated `hello` in the index, we can commit the new
@ -429,7 +429,7 @@ You've now made your first real git commit. And if you're interested in
looking at what `git commit` really does, feel free to investigate: looking at what `git commit` really does, feel free to investigate:
it's a few very simple shell scripts to generate the helpful (?) commit it's a few very simple shell scripts to generate the helpful (?) commit
message headers, and a few one-liners that actually do the message headers, and a few one-liners that actually do the
commit itself (`git-commit-script`). commit itself (`git-commit`).
Checking it out Checking it out
@ -490,11 +490,11 @@ can explore on your own.
Most likely, you are not directly using the core Most likely, you are not directly using the core
git Plumbing commands, but using Porcelain like Cogito on top git Plumbing commands, but using Porcelain like Cogito on top
of it. Cogito works a bit differently and you usually do not of it. Cogito works a bit differently and you usually do not
have to run `git-update-cache` yourself for changed files (you have to run `git-update-index` yourself for changed files (you
do tell underlying git about additions and removals via do tell underlying git about additions and removals via
`cg-add` and `cg-rm` commands). Just before you make a commit `cg-add` and `cg-rm` commands). Just before you make a commit
with `cg-commit`, Cogito figures out which files you modified, with `cg-commit`, Cogito figures out which files you modified,
and runs `git-update-cache` on them for you. and runs `git-update-index` on them for you.
Tagging a version Tagging a version
@ -579,7 +579,7 @@ file (which caches various information, notably some of the "stat"
information for the files involved) will likely need to be refreshed. information for the files involved) will likely need to be refreshed.
So after you do a `cp -a` to create a new copy, you'll want to do So after you do a `cp -a` to create a new copy, you'll want to do
git-update-cache --refresh git-update-index --refresh
+ +
in the new repository to make sure that the index file is up-to-date. in the new repository to make sure that the index file is up-to-date.
@ -591,16 +591,16 @@ When copying a remote repository, you'll want to at a minimum update the
index cache when you do this, and especially with other peoples' index cache when you do this, and especially with other peoples'
repositories you often want to make sure that the index cache is in some repositories you often want to make sure that the index cache is in some
known state (you don't know *what* they've done and not yet checked in), known state (you don't know *what* they've done and not yet checked in),
so usually you'll precede the `git-update-cache` with a so usually you'll precede the `git-update-index` with a
git-read-tree --reset HEAD git-read-tree --reset HEAD
git-update-cache --refresh git-update-index --refresh
which will force a total index re-build from the tree pointed to by `HEAD`. which will force a total index re-build from the tree pointed to by `HEAD`.
It resets the index contents to `HEAD`, and then the `git-update-cache` It resets the index contents to `HEAD`, and then the `git-update-index`
makes sure to match up all index entries with the checked-out files. makes sure to match up all index entries with the checked-out files.
If the original repository had uncommitted changes in its If the original repository had uncommitted changes in its
working tree, `git-update-cache --refresh` notices them and working tree, `git-update-index --refresh` notices them and
tells you they need to be updated. tells you they need to be updated.
The above can also be written as simply The above can also be written as simply
@ -610,7 +610,7 @@ The above can also be written as simply
and in fact a lot of the common git command combinations can be scripted and in fact a lot of the common git command combinations can be scripted
with the `git xyz` interfaces, and you can learn things by just looking with the `git xyz` interfaces, and you can learn things by just looking
at what the `git-*-script` scripts do (`git reset` is the above two lines at what the `git-*-script` scripts do (`git reset` is the above two lines
implemented in `git-reset-script`, but some things like `git status` and implemented in `git-reset`, but some things like `git status` and
`git commit` are slightly more complex scripts around the basic git `git commit` are slightly more complex scripts around the basic git
commands). commands).
@ -638,13 +638,13 @@ you have all the git internal files, but you will notice that you don't
actually have any of the working tree files to work on. To get actually have any of the working tree files to work on. To get
those, you'd check them out with those, you'd check them out with
git-checkout-cache -u -a git-checkout-index -u -a
where the `-u` flag means that you want the checkout to keep the index where the `-u` flag means that you want the checkout to keep the index
up-to-date (so that you don't have to refresh it afterward), and the up-to-date (so that you don't have to refresh it afterward), and the
`-a` flag means "check out all files" (if you have a stale copy or an `-a` flag means "check out all files" (if you have a stale copy or an
older version of a checked out tree you may also need to add the `-f` older version of a checked out tree you may also need to add the `-f`
flag first, to tell git-checkout-cache to *force* overwriting of any old flag first, to tell git-checkout-index to *force* overwriting of any old
files). files).
Again, this can all be simplified with Again, this can all be simplified with
@ -742,7 +742,7 @@ git commit -m 'Some work.' hello
------------------------------------------------ ------------------------------------------------
Here, we just added another line to `hello`, and we used a shorthand for Here, we just added another line to `hello`, and we used a shorthand for
both going a `git-update-cache hello` and `git commit` by just giving the both going a `git-update-index hello` and `git commit` by just giving the
filename directly to `git commit`. The `-m` flag is to give the filename directly to `git commit`. The `-m` flag is to give the
commit log message from the command line. commit log message from the command line.
@ -971,7 +971,7 @@ transports', because they do not require any GIT aware smart
server like GIT Native transport does. Any stock HTTP server server like GIT Native transport does. Any stock HTTP server
would suffice. would suffice.
+ +
There are (confusingly enough) `git-ssh-pull` and `git-ssh-push` There are (confusingly enough) `git-ssh-fetch` and `git-ssh-upload`
programs, which are 'commit walkers'; they outlived their programs, which are 'commit walkers'; they outlived their
usefulness when GIT Native and SSH transports were introduced, usefulness when GIT Native and SSH transports were introduced,
and not used by `git pull` or `git push` scripts. and not used by `git pull` or `git push` scripts.

View File

@ -18,7 +18,7 @@ Issues of note:
Tough. Either don't use the wrapper script, or delete the old GNU Tough. Either don't use the wrapper script, or delete the old GNU
interactive tools. None of the core git stuff needs the wrapper, interactive tools. None of the core git stuff needs the wrapper,
it's just a convenient shorthand and while it is documented in some it's just a convenient shorthand and while it is documented in some
places, you can always replace "git commit" with "git-commit-script" places, you can always replace "git commit" with "git-commit"
instead. instead.
But let's face it, most of us don't have GNU interactive tools, and But let's face it, most of us don't have GNU interactive tools, and
@ -41,8 +41,8 @@ Issues of note:
can avoid the bignum support by excising git-rev-list support can avoid the bignum support by excising git-rev-list support
for "--merge-order" (by hand). for "--merge-order" (by hand).
- "libcurl" and "curl" executable. git-http-pull and - "libcurl" and "curl" executable. git-http-fetch and
git-fetch-script use them. If you do not use http git-fetch use them. If you do not use http
transfer, you are probabaly OK if you do not have transfer, you are probabaly OK if you do not have
them. them.

150
Makefile
View File

@ -57,24 +57,21 @@ SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
### --- END CONFIGURATION SECTION --- ### --- END CONFIGURATION SECTION ---
SCRIPT_SH = \
git-add.sh git-bisect.sh git-branch.sh git-checkout.sh \
git-cherry.sh git-clone.sh git-commit.sh \
git-count-objects.sh git-diff.sh git-fetch.sh \
git-format-patch.sh git-log.sh git-ls-remote.sh \
git-merge-one-file.sh git-octopus.sh git-parse-remote.sh \
git-prune.sh git-pull.sh git-push.sh git-rebase.sh \
git-repack.sh git-request-pull.sh git-reset.sh \
git-resolve.sh git-revert.sh git-sh-setup.sh git-status.sh \
git-tag.sh git-verify-tag.sh git-whatchanged.sh git.sh \
git-applymbox.sh git-applypatch.sh
SCRIPT_PERL = \
SCRIPTS=git git-merge-one-file-script git-prune-script \ git-archimport.perl git-cvsimport.perl git-relink.perl \
git-pull-script git-tag-script git-resolve-script git-whatchanged \ git-rename.perl git-send-email.perl git-shortlog.perl
git-fetch-script git-status-script git-commit-script \
git-log-script git-shortlog git-cvsimport-script git-diff-script \
git-reset-script git-add-script git-checkout-script git-clone-script \
gitk git-cherry git-rebase-script git-relink-script git-repack-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-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. # The ones that do not have to link with lcrypto nor lz.
SIMPLE_PROGRAMS = \ SIMPLE_PROGRAMS = \
@ -82,56 +79,50 @@ SIMPLE_PROGRAMS = \
git-daemon git-var git-daemon git-var
# ... and all the rest # ... and all the rest
PROG= git-update-cache git-diff-files git-init-db git-write-tree \ PROGRAMS = \
git-read-tree git-commit-tree git-cat-file git-fsck-cache \ git-apply git-build-rev-cache git-cat-file \
git-checkout-cache git-diff-tree git-rev-tree git-ls-files \ git-checkout-index git-clone-pack git-commit-tree \
git-ls-tree git-merge-base git-merge-cache \ git-convert-objects git-diff-files \
git-unpack-file git-export git-diff-cache git-convert-cache \ git-diff-helper git-diff-index git-diff-stages \
git-ssh-push git-ssh-pull git-rev-list git-mktag \ git-diff-tree git-export git-fetch-pack git-fsck-objects \
git-diff-helper git-tar-tree git-local-pull git-hash-object \ git-hash-object git-init-db \
git-apply \ git-local-fetch git-ls-files git-ls-tree git-merge-base \
git-diff-stages git-rev-parse git-patch-id git-pack-objects \ git-merge-index git-mktag git-pack-objects git-patch-id \
git-unpack-objects git-verify-pack git-receive-pack git-send-pack \ git-peek-remote git-prune-packed git-read-tree \
git-prune-packed git-fetch-pack git-upload-pack git-clone-pack \ git-receive-pack git-rev-list git-rev-parse \
git-show-index git-peek-remote git-show-branch \ git-rev-tree git-send-pack git-show-branch \
git-update-server-info git-show-rev-cache git-build-rev-cache \ git-show-index git-show-rev-cache git-ssh-fetch \
git-ssh-upload git-tar-tree git-unpack-file \
git-unpack-objects git-update-index git-update-server-info \
git-upload-pack git-verify-pack git-write-tree \
$(SIMPLE_PROGRAMS) $(SIMPLE_PROGRAMS)
ifdef WITH_SEND_EMAIL ifdef WITH_SEND_EMAIL
SCRIPTS += git-send-email-script SCRIPT_PERL += git-send-email.perl
endif endif
ifndef NO_CURL ifndef NO_CURL
PROG+= git-http-pull PROGRAMS += git-http-fetch
endif endif
LIB_FILE=libgit.a LIB_FILE=libgit.a
LIB_H=cache.h object.h blob.h tree.h commit.h tag.h delta.h epoch.h csum-file.h \
pack.h pkt-line.h refs.h
LIB_OBJS=read-cache.o sha1_file.o usage.o object.o commit.o tree.o blob.o \
tag.o date.o index.o diff-delta.o patch-delta.o entry.o path.o \
refs.o csum-file.o pack-check.o pkt-line.o connect.o ident.o \
sha1_name.o setup.o
LIB_H += rev-cache.h LIB_H = \
LIB_OBJS += rev-cache.o blob.h cache.h commit.h count-delta.h csum-file.h delta.h \
diff.h epoch.h object.h pack.h pkt-line.h quote.h refs.h \
rev-cache.h run-command.h strbuf.h tag.h tree.h
LIB_H += run-command.h DIFF_OBJS = \
LIB_OBJS += run-command.o diff.o diffcore-break.o diffcore-order.o diffcore-pathspec.o \
diffcore-pickaxe.o diffcore-rename.o
LIB_H += strbuf.h LIB_OBJS = \
LIB_OBJS += strbuf.o blob.o commit.o connect.o count-delta.o csum-file.o \
date.o diff-delta.o entry.o gitenv.o ident.o index.o \
LIB_H += quote.h object.o pack-check.o patch-delta.o path.o pkt-line.o \
LIB_OBJS += quote.o quote.o read-cache.o refs.o rev-cache.o run-command.o \
server-info.o setup.o sha1_file.o sha1_name.o strbuf.o \
LIB_H += diff.h count-delta.h tag.o tree.o usage.o $(DIFF_OBJS)
DIFF_OBJS = diff.o diffcore-rename.o diffcore-pickaxe.o diffcore-pathspec.o \
diffcore-break.o diffcore-order.o
LIB_OBJS += $(DIFF_OBJS) count-delta.o
LIB_OBJS += gitenv.o
LIB_OBJS += server-info.o
LIBS = $(LIB_FILE) LIBS = $(LIB_FILE)
LIBS += -lz LIBS += -lz
@ -143,11 +134,11 @@ endif
ifndef NO_OPENSSL ifndef NO_OPENSSL
LIB_OBJS += epoch.o LIB_OBJS += epoch.o
OPENSSL_LIBSSL=-lssl OPENSSL_LIBSSL = -lssl
else else
DEFINES += '-DNO_OPENSSL' DEFINES += '-DNO_OPENSSL'
MOZILLA_SHA1=1 MOZILLA_SHA1 = 1
OPENSSL_LIBSSL= OPENSSL_LIBSSL =
endif endif
ifdef NEEDS_SSL_WITH_CRYPTO ifdef NEEDS_SSL_WITH_CRYPTO
LIB_4_CRYPTO = -lcrypto -lssl LIB_4_CRYPTO = -lcrypto -lssl
@ -160,25 +151,25 @@ else
LIB_4_ICONV = LIB_4_ICONV =
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>
LIBS += $(LIB_4_CRYPTO) LIBS += $(LIB_4_CRYPTO)
endif endif
endif endif
DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)' DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
SCRIPTS = $(SCRIPT_SH) $(SCRIPT_PERL) gitk
### Build rules ### Build rules
all: $(PROG) all: $(PROGRAMS)
all: all:
$(MAKE) -C templates $(MAKE) -C templates
@ -196,12 +187,12 @@ $(SIMPLE_PROGRAMS) : $(LIB_FILE)
$(SIMPLE_PROGRAMS) : git-% : %.o $(SIMPLE_PROGRAMS) : git-% : %.o
$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB) $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB)
git-http-pull: pull.o git-http-fetch: fetch.o
git-local-pull: pull.o git-local-fetch: fetch.o
git-ssh-pull: rsh.o pull.o git-ssh-fetch: rsh.o fetch.o
git-ssh-push: rsh.o git-ssh-upload: rsh.o
git-http-pull: LIBS += -lcurl git-http-fetch: 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
@ -209,7 +200,7 @@ init-db.o: init-db.c
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
$(LIB_OBJS): $(LIB_H) $(LIB_OBJS): $(LIB_H)
$(patsubst git-%,%.o,$(PROG)): $(LIB_H) $(patsubst git-%,%.o,$(PROGRAMS)): $(LIB_H)
$(DIFF_OBJS): diffcore.h $(DIFF_OBJS): diffcore.h
$(LIB_FILE): $(LIB_OBJS) $(LIB_FILE): $(LIB_OBJS)
@ -219,7 +210,6 @@ doc:
$(MAKE) -C Documentation all $(MAKE) -C Documentation all
### Testing rules ### Testing rules
test: all test: all
@ -238,10 +228,22 @@ check:
### Installation rules ### Installation rules
install: $(PROG) $(SCRIPTS) install: $(PROGRAMS) $(SCRIPTS)
$(INSTALL) -m755 -d $(DESTDIR)$(bindir) $(INSTALL) -m755 -d $(DESTDIR)$(bindir)
$(INSTALL) $(PROG) $(SCRIPTS) $(DESTDIR)$(bindir) $(INSTALL) $(PROGRAMS) $(DESTDIR)$(bindir)
$(INSTALL) git-revert-script $(DESTDIR)$(bindir)/git-cherry-pick-script @for s in $(SCRIPTS); \
do \
case "$$s" in \
*.*) \
e=`expr "$$s" : '\(.*\)\.[^.]*$$'` ;; \
*) \
e="$$s" ;; \
esac && \
echo ": install $$s $(DESTDIR)$(bindir)/$$e" && \
$(INSTALL) $$s $(DESTDIR)$(bindir)/$$e || exit; \
done
$(INSTALL) git-revert.sh $(DESTDIR)$(bindir)/git-cherry-pick
sh ./cmd-rename.sh $(DESTDIR)$(bindir)
$(MAKE) -C templates install $(MAKE) -C templates install
install-doc: install-doc:
@ -276,7 +278,7 @@ deb: dist
### 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 $(PROGRAMS) $(LIB_FILE)
rm -f git-core.spec rm -f git-core.spec
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

26
README
View File

@ -81,7 +81,7 @@ size> + <byte\0> + <binary object data>.
The structured objects can further have their structure and The structured objects can further have their structure and
connectivity to other objects verified. This is generally done with connectivity to other objects verified. This is generally done with
the `git-fsck-cache` program, which generates a full dependency graph the `git-fsck-objects` program, which generates a full dependency graph
of all objects, and verifies their internal consistency (in addition of all objects, and verifies their internal consistency (in addition
to just verifying their superficial consistency through the hash). to just verifying their superficial consistency through the hash).
@ -104,7 +104,7 @@ object. The object is totally independent of its location in the
directory tree, and renaming a file does not change the object that directory tree, and renaming a file does not change the object that
file is associated with in any way. file is associated with in any way.
A blob is typically created when link:git-update-cache.html[git-update-cache] A blob is typically created when link:git-update-index.html[git-update-index]
is run, and its data can be accessed by link:git-cat-file.html[git-cat-file]. is run, and its data can be accessed by link:git-cat-file.html[git-cat-file].
Tree Object Tree Object
@ -218,7 +218,7 @@ verification) has to come from outside.
A tag is created with link:git-mktag.html[git-mktag], A tag is created with link:git-mktag.html[git-mktag],
its data can be accessed by link:git-cat-file.html[git-cat-file], its data can be accessed by link:git-cat-file.html[git-cat-file],
and the signature can be verified by and the signature can be verified by
link:git-verify-tag-script.html[git-verify-tag]. link:git-verify-tag.html[git-verify-tag].
The "index" aka "Current Directory Cache" The "index" aka "Current Directory Cache"
@ -286,11 +286,11 @@ main combinations:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You update the index with information from the working directory with You update the index with information from the working directory with
the link:git-update-cache.html[git-update-cache] command. You the link:git-update-index.html[git-update-index] command. You
generally update the index information by just specifying the filename generally update the index information by just specifying the filename
you want to update, like so: you want to update, like so:
git-update-cache filename git-update-index filename
but to avoid common mistakes with filename globbing etc, the command but to avoid common mistakes with filename globbing etc, the command
will not normally add totally new entries or remove old entries, will not normally add totally new entries or remove old entries,
@ -307,7 +307,7 @@ removed. The only thing `--remove` means is that update-cache will be
considering a removed file to be a valid thing, and if the file really considering a removed file to be a valid thing, and if the file really
does not exist any more, it will update the index accordingly. does not exist any more, it will update the index accordingly.
As a special case, you can also do `git-update-cache --refresh`, which As a special case, you can also do `git-update-index --refresh`, which
will refresh the "stat" information of each index to match the current will refresh the "stat" information of each index to match the current
stat information. It will 'not' update the object status itself, and stat information. It will 'not' update the object status itself, and
it will only update the fields that are used to quickly test whether it will only update the fields that are used to quickly test whether
@ -347,18 +347,18 @@ You update your working directory from the index by "checking out"
files. This is not a very common operation, since normally you'd just files. This is not a very common operation, since normally you'd just
keep your files updated, and rather than write to your working keep your files updated, and rather than write to your working
directory, you'd tell the index files about the changes in your directory, you'd tell the index files about the changes in your
working directory (i.e. `git-update-cache`). working directory (i.e. `git-update-index`).
However, if you decide to jump to a new version, or check out somebody However, if you decide to jump to a new version, or check out somebody
else's version, or just restore a previous tree, you'd populate your else's version, or just restore a previous tree, you'd populate your
index file with read-tree, and then you need to check out the result index file with read-tree, and then you need to check out the result
with with
git-checkout-cache filename git-checkout-index filename
or, if you want to check out all of the index, use `-a`. or, if you want to check out all of the index, use `-a`.
NOTE! git-checkout-cache normally refuses to overwrite old files, so NOTE! git-checkout-index normally refuses to overwrite old files, so
if you have an old version of the tree already checked out, you will if you have an old version of the tree already checked out, you will
need to use the "-f" flag ('before' the "-a" flag or the filename) to need to use the "-f" flag ('before' the "-a" flag or the filename) to
'force' the checkout. 'force' the checkout.
@ -530,17 +530,17 @@ the merge result makes sense, you can tell git what the final
merge result for this file is by: merge result for this file is by:
mv -f hello.c~2 hello.c mv -f hello.c~2 hello.c
git-update-cache hello.c git-update-index hello.c
When a path is in unmerged state, running `git-update-cache` for When a path is in unmerged state, running `git-update-index` for
that path tells git to mark the path resolved. that path tells git to mark the path resolved.
The above is the description of a git merge at the lowest level, The above is the description of a git merge at the lowest level,
to help you understand what conceptually happens under the hood. to help you understand what conceptually happens under the hood.
In practice, nobody, not even git itself, uses three `git-cat-file` In practice, nobody, not even git itself, uses three `git-cat-file`
for this. There is `git-merge-cache` program that extracts the for this. There is `git-merge-index` program that extracts the
stages to temporary files and calls a `merge` script on it stages to temporary files and calls a `merge` script on it
git-merge-cache git-merge-one-file-script hello.c git-merge-index git-merge-one-file hello.c
and that is what higher level `git resolve` is implemented with. and that is what higher level `git resolve` is implemented with.

View File

@ -5,22 +5,22 @@
* *
* Careful: order of argument flags does matter. For example, * Careful: order of argument flags does matter. For example,
* *
* git-checkout-cache -a -f file.c * git-checkout-index -a -f file.c
* *
* Will first check out all files listed in the cache (but not * Will first check out all files listed in the cache (but not
* overwrite any old ones), and then force-checkout "file.c" a * overwrite any old ones), and then force-checkout "file.c" a
* second time (ie that one _will_ overwrite any old contents * second time (ie that one _will_ overwrite any old contents
* with the same filename). * with the same filename).
* *
* Also, just doing "git-checkout-cache" does nothing. You probably * Also, just doing "git-checkout-index" does nothing. You probably
* meant "git-checkout-cache -a". And if you want to force it, you * meant "git-checkout-index -a". And if you want to force it, you
* want "git-checkout-cache -f -a". * want "git-checkout-index -f -a".
* *
* Intuitiveness is not the goal here. Repeatability is. The * Intuitiveness is not the goal here. Repeatability is. The
* reason for the "no arguments means no work" thing is that * reason for the "no arguments means no work" thing is that
* from scripts you are supposed to be able to do things like * from scripts you are supposed to be able to do things like
* *
* find . -name '*.h' -print0 | xargs -0 git-checkout-cache -f -- * find . -name '*.h' -print0 | xargs -0 git-checkout-index -f --
* *
* which will force all existing *.h files to be replaced with * which will force all existing *.h files to be replaced with
* their cached copies. If an empty command line implied "all", * their cached copies. If an empty command line implied "all",
@ -50,7 +50,7 @@ static int checkout_file(const char *name)
if (!state.quiet) { if (!state.quiet) {
pos = -pos - 1; pos = -pos - 1;
fprintf(stderr, fprintf(stderr,
"git-checkout-cache: %s is %s.\n", "git-checkout-index: %s is %s.\n",
name, name,
(pos < active_nr && (pos < active_nr &&
!strcmp(active_cache[pos]->name, name)) ? !strcmp(active_cache[pos]->name, name)) ?
@ -76,7 +76,7 @@ static int checkout_all(void)
} }
static const char checkout_cache_usage[] = static const char checkout_cache_usage[] =
"git-checkout-cache [-u] [-q] [-a] [-f] [-n] [--prefix=<string>] [--] <file>..."; "git-checkout-index [-u] [-q] [-a] [-f] [-n] [--prefix=<string>] [--] <file>...";
static struct cache_file cache_file; static struct cache_file cache_file;

53
cmd-rename.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/sh
d="$1"
test -d "$d" || exit
while read old new
do
rm -f "$d/$old"
ln -s "$new" "$d/$old"
done <<\EOF
git-add-script git-add
git-archimport-script git-archimport
git-bisect-script git-bisect
git-branch-script git-branch
git-checkout-script git-checkout
git-cherry-pick-script git-cherry-pick
git-clone-script git-clone
git-commit-script git-commit
git-count-objects-script git-count-objects
git-cvsimport-script git-cvsimport
git-diff-script git-diff
git-send-email-script git-send-email
git-fetch-script git-fetch
git-format-patch-script git-format-patch
git-log-script git-log
git-ls-remote-script git-ls-remote
git-merge-one-file-script git-merge-one-file
git-octopus-script git-octopus
git-parse-remote-script git-parse-remote
git-prune-script git-prune
git-pull-script git-pull
git-push-script git-push
git-rebase-script git-rebase
git-relink-script git-relink
git-rename-script git-rename
git-repack-script git-repack
git-request-pull-script git-request-pull
git-reset-script git-reset
git-resolve-script git-resolve
git-revert-script git-revert
git-sh-setup-script git-sh-setup
git-status-script git-status
git-tag-script git-tag
git-verify-tag-script git-verify-tag
git-http-pull git-http-fetch
git-local-pull git-local-fetch
git-ssh-pull git-ssh-fetch
git-checkout-cache git-checkout-index
git-diff-cache git-diff-index
git-merge-cache git-merge-index
git-update-cache git-update-index
git-ssh-push git-ssh-upload
git-convert-cache git-convert-objects
git-fsck-cache git-fsck-objects
EOF

View File

@ -318,7 +318,7 @@ int main(int argc, char **argv)
struct entry *entry; struct entry *entry;
if (argc != 2 || get_sha1(argv[1], sha1)) if (argc != 2 || get_sha1(argv[1], sha1))
usage("git-convert-cache <sha1>"); usage("git-convert-objects <sha1>");
entry = convert_entry(sha1); entry = convert_entry(sha1);
printf("new sha1: %s\n", sha1_to_hex(entry->new_sha1)); printf("new sha1: %s\n", sha1_to_hex(entry->new_sha1));

2
debian/changelog vendored
View File

@ -6,7 +6,7 @@ git-core (0.99.6-0) unstable; urgency=low
git-core (0.99.5-1) unstable; urgency=low git-core (0.99.5-1) unstable; urgency=low
* Enable git-send-email-script on Debian. There is no reason to shy * Enable git-send-email on Debian. There is no reason to shy
away from it, since we have the necessary Perl modules available. away from it, since we have the necessary Perl modules available.
-- Junio C Hamano <junkio@cox.net> Thu, 25 Aug 2005 14:16:59 -0700 -- Junio C Hamano <junkio@cox.net> Thu, 25 Aug 2005 14:16:59 -0700

View File

@ -164,7 +164,7 @@ static void mark_merge_entries(void)
} }
static const char diff_cache_usage[] = static const char diff_cache_usage[] =
"git-diff-cache [-m] [--cached] " "git-diff-index [-m] [--cached] "
"[<common diff options>] <tree-ish> [<path>...]" "[<common diff options>] <tree-ish> [<path>...]"
COMMON_DIFF_OPTIONS_HELP; COMMON_DIFF_OPTIONS_HELP;

12
entry.c
View File

@ -76,7 +76,7 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
if (!new || strcmp(type, "blob")) { if (!new || strcmp(type, "blob")) {
if (new) if (new)
free(new); free(new);
return error("git-checkout-cache: unable to read sha1 file of %s (%s)", return error("git-checkout-index: unable to read sha1 file of %s (%s)",
path, sha1_to_hex(ce->sha1)); path, sha1_to_hex(ce->sha1));
} }
switch (ntohl(ce->ce_mode) & S_IFMT) { switch (ntohl(ce->ce_mode) & S_IFMT) {
@ -84,28 +84,28 @@ static int write_entry(struct cache_entry *ce, const char *path, struct checkout
fd = create_file(path, ntohl(ce->ce_mode)); fd = create_file(path, ntohl(ce->ce_mode));
if (fd < 0) { if (fd < 0) {
free(new); free(new);
return error("git-checkout-cache: unable to create file %s (%s)", return error("git-checkout-index: unable to create file %s (%s)",
path, strerror(errno)); path, strerror(errno));
} }
wrote = write(fd, new, size); wrote = write(fd, new, size);
close(fd); close(fd);
free(new); free(new);
if (wrote != size) if (wrote != size)
return error("git-checkout-cache: unable to write file %s", path); return error("git-checkout-index: unable to write file %s", path);
break; break;
case S_IFLNK: case S_IFLNK:
memcpy(target, new, size); memcpy(target, new, size);
target[size] = '\0'; target[size] = '\0';
if (symlink(target, path)) { if (symlink(target, path)) {
free(new); free(new);
return error("git-checkout-cache: unable to create symlink %s (%s)", return error("git-checkout-index: unable to create symlink %s (%s)",
path, strerror(errno)); path, strerror(errno));
} }
free(new); free(new);
break; break;
default: default:
free(new); free(new);
return error("git-checkout-cache: unknown file mode for %s", path); return error("git-checkout-index: unknown file mode for %s", path);
} }
if (state->refresh_cache) { if (state->refresh_cache) {
@ -131,7 +131,7 @@ int checkout_entry(struct cache_entry *ce, struct checkout *state)
return 0; return 0;
if (!state->force) { if (!state->force) {
if (!state->quiet) if (!state->quiet)
fprintf(stderr, "git-checkout-cache: %s already exists\n", path); fprintf(stderr, "git-checkout-index: %s already exists\n", path);
return 0; return 0;
} }

View File

@ -1,4 +1,4 @@
#include "pull.h" #include "fetch.h"
#include "cache.h" #include "cache.h"
#include "commit.h" #include "commit.h"

View File

View File

@ -162,28 +162,28 @@ static int fsck_tree(struct tree *item)
retval = 0; retval = 0;
if (has_full_path) { if (has_full_path) {
fprintf(stderr, "warning: git-fsck-cache: tree %s " fprintf(stderr, "warning: git-fsck-objects: tree %s "
"has full pathnames in it\n", "has full pathnames in it\n",
sha1_to_hex(item->object.sha1)); sha1_to_hex(item->object.sha1));
} }
if (has_zero_pad) { if (has_zero_pad) {
fprintf(stderr, "warning: git-fsck-cache: tree %s " fprintf(stderr, "warning: git-fsck-objects: tree %s "
"has zero-padded file modes in it\n", "has zero-padded file modes in it\n",
sha1_to_hex(item->object.sha1)); sha1_to_hex(item->object.sha1));
} }
if (has_bad_modes) { if (has_bad_modes) {
fprintf(stderr, "warning: git-fsck-cache: tree %s " fprintf(stderr, "warning: git-fsck-objects: tree %s "
"has bad file modes in it\n", "has bad file modes in it\n",
sha1_to_hex(item->object.sha1)); sha1_to_hex(item->object.sha1));
} }
if (has_dup_entries) { if (has_dup_entries) {
fprintf(stderr, "error: git-fsck-cache: tree %s " fprintf(stderr, "error: git-fsck-objects: tree %s "
"has duplicate file entries\n", "has duplicate file entries\n",
sha1_to_hex(item->object.sha1)); sha1_to_hex(item->object.sha1));
retval = -1; retval = -1;
} }
if (not_properly_sorted) { if (not_properly_sorted) {
fprintf(stderr, "error: git-fsck-cache: tree %s " fprintf(stderr, "error: git-fsck-objects: tree %s "
"is not properly sorted\n", "is not properly sorted\n",
sha1_to_hex(item->object.sha1)); sha1_to_hex(item->object.sha1));
retval = -1; retval = -1;
@ -448,7 +448,7 @@ int main(int argc, char **argv)
continue; continue;
} }
if (*arg == '-') if (*arg == '-')
usage("git-fsck-cache [--tags] [--root] [[--unreachable] [--cache] [--standalone | --full] [--strict] <head-sha1>*]"); usage("git-fsck-objects [--tags] [--root] [[--unreachable] [--cache] [--standalone | --full] [--strict] <head-sha1>*]");
} }
if (standalone && check_full) if (standalone && check_full)

20
git
View File

@ -1,20 +0,0 @@
#!/bin/sh
cmd=
path=$(dirname $0)
case "$#" in
0) ;;
*) cmd="$1"
shift
test -x $path/git-$cmd-script && exec $path/git-$cmd-script "$@"
test -x $path/git-$cmd && exec $path/git-$cmd "$@" ;;
esac
echo "Usage: git COMMAND [OPTIONS] [TARGET]"
if [ -n "$cmd" ]; then
echo " git command '$cmd' not found: commands are:"
else
echo " git commands are:"
fi
ls $path | sed -ne 's/^git-\(.*\)-script/ \1/p' | fmt

View File

@ -1,2 +0,0 @@
#!/bin/sh
git-update-cache --add -- "$@"

2
git-add.sh Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
git-update-index --add -- "$@"

View File

@ -18,7 +18,7 @@
## use a Signoff_file, because applypatch wants to append the sign-off ## use a Signoff_file, because applypatch wants to append the sign-off
## message to msg-clean every time it is run. ## message to msg-clean every time it is run.
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
usage () { usage () {
echo >&2 "applymbox [-u] [-k] [-q] (-c .dotest/<num> | mbox) [signoff]" echo >&2 "applymbox [-u] [-k] [-q] (-c .dotest/<num> | mbox) [signoff]"
@ -47,7 +47,7 @@ case "$continue" in
shift shift
esac esac
files=$(git-diff-cache --cached --name-only HEAD) || exit files=$(git-diff-index --cached --name-only HEAD) || exit
if [ "$files" ]; then if [ "$files" ]; then
echo "Dirty index: cannot apply patches (dirty: $files)" >&2 echo "Dirty index: cannot apply patches (dirty: $files)" >&2
exit 1 exit 1

View File

@ -10,7 +10,7 @@
## $3 - "info" file with Author, email and subject ## $3 - "info" file with Author, email and subject
## $4 - optional file containing signoff to add ## $4 - optional file containing signoff to add
## ##
. git-sh-setup-script || die "Not a git archive." . git-sh-setup || die "Not a git archive."
final=.dotest/final-commit final=.dotest/final-commit
## ##

View File

@ -8,7 +8,7 @@
# #
=head1 Invocation =head1 Invocation
git-archimport-script -i <archive>/<branch> [<archive>/<branch>] git-archimport -i <archive>/<branch> [<archive>/<branch>]
[ <archive>/<branch> ] [ <archive>/<branch> ]
The script expects you to provide the key roots where it can start the The script expects you to provide the key roots where it can start the
@ -268,16 +268,16 @@ foreach my $ps (@psets) {
# imports don't give us good info # imports don't give us good info
# on added files. Shame on them # on added files. Shame on them
if ($ps->{type} eq 'i' || $ps->{type} eq 't') { if ($ps->{type} eq 'i' || $ps->{type} eq 't') {
`find . -type f -print0 | grep -zv '^./.git' | xargs -0 -l100 git-update-cache --add`; `find . -type f -print0 | grep -zv '^./.git' | xargs -0 -l100 git-update-index --add`;
`git-ls-files --deleted -z | xargs --no-run-if-empty -0 -l100 git-update-cache --remove`; `git-ls-files --deleted -z | xargs --no-run-if-empty -0 -l100 git-update-index --remove`;
} }
if (@$add) { if (@$add) {
while (@$add) { while (@$add) {
my @slice = splice(@$add, 0, 100); my @slice = splice(@$add, 0, 100);
my $slice = join(' ', @slice); my $slice = join(' ', @slice);
`git-update-cache --add $slice`; `git-update-index --add $slice`;
die "Error in git-update-cache --add: $!" if $?; die "Error in git-update-index --add: $!" if $?;
} }
} }
if (@$del) { if (@$del) {
@ -287,8 +287,8 @@ foreach my $ps (@psets) {
while (@$del) { while (@$del) {
my @slice = splice(@$del, 0, 100); my @slice = splice(@$del, 0, 100);
my $slice = join(' ', @slice); my $slice = join(' ', @slice);
`git-update-cache --remove $slice`; `git-update-index --remove $slice`;
die "Error in git-update-cache --remove: $!" if $?; die "Error in git-update-index --remove: $!" if $?;
} }
} }
if (@$ren) { # renamed if (@$ren) { # renamed
@ -306,10 +306,10 @@ foreach my $ps (@psets) {
#print "moving $from $to"; #print "moving $from $to";
`mv $from $to`; `mv $from $to`;
die "Error renaming $from $to : $!" if $?; die "Error renaming $from $to : $!" if $?;
`git-update-cache --remove $from`; `git-update-index --remove $from`;
die "Error in git-update-cache --remove: $!" if $?; die "Error in git-update-index --remove: $!" if $?;
`git-update-cache --add $to`; `git-update-index --add $to`;
die "Error in git-update-cache --add: $!" if $?; die "Error in git-update-index --add: $!" if $?;
} }
} }
@ -317,12 +317,12 @@ foreach my $ps (@psets) {
while (@$mod) { while (@$mod) {
my @slice = splice(@$mod, 0, 100); my @slice = splice(@$mod, 0, 100);
my $slice = join(' ', @slice); my $slice = join(' ', @slice);
`git-update-cache $slice`; `git-update-index $slice`;
die "Error in git-update-cache: $!" if $?; die "Error in git-update-index: $!" if $?;
} }
} }
# warn "errors when running git-update-cache! $!"; # warn "errors when running git-update-index! $!";
$tree = `git-write-tree`; $tree = `git-write-tree`;
die "cannot write tree $!" if $?; die "cannot write tree $!" if $?;
chomp $tree; chomp $tree;

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || dir "Not a git archive" . git-sh-setup || dir "Not a git archive"
usage() { usage() {
echo >&2 'usage: git bisect [start|bad|good|next|reset|visualize] echo >&2 'usage: git bisect [start|bad|good|next|reset|visualize]

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
case "$#" in case "$#" in
0) 0)

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
old=$(git-rev-parse HEAD) old=$(git-rev-parse HEAD)
new= new=
@ -53,7 +53,7 @@ done
if [ "$force" ] if [ "$force" ]
then then
git-read-tree --reset $new && git-read-tree --reset $new &&
git-checkout-cache -q -f -u -a git-checkout-index -q -f -u -a
else else
git-read-tree -m -u $old $new git-read-tree -m -u $old $new
fi fi

View File

@ -3,7 +3,7 @@
# Copyright (c) 2005 Junio C Hamano. # Copyright (c) 2005 Junio C Hamano.
# #
. git-sh-setup-script || die "Not a git archive." . git-sh-setup || die "Not a git archive."
usage="usage: $0 "'[-v] <upstream> [<head>] usage="usage: $0 "'[-v] <upstream> [<head>]

View File

@ -50,7 +50,7 @@ Perhaps git-update-server-info needs to be run there?"
while read sha1 refname while read sha1 refname
do do
name=`expr "$refname" : 'refs/\(.*\)'` && name=`expr "$refname" : 'refs/\(.*\)'` &&
git-http-pull -v -a -w "$name" "$name" "$1/" || exit 1 git-http-fetch -v -a -w "$name" "$name" "$1/" || exit 1
done <"$clone_tmp/refs" done <"$clone_tmp/refs"
rm -fr "$clone_tmp" rm -fr "$clone_tmp"
} }

View File

@ -3,7 +3,7 @@
# Copyright (c) 2005 Linus Torvalds # Copyright (c) 2005 Linus Torvalds
# #
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
usage () { usage () {
die 'git commit [-a] [-v | --no-verify] [-m <message>] [-F <logfile>] [(-C|-c) <commit>] [<path>...]' die 'git commit [-a] [-v | --no-verify] [-m <message>] [-F <logfile>] [(-C|-c) <commit>] [<path>...]'
@ -94,16 +94,16 @@ esac
case "$all,$#" in case "$all,$#" in
t,*) t,*)
git-diff-files --name-only -z | git-diff-files --name-only -z |
xargs -0 git-update-cache -q --remove -- xargs -0 git-update-index -q --remove --
;; ;;
,0) ,0)
;; ;;
*) *)
git-diff-files --name-only -z "$@" | git-diff-files --name-only -z "$@" |
xargs -0 git-update-cache -q --remove -- xargs -0 git-update-index -q --remove --
;; ;;
esac || exit 1 esac || exit 1
git-update-cache -q --refresh || exit 1 git-update-index -q --refresh || exit 1
case "$verify" in case "$verify" in
t) t)
@ -190,11 +190,11 @@ else
export GIT_AUTHOR_DATE export GIT_AUTHOR_DATE
fi fi
fi fi
git-status-script >>.editmsg git-status >>.editmsg
if [ "$?" != "0" -a ! -f $GIT_DIR/MERGE_HEAD ] if [ "$?" != "0" -a ! -f $GIT_DIR/MERGE_HEAD ]
then then
rm -f .editmsg rm -f .editmsg
git-status-script git-status
exit 1 exit 1
fi fi
case "$no_edit" in case "$no_edit" in

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script . git-sh-setup
echo $(find "$GIT_DIR/objects"/?? -type f -print | wc -l) objects, \ echo $(find "$GIT_DIR/objects"/?? -type f -print | wc -l) objects, \
$({ $({

View File

@ -522,7 +522,7 @@ my $commit = sub {
@o2 = @old; @o2 = @old;
@old = (); @old = ();
} }
system("git-update-cache","--force-remove","--",@o2); system("git-update-index","--force-remove","--",@o2);
die "Cannot remove files: $?\n" if $?; die "Cannot remove files: $?\n" if $?;
} }
while(@new) { while(@new) {
@ -533,7 +533,7 @@ my $commit = sub {
@n2 = @new; @n2 = @new;
@new = (); @new = ();
} }
system("git-update-cache","--add", system("git-update-index","--add",
(map { ('--cacheinfo', @$_) } @n2)); (map { ('--cacheinfo', @$_) } @n2));
die "Cannot add files: $?\n" if $?; die "Cannot add files: $?\n" if $?;
} }

View File

@ -22,7 +22,7 @@ case "$rev" in
cmd="git-diff-tree $flags $rev $files" cmd="git-diff-tree $flags $rev $files"
;; ;;
?*' ') ?*' ')
cmd="git-diff-cache $flags $rev $files" cmd="git-diff-index $flags $rev $files"
;; ;;
'') '')
cmd="git-diff-files $flags $files" cmd="git-diff-files $flags $files"

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
. git-parse-remote-script . git-parse-remote
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
@ -178,7 +178,7 @@ do
expr "$head" : "$_x40\$" >/dev/null || expr "$head" : "$_x40\$" >/dev/null ||
die "Failed to fetch $remote_name from $remote" die "Failed to fetch $remote_name from $remote"
echo Fetching "$remote_name from $remote" using http echo Fetching "$remote_name from $remote" using http
git-http-pull -v -a "$head" "$remote/" || exit git-http-fetch -v -a "$head" "$remote/" || exit
;; ;;
rsync://*) rsync://*)
TMP_HEAD="$GIT_DIR/TMP_HEAD" TMP_HEAD="$GIT_DIR/TMP_HEAD"

View File

@ -3,7 +3,7 @@
# Copyright (c) 2005 Junio C Hamano # Copyright (c) 2005 Junio C Hamano
# #
. git-sh-setup-script || die "Not a git archive." . git-sh-setup || die "Not a git archive."
usage () { usage () {
echo >&2 "usage: $0"' [-n] [-o dir] [--keep-subject] [--mbox] [--check] [--signoff] [-<diff options>...] upstream [ our-head ] echo >&2 "usage: $0"' [-n] [-o dir] [--keep-subject] [--mbox] [--check] [--signoff] [-<diff options>...] upstream [ our-head ]

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
usage () { usage () {
echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..." echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..."
@ -29,7 +29,7 @@ case ",$heads,$tags," in
,,,) heads=heads tags=tags other=other ;; ,,,) heads=heads tags=tags other=other ;;
esac esac
. git-parse-remote-script . git-parse-remote
peek_repo="$(get_remote_url "$@")" peek_repo="$(get_remote_url "$@")"
shift shift

View File

@ -27,7 +27,7 @@ case "${1:-.}${2:-.}${3:-.}" in
if test -f "$4"; then if test -f "$4"; then
rm -f -- "$4" rm -f -- "$4"
fi && fi &&
exec git-update-cache --remove -- "$4" exec git-update-index --remove -- "$4"
;; ;;
# #
@ -35,8 +35,8 @@ case "${1:-.}${2:-.}${3:-.}" in
# #
".$2." | "..$3" ) ".$2." | "..$3" )
echo "Adding $4" echo "Adding $4"
git-update-cache --add --cacheinfo "$6$7" "$2$3" "$4" && git-update-index --add --cacheinfo "$6$7" "$2$3" "$4" &&
exec git-checkout-cache -u -f -- "$4" exec git-checkout-index -u -f -- "$4"
;; ;;
# #
@ -49,8 +49,8 @@ case "${1:-.}${2:-.}${3:-.}" in
exit 1 exit 1
fi fi
echo "Adding $4" echo "Adding $4"
git-update-cache --add --cacheinfo "$6" "$2" "$4" && git-update-index --add --cacheinfo "$6" "$2" "$4" &&
exec git-checkout-cache -u -f -- "$4" exec git-checkout-index -u -f -- "$4"
;; ;;
# #
@ -63,8 +63,8 @@ case "${1:-.}${2:-.}${3:-.}" in
# We reset the index to the first branch, making # We reset the index to the first branch, making
# git-diff-file useful # git-diff-file useful
git-update-cache --add --cacheinfo "$6" "$2" "$4" git-update-index --add --cacheinfo "$6" "$2" "$4"
git-checkout-cache -u -f -- "$4" && git-checkout-index -u -f -- "$4" &&
merge "$4" "$orig" "$src2" merge "$4" "$orig" "$src2"
ret=$? ret=$?
rm -f -- "$orig" "$src2" rm -f -- "$orig" "$src2"
@ -78,7 +78,7 @@ case "${1:-.}${2:-.}${3:-.}" in
echo "ERROR: Merge conflict in $4." echo "ERROR: Merge conflict in $4."
exit 1 exit 1
fi fi
exec git-update-cache -- "$4" exec git-update-index -- "$4"
;; ;;
*) *)

View File

@ -4,7 +4,7 @@
# #
# Resolve two or more trees recorded in $GIT_DIR/FETCH_HEAD. # Resolve two or more trees recorded in $GIT_DIR/FETCH_HEAD.
# #
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
usage () { usage () {
die "usage: git octopus" die "usage: git octopus"
@ -19,9 +19,9 @@ done <"$GIT_DIR/FETCH_HEAD"
head=$(git-rev-parse --verify HEAD) || exit head=$(git-rev-parse --verify HEAD) || exit
git-update-cache --refresh || git-update-index --refresh ||
die "Your working tree is dirty." die "Your working tree is dirty."
test "$(git-diff-cache --cached "$head")" = "" || test "$(git-diff-index --cached "$head")" = "" ||
die "Your working tree does not match HEAD." die "Your working tree does not match HEAD."
# MRC is the current "merge reference commit" # MRC is the current "merge reference commit"
@ -68,9 +68,9 @@ do
if test $? -ne 0 if test $? -ne 0
then then
echo "Simple merge did not work, trying automatic merge." echo "Simple merge did not work, trying automatic merge."
git-merge-cache -o git-merge-one-file-script -a || { git-merge-index -o git-merge-one-file -a || {
git-read-tree --reset "$head" git-read-tree --reset "$head"
git-checkout-cache -f -q -u -a git-checkout-index -f -q -u -a
die "Automatic merge failed; should not be doing Octopus" die "Automatic merge failed; should not be doing Octopus"
} }
next=$(git-write-tree 2>/dev/null) next=$(git-write-tree 2>/dev/null)

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
get_data_source () { get_data_source () {
case "$1" in case "$1" in

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
dryrun= dryrun=
echo= echo=
@ -9,13 +9,13 @@ do
case "$1" in case "$1" in
-n) dryrun=-n echo=echo ;; -n) dryrun=-n echo=echo ;;
--) break ;; --) break ;;
-*) echo >&2 "usage: git-prune-script [ -n ] [ heads... ]"; exit 1 ;; -*) echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1 ;;
*) break ;; *) break ;;
esac esac
shift; shift;
done done
git-fsck-cache --full --cache --unreachable "$@" | git-fsck-objects --full --cache --unreachable "$@" |
sed -ne '/unreachable /{ sed -ne '/unreachable /{
s/unreachable [^ ][^ ]* // s/unreachable [^ ][^ ]* //
s|\(..\)|\1/|p s|\(..\)|\1/|p

View File

@ -4,10 +4,10 @@
# #
# Fetch one or more remote refs and merge it/them into the current HEAD. # Fetch one or more remote refs and merge it/them into the current HEAD.
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
orig_head=$(cat "$GIT_DIR/HEAD") || die "Pulling into a black hole?" orig_head=$(cat "$GIT_DIR/HEAD") || die "Pulling into a black hole?"
git-fetch-script --update-head-ok "$@" || exit 1 git-fetch --update-head-ok "$@" || exit 1
curr_head=$(cat "$GIT_DIR/HEAD") curr_head=$(cat "$GIT_DIR/HEAD")
if test "$curr_head" != "$orig_head" if test "$curr_head" != "$orig_head"
@ -35,10 +35,10 @@ case "$merge_head" in
;; ;;
*' '?*) *' '?*)
echo >&2 "Pulling more than one heads; making an Octopus." echo >&2 "Pulling more than one heads; making an Octopus."
exec git-octopus-script exec git-octopus
;; ;;
esac esac
git-resolve-script \ git-resolve \
"$(cat "$GIT_DIR"/HEAD)" \ "$(cat "$GIT_DIR"/HEAD)" \
$merge_head "Merge $merge_name" $merge_head "Merge $merge_name"

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
. git-sh-setup-script || die "Not a git archive" . git-sh-setup || die "Not a git archive"
# Parse out parameters and then stop at remote, so that we can # Parse out parameters and then stop at remote, so that we can
# translate it using .git/branches information # translate it using .git/branches information
@ -31,7 +31,7 @@ case "$#" in
die "Where would you want to push today?" ;; die "Where would you want to push today?" ;;
esac esac
. git-parse-remote-script . git-parse-remote
remote=$(get_remote_url "$@") remote=$(get_remote_url "$@")
case "$has_all" in case "$has_all" in
--all) set x ;; --all) set x ;;

Some files were not shown because too many files have changed in this diff Show More