git-apply
git-build-rev-cache
git-cat-file
-git-checkout-cache
+git-checkout-index
git-clone-pack
git-commit-tree
-git-convert-cache
+git-convert-objects
git-daemon
-git-diff-cache
+git-diff-index
git-diff-files
git-diff-helper
git-diff-stages
git-diff-tree
git-export
git-fetch-pack
-git-fsck-cache
+git-fsck-objects
git-get-tar-commit-id
git-hash-object
-git-http-pull
+git-http-fetch
git-init-db
-git-local-pull
+git-local-fetch
git-ls-files
git-ls-tree
git-merge-base
-git-merge-cache
+git-merge-index
git-mktag
git-pack-objects
git-patch-id
git-show-branch
git-show-index
git-show-rev-cache
-git-ssh-pull
-git-ssh-push
+git-ssh-fetch
+git-ssh-upload
git-stripspace
git-tar-tree
git-unpack-file
git-unpack-objects
-git-update-cache
+git-update-index
git-update-server-info
git-upload-pack
git-var
-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.
These commands all compare two sets of things; what are
compared are different:
-git-diff-cache <tree-ish>::
+git-diff-index <tree-ish>::
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.
git-diff-tree [-r] <tree-ish-1> <tree-ish-2> [<pattern>...]::
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;
instead they produce a patch file.
environment variable 'GIT_DIFF_OPTS'. For example, if you
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
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
in unconventional ways before showing diff(1) output. The
manipulation is collectively called "diffcore transformation".
The git-diff-* family works by first comparing two sets of
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
"tree" object and the index file (when '--cached' flag is
used);
-git-add-script(1)
-=================
+git-add(1)
+==========
NAME
----
-git-add-script - Add files to the cache.
+git-add - Add files to the cache.
SYNOPSIS
--------
-'git-add-script' <file>...
+'git-add' <file>...
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".
OPTIONS
-git-archimport-script(1)
-========================
+git-archimport(1)
+=================
NAME
----
-git-archimport-script - Import an arch repository into git
+git-archimport - Import an arch repository into git
SYNOPSIS
--------
-`git-archimport-script` [--option...] <args>
+`git-archimport` [--option...] <args>
DESCRIPTION
-----------
-git-bisect-script(1)
-====================
+git-bisect(1)
+=============
NAME
----
-git-bisect-script - Find the change that introduced a bug
+git-bisect - Find the change that introduced a bug
SYNOPSIS
-git-branch-script(1)
-====================
+git-branch(1)
+=============
NAME
----
-git-branch-script - Create a new branch.
+git-branch - Create a new branch.
SYNOPSIS
--------
-'git-branch-script' [<branchname> [start-point]]
+'git-branch' [<branchname> [start-point]]
DESCRIPTION
-----------
-git-checkout-cache(1)
+git-checkout-index(1)
=====================
v0.1, May 2005
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
--------
-'git-checkout-cache' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
+'git-checkout-index' [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
[--] <file>...
DESCRIPTION
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
any old ones), and then force-checkout `file.c` a second time (ie that
one *will* overwrite any old contents with the same filename).
-Also, just doing "git-checkout-cache" does nothing. You probably meant
-"git-checkout-cache -a". And if you want to force it, you want
-"git-checkout-cache -f -a".
+Also, just doing "git-checkout-index" does nothing. You probably meant
+"git-checkout-index -a". And if you want to force it, you want
+"git-checkout-index -f -a".
Intuitiveness is not the goal here. Repeatability is. The reason for
the "no arguments means no work" thing is that 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 their
cached copies. If an empty command line implied "all", then this would
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
filenames. Just so that you wouldn't have a filename of "-a" causing
scripting!).
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
- 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.
NOTE The final "/" is important. The exported name is literally just
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
`.merged-Makefile`
-git-checkout-script(1)
-======================
+git-checkout(1)
+===============
NAME
----
-git-checkout-script - Checkout and switch to a branch.
+git-checkout - Checkout and switch to a branch.
SYNOPSIS
--------
-'git-checkout-script' [-f] [-b <new_branch>] [<branch>]
+'git-checkout' [-f] [-b <new_branch>] [<branch>]
DESCRIPTION
-----------
-git-cherry-pick-script(1)
-=========================
+git-cherry-pick(1)
+==================
v0.99.5 Aug 2005
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
--------
-'git-cherry-pick-script' [-n] [-r] <commit>
+'git-cherry-pick' [-n] [-r] <commit>
DESCRIPTION
-----------
-git-clone-script(1)
-===================
+git-clone(1)
+============
v0.1, July 2005
NAME
----
-git-clone-script - Clones a repository.
+git-clone - Clones a repository.
SYNOPSIS
-git-commit-script(1)
-====================
+git-commit(1)
+=============
v0.99.4, Aug 2005
NAME
----
-git-commit-script - Record your changes
+git-commit - Record your changes
SYNOPSIS
--------
-git-convert-cache(1)
-====================
+git-convert-objects(1)
+======================
v0.1, May 2005
NAME
----
-git-convert-cache - Converts old-style GIT repository
+git-convert-objects - Converts old-style GIT repository
SYNOPSIS
--------
-'git-convert-cache'
+'git-convert-objects'
DESCRIPTION
-----------
-git-count-objects-script(1)
-===========================
+git-count-objects(1)
+====================
NAME
----
-git-count-objects-script - Reports on unpacked objects.
+git-count-objects - Reports on unpacked objects.
SYNOPSIS
--------
-'git-count-objects-script'
+'git-count-objects'
DESCRIPTION
-----------
-git-cvsimport-script(1)
-=======================
+git-cvsimport(1)
+================
v0.1, July 2005
NAME
----
-git-cvsimport-script - Import a CVS repository into git
+git-cvsimport - Import a CVS repository into git
SYNOPSIS
--------
-'git-cvsimport-script' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
+'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
[ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
[ -C <GIT_repository> ] [ -i ] [ -k ]
[ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]
Compares the files in the working tree and the cache. When paths
are specified, compares only those named paths. Otherwise all
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
-------
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.
OPTIONS
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
-git-diff-cache(1)
+git-diff-index(1)
=================
v0.1, May 2005
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
--------
-'git-diff-cache' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...]
+'git-diff-index' [-m] [--cached] [<common diff options>] <tree-ish> [<path>...]
DESCRIPTION
-----------
-m::
By default, files recorded in the index but not checked
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.
Output format
*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
- 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
-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
-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 git-commit.c
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
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
what's the difference to a previous tree".
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
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:
- 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
ie it shows that the tree has changed, and that `kernel/sched.c` has is
get the real diff, you need to look at the object in the working directory
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
`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
An example of normal usage is:
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
this one:
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
- 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
HEAD commits it finds, which is even more interesting.
-git-diff-script(1)
-==================
+git-diff(1)
+===========
NAME
----
-git-diff-script - Some git command not yet documented.
+git-diff - Some git command not yet documented.
SYNOPSIS
--------
-'git-diff-script' [ --option ] <args>...
+'git-diff' [ --option ] <args>...
DESCRIPTION
-----------
-git-fetch-script(1)
-===================
+git-fetch(1)
+============
v0.99.5, Aug 2005
NAME
----
-git-fetch-script - Download objects and a head from another repository.
+git-fetch - Download objects and a head from another repository.
SYNOPSIS
--------
-'git-fetch-script' <repository> <refspec>...
+'git-fetch' <repository> <refspec>...
DESCRIPTION
-git-format-patch-script(1)
-==========================
+git-format-patch(1)
+===================
NAME
----
-git-format-patch-script - Some git command not yet documented.
+git-format-patch - Some git command not yet documented.
SYNOPSIS
--------
-'git-format-patch-script' [ --option ] <args>...
+'git-format-patch' [ --option ] <args>...
DESCRIPTION
-----------
-git-fsck-cache(1)
-=================
+git-fsck-objects(1)
+===================
v0.1, May 2005
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
--------
-'git-fsck-cache' [--tags] [--root] [--unreachable] [--cache] [--standalone | --full] [--strict] [<object>*]
+'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache] [--standalone | --full] [--strict] [<object>*]
DESCRIPTION
-----------
<object>::
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.
--unreachable::
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
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.
Any corrupt objects you will have to find in backups or other archives
The <type> object <object>, is present in the database but never
'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...
sha1 mismatch <object>::
with the contents of the named file (which can be outside of the
work tree), and optionally writes the resulting object into the
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
specified, it defaults to "blob".
-git-http-pull(1)
-================
+git-http-fetch(1)
+=================
v0.1, May 2005
NAME
----
-git-http-pull - Downloads a remote GIT repository via HTTP
+git-http-fetch - Downloads a remote GIT repository via HTTP
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
-----------
-git-local-pull(1)
-=================
+git-local-fetch(1)
+==================
v0.1, May 2005
NAME
----
-git-local-pull - Duplicates another GIT repository on a local system
+git-local-fetch - Duplicates another GIT repository on a local system
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
-----------
-git-log-script(1)
-=================
+git-log(1)
+==========
v0.99.4, Aug 2005
NAME
----
-git-log-script - Show commit logs
+git-log - Show commit logs
SYNOPSIS
-git-ls-remote-script(1)
-=======================
+git-ls-remote(1)
+================
v0.1, May 2005
NAME
----
-git-ls-remote-script - Look at references other repository has.
+git-ls-remote - Look at references other repository has.
SYNOPSIS
-git-merge-cache(1)
+git-merge-index(1)
==================
v0.1, May 2005
NAME
----
-git-merge-cache - Runs a merge for files needing merging
+git-merge-index - Runs a merge for files needing merging
SYNOPSIS
--------
-'git-merge-cache' [-o] [-q] <merge-program> (-a | -- | <file>\*)
+'git-merge-index' [-o] [-q] <merge-program> (-a | -- | <file>\*)
DESCRIPTION
-----------
failure usually indicates conflicts during merge). This is for
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
code.
Typically this is run with the a script calling the merge command from
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.
ALERT ALERT ALERT! The git "merge object order" is different from the
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 modified MM in the branch A. # merge1
This is modified MM in the branch B. # merge2
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
This is added AA in the branch A.
This is added AA in the branch B.
This is added AA in the branch B.
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
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
------
-git-merge-one-file-script(1)
-============================
+git-merge-one-file(1)
+=====================
v0.99.4, Aug 2005
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
--------
-'git-merge-one-file-script'
+'git-merge-one-file'
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".
Author
-git-octopus-script(1)
-=====================
+git-octopus(1)
+==============
v0.99.5, Aug 2005
NAME
----
-git-octopus-script - Merge more than two commits.
+git-octopus - Merge more than two commits.
SYNOPSIS
See-Also
--------
-git-repack-script(1) git-prune-packed(1)
+git-repack(1) git-prune-packed(1)
GIT
---
-git-parse-remote-script(1)
-==========================
+git-parse-remote(1)
+===================
NAME
----
-git-parse-remote-script - Routines to help parsing $GIT_DIR/remotes/
+git-parse-remote - Routines to help parsing $GIT_DIR/remotes/
SYNOPSIS
--------
-'. git-parse-remote-script'
+'. git-parse-remote'
DESCRIPTION
-----------
See-Also
--------
-git-pack-objects(1) git-repack-script(1)
+git-pack-objects(1) git-repack(1)
GIT
---
-git-prune-script(1)
-===================
+git-prune(1)
+============
v0.99.5, Aug 2005
NAME
----
-git-prune-script - Prunes all unreachable objects from the object database
+git-prune - Prunes all unreachable objects from the object database
SYNOPSIS
--------
-'git-prune-script' [-n]
+'git-prune' [-n]
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
`$GIT_DIR/refs/tags/\*` if none is specified), and prunes all
unreachable objects from the object database. In addition, it
-git-pull-script(1)
-==================
+git-pull(1)
+===========
v0.99.4, Aug 2005
NAME
----
-git-pull-script - Pull and merge from another repository.
+git-pull - Pull and merge from another repository.
SYNOPSIS
--------
-'git-pull-script' <repository> <refspec>...
+'git-pull' <repository> <refspec>...
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
into the local HEAD. Otherwise uses 'git octopus' to merge them
-git-push-script(1)
-==================
+git-push(1)
+===========
NAME
----
-git-push-script - Update remote refs along with associated objects.
+git-push - Update remote refs along with associated objects.
SYNOPSIS
--------
-'git-push-script' [--all] [--force] <repository> <refspec>...
+'git-push' [--all] [--force] <repository> <refspec>...
DESCRIPTION
-----------
-----------
Reads the tree information given by <tree-ish> into the directory cache,
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
fast-forward (i.e. 2-way) merge, or a 3-way merge, with the -m
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
-"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.
This is used to avoid unnecessary false hits when "git-diff-files" is
When this form of git-read-tree returns successfully, you can
see what "local changes" you made are carried forward by running
-"git-diff-cache --cached $M". Note that this does not
-necessarily match "git-diff-cache --cached $H" would have
+"git-diff-index --cached $M". Note that this does not
+necessarily match "git-diff-index --cached $H" would have
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
-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
-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.
matching "stage1" entry if it exists too. .. all the normal
trivial rules ..
-You would normally use "git-merge-cache" with supplied
-"git-merge-one-file-script" to do this last step. The script
+You would normally use "git-merge-index" with supplied
+"git-merge-one-file" to do this last step. The script
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
worry about what is in the working directory, since it is never
commited last to your repository:
$ 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
since you pulled from him:
- $ git-fetch-script rsync://.... linus
+ $ git-fetch rsync://.... linus
$ LT=`cat .git/MERGE_HEAD`
Your work tree is still based on your HEAD ($JC), but you have
then does the right thing. So with the following sequence:
$ 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" | \
git-commit-tree `git-write-tree` -p $JC -p $LT
-git-rebase-script(1)
-====================
+git-rebase(1)
+=============
NAME
----
-git-rebase-script - Rebase local commits to new upstream head.
+git-rebase - Rebase local commits to new upstream head.
SYNOPSIS
--------
-'git-rebase-script' <upstream> [<head>]
+'git-rebase' <upstream> [<head>]
DESCRIPTION
-----------
-git-relink-script(1)
-====================
+git-relink(1)
+=============
NAME
----
-git-relink-script - Hardlink common objects in local repositories.
+git-relink - Hardlink common objects in local repositories.
SYNOPSIS
--------
-'git-relink-script' [--safe] <dir> <dir> [<dir>]\*
+'git-relink' [--safe] <dir> <dir> [<dir>]\*
DESCRIPTION
-----------
-git-rename-script(1)
-====================
+git-rename(1)
+=============
v0.1, May 2005
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
--------
-'git-rename-script' <source> <destination>
+'git-rename' <source> <destination>
DESCRIPTION
-----------
-git-repack-script(1)
-====================
+git-repack(1)
+=============
v0.99.5, August 2005
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.
SYNOPSIS
--------
-'git-repack-script' [-a] [-d]
+'git-repack' [-a] [-d]
DESCRIPTION
-----------
-git-request-pull-script(1)
-==========================
+git-request-pull(1)
+===================
NAME
----
-git-request-pull-script - Generates a summary of pending changes.
+git-request-pull - Generates a summary of pending changes.
SYNOPSIS
--------
-'git-request-pull-script' <start> <url> [<end>]
+'git-request-pull' <start> <url> [<end>]
DESCRIPTION
-----------
-git-reset-script(1)
-===================
+git-reset(1)
+============
NAME
----
-git-reset-script - Reset current HEAD to the specified state.
+git-reset - Reset current HEAD to the specified state.
SYNOPSIS
--------
-'git-reset-script' [--mixed | --soft | --hard] [<commit-ish>]
+'git-reset' [--mixed | --soft | --hard] [<commit-ish>]
DESCRIPTION
-----------
-git-resolve-script(1)
-=====================
+git-resolve(1)
+==============
v0.99.5, Aug 2005
NAME
----
-git-resolve-script - Merge two commits
+git-resolve - Merge two commits
SYNOPSIS
-git-revert-script(1)
-====================
+git-revert(1)
+=============
NAME
----
-git-revert-script - Revert an existing commit.
+git-revert - Revert an existing commit.
SYNOPSIS
--------
-'git-revert-script' [-n] <commit>
+'git-revert' [-n] <commit>
DESCRIPTION
-----------
-git-send-email-script(1)
-========================
+git-send-email(1)
+=================
v0.1, July 2005
NAME
----
-git-send-email-script - Send a collection of patches as emails
+git-send-email - Send a collection of patches as emails
SYNOPSIS
--------
-'git-send-email-script' [options] <file|directory> [... file|directory]
+'git-send-email' [options] <file|directory> [... file|directory]
------
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.
Documentation
-git-sh-setup-script(1)
-======================
+git-sh-setup(1)
+===============
NAME
----
-git-sh-setup-script - Common git shell script setup code.
+git-sh-setup - Common git shell script setup code.
SYNOPSIS
--------
-'git-sh-setup-script'
+'git-sh-setup'
DESCRIPTION
-----------
(currently just "die()"), and returns ok if it all looks like a git archive.
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.
$ git show-branch --more=4 master
[master] Add 'git show-branch'.
[~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
[~4] Make "git-ls-files" work in subdirectories
------------------------------------------------
-git-ssh-pull(1)
-===============
+git-ssh-fetch(1)
+================
v0.1, May 2005
NAME
----
-git-ssh-pull - Pulls from a remote repository over ssh connection
+git-ssh-fetch - Pulls from a remote repository over ssh connection
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
-----------
Pulls from a remote repository over ssh connection, invoking
-git-ssh-push on the other end. It functions identically to
-git-ssh-push, aside from which end you run it on.
+git-ssh-upload on the other end. It functions identically to
+git-ssh-upload, aside from which end you run it on.
OPTIONS
-git-ssh-push(1)
-===============
+git-ssh-upload(1)
+=================
v0.1, Jun 2005
NAME
----
-git-ssh-push - Pushes to a remote repository over ssh connection
+git-ssh-upload - Pushes to a remote repository over ssh connection
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
-----------
Pushes from a remote repository over ssh connection, invoking
-git-ssh-pull on the other end. It functions identically to
-git-ssh-pull, aside from which end you run it on.
+git-ssh-fetch on the other end. It functions identically to
+git-ssh-fetch, aside from which end you run it on.
OPTIONS
-------
-git-status-script(1)
-====================
+git-status(1)
+=============
v0.99.4, Aug 2005
NAME
----
-git-status-script - Show working tree status.
+git-status - Show working tree status.
SYNOPSIS
Examines paths in the working tree that has changes unrecorded
to the index file, and changes between the index file and the
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
running 'git commit'.
-git-tag-script(1)
-=================
+git-tag(1)
+==========
v0.99.4, Aug 2005
NAME
----
-git-tag-script - Create a tag object signed with GPG
+git-tag - Create a tag object signed with GPG
SYNOPSIS
--------
-'git-tag-script' [-s | -a] [-f] <name>
+'git-tag' [-s | -a] [-f] <name>
DESCRIPTION
-----------
-git-update-cache(1)
+git-update-index(1)
===================
v0.1, May 2005
NAME
----
-git-update-cache - Modifies the index or directory cache
+git-update-index - Modifies the index or directory cache
SYNOPSIS
--------
-'git-update-cache'
+'git-update-index'
[--add] [--remove] [--refresh] [--replace]
[--ignore-missing]
[--force-remove]
into the cache and any 'unmerged' or 'needs updating' state is
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:
OPTIONS
--replace::
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`
cannot be added. With --replace flag, existing entries
that conflicts with the entry being added are
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
database. This is useful for status-only repositories.
--------
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
See Also
--------
link:git-commit-tree.html[git-commit-tree]
-link:git-tag-script.html[git-tag-script]
+link:git-tag.html[git-tag]
Author
------
-git-verify-tag-script(1)
-========================
+git-verify-tag(1)
+=================
NAME
----
-git-verify-tag-script - Check the GPG signature of tag.
+git-verify-tag - Check the GPG signature of tag.
SYNOPSIS
--------
-'git-verify-tag-script' <tag>
+'git-verify-tag' <tag>
DESCRIPTION
-----------
-Validates the gpg signature created by git-tag-script.
+Validates the gpg signature created by git-tag.
OPTIONS
-------
Conceptually, "git-write-tree" sync()s the current directory cache contents
into a set of tree files.
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".
OPTIONS
The <<Discussion>> section below contains much useful definition and
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!
If you are migrating from CVS, link:cvs-migration.html[cvs migration]
Reads a "diff -up1" or git generated patch file and
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
+ Previously this command was known as git-checkout-cache.
link:git-commit-tree.html[git-commit-tree]::
Creates a new commit object
link:git-init-db.html[git-init-db]::
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
+ Previously this command was known as git-merge-cache.
link:git-mktag.html[git-mktag]::
Creates a tag object
link:git-unpack-objects.html[git-unpack-objects]::
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
+ Previously this command was known as git-update-cache.
link:git-write-tree.html[git-write-tree]::
Creates a tree from the current cache
link:git-cat-file.html[git-cat-file]::
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
+ Previously this command was known as git-diff-cache.
link:git-diff-files.html[git-diff-files]::
Compares files in the working tree and the cache
link:git-export.html[git-export]::
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
+ Previously this command was known as git-fsck-cache.
link:git-ls-files.html[git-ls-files]::
Information about files in the cache/working directory
link:git-fetch-pack.html[git-fetch-pack]::
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
+ 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
+ Previously this command was known as git-local-pull.
link:git-peek-remote.html[git-peek-remote]::
Lists references on a remote repository using upload-pack protocol.
link:git-send-pack.html[git-send-pack]::
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
+ Previously this command was known as git-ssh-pull.
-link:git-ssh-push.html[git-ssh-push]::
- Helper "server-side" program used by git-ssh-pull
+link:git-ssh-upload.html[git-ssh-upload]::
+ 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]::
Updates auxiliary information on a dumb server to help
Porcelain-ish Commands
----------------------
-link:git-add-script.html[git-add-script]::
+link:git-add.html[git-add]::
Add paths to the index file.
+ Previously this command was known as git-add-script.
link:git-applymbox.html[git-applymbox]::
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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ Previously this command was known as git-revert-script.
link:git-shortlog.html[git-shortlog]::
Summarizes 'git log' output.
link:git-show-branch.html[git-show-branch]::
Show branches and their commits.
-link:git-status-script.html[git-status-script]::
+link:git-status.html[git-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.
+ Previously this command was known as git-verify-tag-script.
link:git-whatchanged.html[git-whatchanged]::
Shows commit logs and differences they introduce.
link:git-applypatch.html[git-applypatch]::
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.
+ 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
+ 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.
+ Previously this command was known as git-cvsimport-script.
-link:git-merge-one-file-script.html[git-merge-one-file-script]::
- The standard helper program to use with "git-merge-cache"
+link:git-merge-one-file.html[git-merge-one-file]::
+ 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
+ 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.
+ 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.
+ 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
+ Previously this command was known as git-tag-script.
Interrogators:
link:git-cherry.html[git-cherry]::
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.
+ Previously this command was known as git-count-objects-script.
link:git-daemon.html[git-daemon]::
A really simple server for GIT repositories.
link:git-patch-id.html[git-patch-id]::
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/
+ Previously this command was known as git-parse-remote-script.
-link:git-request-pull-script.html[git-request-pull-script]::
- git-request-pull-script.
+link:git-request-pull.html[git-request-pull]::
+ git-request-pull.
+ Previously this command was known as git-request-pull-script.
link:git-rev-parse.html[git-rev-parse]::
Pick out and massage parameters.
-link:git-send-email-script.html[git-send-email]::
+link:git-send-email.html[git-send-email]::
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]::
Show the contents of a rev-cache file.
Commands not yet documented
---------------------------
-link:git-diff-script.html[git-diff-script]::
- git-diff-script.
+link:git-diff.html[git-diff]::
+ git-diff.
+ Previously this command was known as git-diff-script.
-link:git-format-patch-script.html[git-format-patch-script]::
- git-format-patch-script.
+link:git-format-patch.html[git-format-patch]::
+ git-format-patch.
+ Previously this command was known as git-format-patch-script.
link:git-stripspace.html[git-stripspace]::
git-stripspace.
'GIT_DIFF_OPTS'::
'GIT_EXTERNAL_DIFF'::
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-tree.html[git-diff-tree]
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
invoked before obtaining the proposed commit log message and
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
of lines with trailing whitespaces and aborts the commit when
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
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.
The hook is allowed to edit the message file in place, and can
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.
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
send out a commit notification e-mail.
stable="$1"
last="$2"
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-diff-tree -p v$stable v$new | gzip -9 > ../patch-$new.gz"
echo "git-rev-list --pretty v$new ^v$last > ../ChangeLog-$new"
This creates two files, 0001-XXXX.txt and 0002-XXXX.txt. Send
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
MUA would do as long as it does not corrupt whitespaces in the
patch.
------------------------------------------------
$ git show-branch --more=1 master pu rc
! [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 .
---
- + [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~2] Show commits in topo order and name all commits.
+ [pu~3] mailinfo and applymbox updates
- commit that index file as an object.
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
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
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.
Anyway, as we mentioned previously, you normally never actually take a
look at the objects themselves, and typing long 40-character hex
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
database.
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
state we saved in 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
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
-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
-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
didn't have anything to diff against.
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
will show us the same difference, but for a totally different reason.
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
instead compare against just the index cache contents, and ignore the
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.
[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
tree is thus not strictly accurate. In particular, the list of
files to compare (the "meta-data") *always* comes from the index file,
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 what happens to the different `git-diff-\*` versions here. After
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
-`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.
Now, since we've updated `hello` in the index, we can commit the new
looking at what `git commit` really does, feel free to investigate:
it's a few very simple shell scripts to generate the helpful (?) commit
message headers, and a few one-liners that actually do the
-commit itself (`git-commit-script`).
+commit itself (`git-commit`).
Checking it out
Most likely, you are not directly using the core
git Plumbing commands, but using Porcelain like Cogito on top
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
`cg-add` and `cg-rm` commands). Just before you make a commit
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
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
- git-update-cache --refresh
+ git-update-index --refresh
+
in the new repository to make sure that the index file is up-to-date.
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
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-update-cache --refresh
+ git-update-index --refresh
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.
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.
The above can also be written as simply
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
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
commands).
actually have any of the working tree files to work on. To get
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
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
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).
Again, this can all be simplified with
------------------------------------------------
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
commit log message from the command line.
server like GIT Native transport does. Any stock HTTP server
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
usefulness when GIT Native and SSH transports were introduced,
and not used by `git pull` or `git push` scripts.
Tough. Either don't use the wrapper script, or delete the old GNU
interactive tools. None of the core git stuff needs the wrapper,
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.
But let's face it, most of us don't have GNU interactive tools, and
can avoid the bignum support by excising git-rev-list support
for "--merge-order" (by hand).
- - "libcurl" and "curl" executable. git-http-pull and
- git-fetch-script use them. If you do not use http
+ - "libcurl" and "curl" executable. git-http-fetch and
+ git-fetch use them. If you do not use http
transfer, you are probabaly OK if you do not have
them.
### --- END CONFIGURATION SECTION ---
-
-
-SCRIPTS=git git-merge-one-file-script git-prune-script \
- git-pull-script git-tag-script git-resolve-script git-whatchanged \
- 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
+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 = \
+ git-archimport.perl git-cvsimport.perl git-relink.perl \
+ git-rename.perl git-send-email.perl git-shortlog.perl
# The ones that do not have to link with lcrypto nor lz.
SIMPLE_PROGRAMS = \
git-daemon git-var
# ... and all the rest
-PROG= git-update-cache git-diff-files git-init-db git-write-tree \
- git-read-tree git-commit-tree git-cat-file git-fsck-cache \
- git-checkout-cache git-diff-tree git-rev-tree git-ls-files \
- git-ls-tree git-merge-base git-merge-cache \
- git-unpack-file git-export git-diff-cache git-convert-cache \
- git-ssh-push git-ssh-pull git-rev-list git-mktag \
- git-diff-helper git-tar-tree git-local-pull git-hash-object \
- git-apply \
- git-diff-stages git-rev-parse git-patch-id git-pack-objects \
- git-unpack-objects git-verify-pack git-receive-pack git-send-pack \
- git-prune-packed git-fetch-pack git-upload-pack git-clone-pack \
- git-show-index git-peek-remote git-show-branch \
- git-update-server-info git-show-rev-cache git-build-rev-cache \
+PROGRAMS = \
+ git-apply git-build-rev-cache git-cat-file \
+ git-checkout-index git-clone-pack git-commit-tree \
+ git-convert-objects git-diff-files \
+ git-diff-helper git-diff-index git-diff-stages \
+ git-diff-tree git-export git-fetch-pack git-fsck-objects \
+ git-hash-object git-init-db \
+ git-local-fetch git-ls-files git-ls-tree git-merge-base \
+ git-merge-index git-mktag git-pack-objects git-patch-id \
+ git-peek-remote git-prune-packed git-read-tree \
+ git-receive-pack git-rev-list git-rev-parse \
+ git-rev-tree git-send-pack git-show-branch \
+ 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)
ifdef WITH_SEND_EMAIL
-SCRIPTS += git-send-email-script
+ SCRIPT_PERL += git-send-email.perl
endif
ifndef NO_CURL
- PROG+= git-http-pull
+ PROGRAMS += git-http-fetch
endif
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_OBJS += rev-cache.o
-LIB_H += run-command.h
-LIB_OBJS += run-command.o
+LIB_H = \
+ 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 += strbuf.h
-LIB_OBJS += strbuf.o
+DIFF_OBJS = \
+ diff.o diffcore-break.o diffcore-order.o diffcore-pathspec.o \
+ diffcore-pickaxe.o diffcore-rename.o
-LIB_H += quote.h
-LIB_OBJS += quote.o
-
-LIB_H += diff.h count-delta.h
-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
+LIB_OBJS = \
+ 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 \
+ object.o pack-check.o patch-delta.o path.o pkt-line.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 \
+ tag.o tree.o usage.o $(DIFF_OBJS)
LIBS = $(LIB_FILE)
LIBS += -lz
ifndef NO_OPENSSL
LIB_OBJS += epoch.o
- OPENSSL_LIBSSL=-lssl
+ OPENSSL_LIBSSL = -lssl
else
DEFINES += '-DNO_OPENSSL'
- MOZILLA_SHA1=1
- OPENSSL_LIBSSL=
+ MOZILLA_SHA1 = 1
+ OPENSSL_LIBSSL =
endif
ifdef NEEDS_SSL_WITH_CRYPTO
LIB_4_CRYPTO = -lcrypto -lssl
LIB_4_ICONV =
endif
ifdef MOZILLA_SHA1
- SHA1_HEADER="mozilla-sha1/sha1.h"
+ SHA1_HEADER = "mozilla-sha1/sha1.h"
LIB_OBJS += mozilla-sha1/sha1.o
else
ifdef PPC_SHA1
- SHA1_HEADER="ppc/sha1.h"
+ SHA1_HEADER = "ppc/sha1.h"
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
else
- SHA1_HEADER=<openssl/sha.h>
+ SHA1_HEADER = <openssl/sha.h>
LIBS += $(LIB_4_CRYPTO)
endif
endif
DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
-
+SCRIPTS = $(SCRIPT_SH) $(SCRIPT_PERL) gitk
### Build rules
-all: $(PROG)
+all: $(PROGRAMS)
all:
$(MAKE) -C templates
$(SIMPLE_PROGRAMS) : git-% : %.o
$(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIB_FILE) $(SIMPLE_LIB)
-git-http-pull: pull.o
-git-local-pull: pull.o
-git-ssh-pull: rsh.o pull.o
-git-ssh-push: rsh.o
+git-http-fetch: fetch.o
+git-local-fetch: fetch.o
+git-ssh-fetch: rsh.o fetch.o
+git-ssh-upload: rsh.o
-git-http-pull: LIBS += -lcurl
+git-http-fetch: LIBS += -lcurl
git-rev-list: LIBS += $(OPENSSL_LIBSSL)
init-db.o: init-db.c
-DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
$(LIB_OBJS): $(LIB_H)
-$(patsubst git-%,%.o,$(PROG)): $(LIB_H)
+$(patsubst git-%,%.o,$(PROGRAMS)): $(LIB_H)
$(DIFF_OBJS): diffcore.h
$(LIB_FILE): $(LIB_OBJS)
$(MAKE) -C Documentation all
-
### Testing rules
test: all
### Installation rules
-install: $(PROG) $(SCRIPTS)
+install: $(PROGRAMS) $(SCRIPTS)
$(INSTALL) -m755 -d $(DESTDIR)$(bindir)
- $(INSTALL) $(PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
- $(INSTALL) git-revert-script $(DESTDIR)$(bindir)/git-cherry-pick-script
+ $(INSTALL) $(PROGRAMS) $(DESTDIR)$(bindir)
+ @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
install-doc:
### Cleaning rules
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 -rf $(GIT_TARNAME)
rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
The structured objects can further have their structure and
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
to just verifying their superficial consistency through the hash).
directory tree, and renaming a file does not change the object that
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].
Tree Object
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],
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"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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
will not normally add totally new entries or remove old entries,
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.
-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
stat information. It will 'not' update the object status itself, and
it will only update the fields that are used to quickly test whether
files. This is not a very common operation, since normally you'd just
keep your files updated, and rather than write to your working
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
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
with
- git-checkout-cache filename
+ git-checkout-index filename
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
need to use the "-f" flag ('before' the "-a" flag or the filename) to
'force' the checkout.
merge result for this file is by:
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.
The above is the description of a git merge at the lowest level,
to help you understand what conceptually happens under the hood.
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
- 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.
*
* 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
* overwrite any old ones), and then force-checkout "file.c" a
* second time (ie that one _will_ overwrite any old contents
* with the same filename).
*
- * Also, just doing "git-checkout-cache" does nothing. You probably
- * meant "git-checkout-cache -a". And if you want to force it, you
- * want "git-checkout-cache -f -a".
+ * Also, just doing "git-checkout-index" does nothing. You probably
+ * meant "git-checkout-index -a". And if you want to force it, you
+ * want "git-checkout-index -f -a".
*
* Intuitiveness is not the goal here. Repeatability is. The
* reason for the "no arguments means no work" thing is that
* 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
* their cached copies. If an empty command line implied "all",
if (!state.quiet) {
pos = -pos - 1;
fprintf(stderr,
- "git-checkout-cache: %s is %s.\n",
+ "git-checkout-index: %s is %s.\n",
name,
(pos < active_nr &&
!strcmp(active_cache[pos]->name, name)) ?
}
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;
--- /dev/null
+#!/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
struct entry *entry;
if (argc != 2 || get_sha1(argv[1], sha1))
- usage("git-convert-cache <sha1>");
+ usage("git-convert-objects <sha1>");
entry = convert_entry(sha1);
printf("new sha1: %s\n", sha1_to_hex(entry->new_sha1));
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.
-- Junio C Hamano <junkio@cox.net> Thu, 25 Aug 2005 14:16:59 -0700
}
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_HELP;
if (!new || strcmp(type, "blob")) {
if (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));
}
switch (ntohl(ce->ce_mode) & S_IFMT) {
fd = create_file(path, ntohl(ce->ce_mode));
if (fd < 0) {
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));
}
wrote = write(fd, new, size);
close(fd);
free(new);
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;
case S_IFLNK:
memcpy(target, new, size);
target[size] = '\0';
if (symlink(target, path)) {
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));
}
free(new);
break;
default:
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) {
return 0;
if (!state->force) {
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;
}
-#include "pull.h"
+#include "fetch.h"
#include "cache.h"
#include "commit.h"
retval = 0;
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",
sha1_to_hex(item->object.sha1));
}
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",
sha1_to_hex(item->object.sha1));
}
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",
sha1_to_hex(item->object.sha1));
}
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",
sha1_to_hex(item->object.sha1));
retval = -1;
}
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",
sha1_to_hex(item->object.sha1));
retval = -1;
continue;
}
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)
+++ /dev/null
-#!/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
+++ /dev/null
-#!/bin/sh
-git-update-cache --add -- "$@"
--- /dev/null
+#!/bin/sh
+git-update-index --add -- "$@"
## use a Signoff_file, because applypatch wants to append the sign-off
## 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 () {
echo >&2 "applymbox [-u] [-k] [-q] (-c .dotest/<num> | mbox) [signoff]"
shift
esac
-files=$(git-diff-cache --cached --name-only HEAD) || exit
+files=$(git-diff-index --cached --name-only HEAD) || exit
if [ "$files" ]; then
echo "Dirty index: cannot apply patches (dirty: $files)" >&2
exit 1
## $3 - "info" file with Author, email and subject
## $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
##
#
=head1 Invocation
- git-archimport-script -i <archive>/<branch> [<archive>/<branch>]
+ git-archimport -i <archive>/<branch> [<archive>/<branch>]
[ <archive>/<branch> ]
The script expects you to provide the key roots where it can start the
# imports don't give us good info
# on added files. Shame on them
if ($ps->{type} eq 'i' || $ps->{type} eq 't') {
- `find . -type f -print0 | grep -zv '^./.git' | xargs -0 -l100 git-update-cache --add`;
- `git-ls-files --deleted -z | xargs --no-run-if-empty -0 -l100 git-update-cache --remove`;
+ `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-index --remove`;
}
if (@$add) {
while (@$add) {
my @slice = splice(@$add, 0, 100);
my $slice = join(' ', @slice);
- `git-update-cache --add $slice`;
- die "Error in git-update-cache --add: $!" if $?;
+ `git-update-index --add $slice`;
+ die "Error in git-update-index --add: $!" if $?;
}
}
if (@$del) {
while (@$del) {
my @slice = splice(@$del, 0, 100);
my $slice = join(' ', @slice);
- `git-update-cache --remove $slice`;
- die "Error in git-update-cache --remove: $!" if $?;
+ `git-update-index --remove $slice`;
+ die "Error in git-update-index --remove: $!" if $?;
}
}
if (@$ren) { # renamed
#print "moving $from $to";
`mv $from $to`;
die "Error renaming $from $to : $!" if $?;
- `git-update-cache --remove $from`;
- die "Error in git-update-cache --remove: $!" if $?;
- `git-update-cache --add $to`;
- die "Error in git-update-cache --add: $!" if $?;
+ `git-update-index --remove $from`;
+ die "Error in git-update-index --remove: $!" if $?;
+ `git-update-index --add $to`;
+ die "Error in git-update-index --add: $!" if $?;
}
}
while (@$mod) {
my @slice = splice(@$mod, 0, 100);
my $slice = join(' ', @slice);
- `git-update-cache $slice`;
- die "Error in git-update-cache: $!" if $?;
+ `git-update-index $slice`;
+ 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`;
die "cannot write tree $!" if $?;
chomp $tree;
#!/bin/sh
-. git-sh-setup-script || dir "Not a git archive"
+. git-sh-setup || dir "Not a git archive"
usage() {
echo >&2 'usage: git bisect [start|bad|good|next|reset|visualize]
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
case "$#" in
0)
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
old=$(git-rev-parse HEAD)
new=
if [ "$force" ]
then
git-read-tree --reset $new &&
- git-checkout-cache -q -f -u -a
+ git-checkout-index -q -f -u -a
else
git-read-tree -m -u $old $new
fi
# 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>]
while read sha1 refname
do
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"
rm -fr "$clone_tmp"
}
# Copyright (c) 2005 Linus Torvalds
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
usage () {
die 'git commit [-a] [-v | --no-verify] [-m <message>] [-F <logfile>] [(-C|-c) <commit>] [<path>...]'
case "$all,$#" in
t,*)
git-diff-files --name-only -z |
- xargs -0 git-update-cache -q --remove --
+ xargs -0 git-update-index -q --remove --
;;
,0)
;;
*)
git-diff-files --name-only -z "$@" |
- xargs -0 git-update-cache -q --remove --
+ xargs -0 git-update-index -q --remove --
;;
esac || exit 1
-git-update-cache -q --refresh || exit 1
+git-update-index -q --refresh || exit 1
case "$verify" in
t)
export GIT_AUTHOR_DATE
fi
fi
-git-status-script >>.editmsg
+git-status >>.editmsg
if [ "$?" != "0" -a ! -f $GIT_DIR/MERGE_HEAD ]
then
rm -f .editmsg
- git-status-script
+ git-status
exit 1
fi
case "$no_edit" in
#!/bin/sh
-. git-sh-setup-script
+. git-sh-setup
echo $(find "$GIT_DIR/objects"/?? -type f -print | wc -l) objects, \
$({
@o2 = @old;
@old = ();
}
- system("git-update-cache","--force-remove","--",@o2);
+ system("git-update-index","--force-remove","--",@o2);
die "Cannot remove files: $?\n" if $?;
}
while(@new) {
@n2 = @new;
@new = ();
}
- system("git-update-cache","--add",
+ system("git-update-index","--add",
(map { ('--cacheinfo', @$_) } @n2));
die "Cannot add files: $?\n" if $?;
}
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"
#!/bin/sh
#
-. git-sh-setup-script || die "Not a git archive"
-. git-parse-remote-script
+. git-sh-setup || die "Not a git archive"
+. git-parse-remote
_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"
expr "$head" : "$_x40\$" >/dev/null ||
die "Failed to fetch $remote_name from $remote"
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://*)
TMP_HEAD="$GIT_DIR/TMP_HEAD"
# Copyright (c) 2005 Junio C Hamano
#
-. git-sh-setup-script || die "Not a git archive."
+. git-sh-setup || die "Not a git archive."
usage () {
echo >&2 "usage: $0"' [-n] [-o dir] [--keep-subject] [--mbox] [--check] [--signoff] [-<diff options>...] upstream [ our-head ]
#!/bin/sh
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
usage () {
echo >&2 "usage: $0 [--heads] [--tags] <repository> <refs>..."
,,,) heads=heads tags=tags other=other ;;
esac
-. git-parse-remote-script
+. git-parse-remote
peek_repo="$(get_remote_url "$@")"
shift
if test -f "$4"; then
rm -f -- "$4"
fi &&
- exec git-update-cache --remove -- "$4"
+ exec git-update-index --remove -- "$4"
;;
#
#
".$2." | "..$3" )
echo "Adding $4"
- git-update-cache --add --cacheinfo "$6$7" "$2$3" "$4" &&
- exec git-checkout-cache -u -f -- "$4"
+ git-update-index --add --cacheinfo "$6$7" "$2$3" "$4" &&
+ exec git-checkout-index -u -f -- "$4"
;;
#
exit 1
fi
echo "Adding $4"
- git-update-cache --add --cacheinfo "$6" "$2" "$4" &&
- exec git-checkout-cache -u -f -- "$4"
+ git-update-index --add --cacheinfo "$6" "$2" "$4" &&
+ exec git-checkout-index -u -f -- "$4"
;;
#
# We reset the index to the first branch, making
# git-diff-file useful
- git-update-cache --add --cacheinfo "$6" "$2" "$4"
- git-checkout-cache -u -f -- "$4" &&
+ git-update-index --add --cacheinfo "$6" "$2" "$4"
+ git-checkout-index -u -f -- "$4" &&
merge "$4" "$orig" "$src2"
ret=$?
rm -f -- "$orig" "$src2"
echo "ERROR: Merge conflict in $4."
exit 1
fi
- exec git-update-cache -- "$4"
+ exec git-update-index -- "$4"
;;
*)
#
# 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 () {
die "usage: git octopus"
head=$(git-rev-parse --verify HEAD) || exit
-git-update-cache --refresh ||
+git-update-index --refresh ||
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."
# MRC is the current "merge reference commit"
if test $? -ne 0
then
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-checkout-cache -f -q -u -a
+ git-checkout-index -f -q -u -a
die "Automatic merge failed; should not be doing Octopus"
}
next=$(git-write-tree 2>/dev/null)
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
get_data_source () {
case "$1" in
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
dryrun=
echo=
case "$1" in
-n) dryrun=-n echo=echo ;;
--) break ;;
- -*) echo >&2 "usage: git-prune-script [ -n ] [ heads... ]"; exit 1 ;;
+ -*) echo >&2 "usage: git-prune [ -n ] [ heads... ]"; exit 1 ;;
*) break ;;
esac
shift;
done
-git-fsck-cache --full --cache --unreachable "$@" |
+git-fsck-objects --full --cache --unreachable "$@" |
sed -ne '/unreachable /{
s/unreachable [^ ][^ ]* //
s|\(..\)|\1/|p
#
# 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?"
-git-fetch-script --update-head-ok "$@" || exit 1
+git-fetch --update-head-ok "$@" || exit 1
curr_head=$(cat "$GIT_DIR/HEAD")
if test "$curr_head" != "$orig_head"
;;
*' '?*)
echo >&2 "Pulling more than one heads; making an Octopus."
- exec git-octopus-script
+ exec git-octopus
;;
esac
-git-resolve-script \
+git-resolve \
"$(cat "$GIT_DIR"/HEAD)" \
$merge_head "Merge $merge_name"
#!/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
# translate it using .git/branches information
die "Where would you want to push today?" ;;
esac
-. git-parse-remote-script
+. git-parse-remote
remote=$(get_remote_url "$@")
case "$has_all" in
--all) set x ;;
# 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 "'<upstream> [<head>]
shift ;;
esac
-git-update-cache --refresh || exit
+git-update-index --refresh || exit
case "$#" in
1) ours_symbolic=HEAD ;;
upstream=`git-rev-parse --verify "$1"` &&
ours=`git-rev-parse --verify "$ours_symbolic"` || exit
-different1=$(git-diff-cache --name-only --cached "$ours") &&
-different2=$(git-diff-cache --name-only "$ours") &&
+different1=$(git-diff-index --name-only --cached "$ours") &&
+different2=$(git-diff-index --name-only "$ours") &&
test "$different1$different2" = "" ||
die "Your working tree does not match $ours_symbolic."
esac
echo >&2 "* Applying: $msg"
S=`cat "$GIT_DIR/HEAD"` &&
- git-cherry-pick-script --replay $commit || {
+ git-cherry-pick --replay $commit || {
echo >&2 "* Not applying the patch and continuing."
echo $commit >>$fail
- git-reset-script --hard $S
+ git-reset --hard $S
}
done
if test -s $fail
rename($src,$dst)
or die "rename failed: $!";
-my $rc = system("git-update-cache","--add","--",@dstfiles);
-die "git-update-cache failed to add new name with code $?\n" if $rc;
+my $rc = system("git-update-index","--add","--",@dstfiles);
+die "git-update-index failed to add new name with code $?\n" if $rc;
-$rc = system("git-update-cache","--remove","--",@srcfiles);
-die "git-update-cache failed to remove old name with code $?\n" if $rc;
+$rc = system("git-update-index","--remove","--",@srcfiles);
+die "git-update-index failed to remove old name with code $?\n" if $rc;
sub usage($) {
# Copyright (c) 2005 Linus Torvalds
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
no_update_info= all_into_one= remove_redundant=
while case "$#" in 0) break ;; esac
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
tmp=/var/tmp/reset.$$
trap 'rm -f $tmp-*' 0 1 2 3 15
--hard )
# Hard reset matches the working tree to that of the tree
# being switched to.
- git-checkout-cache -f -u -q -a
+ git-checkout-index -f -u -q -a
git-ls-files --cached -z |
perl -e '
use strict;
;; # Nothing else to do
--mixed )
# Report what has not been updated.
- git-update-cache --refresh
+ git-update-index --refresh
;;
esac
#
# Resolve two trees.
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
usage () {
- die "git-resolve-script <head> <remote> <merge-message>"
+ die "git-resolve <head> <remote> <merge-message>"
}
dropheads() {
esac
echo "Trying to merge $merge into $head using $common."
-git-update-cache --refresh 2>/dev/null
+git-update-index --refresh 2>/dev/null
git-read-tree -u -m $common $head $merge || exit 1
result_tree=$(git-write-tree 2> /dev/null)
if [ $? -ne 0 ]; then
echo "Simple merge failed, trying Automatic merge"
- git-merge-cache -o git-merge-one-file-script -a
+ git-merge-index -o git-merge-one-file -a
if [ $? -ne 0 ]; then
echo $merge > "$GIT_DIR"/MERGE_HEAD
die "Automatic merge failed, fix up by hand"
# Copyright (c) 2005 Linus Torvalds
# Copyright (c) 2005 Junio C Hamano
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
case "$0" in
-*-revert-* )
+*-revert* )
me=revert ;;
-*-cherry-pick-* )
+*-cherry-pick* )
me=cherry-pick ;;
+* )
+ die "What are ou talking about?" ;;
esac
usage () {
git-read-tree -m -u $base $head $next &&
result=$(git-write-tree 2>/dev/null) || {
echo >&2 "Simple $me fails; trying Automatic $me."
- git-merge-cache -o git-merge-one-file-script -a || {
+ git-merge-index -o git-merge-one-file -a || {
echo >&2 "Automatic $me failed. After fixing it up,"
echo >&2 "you can use \"git commit -F .msg\""
case "$me" in
case "$no_commit" in
'')
- git-commit-script -n -F .msg
+ git-commit -n -F .msg
rm -f .msg
;;
esac
print $_,"\n" for @files;
} else {
print <<EOT;
-git-send-email-script [options] <file | directory> [... file | directory ]
+git-send-email [options] <file | directory> [... file | directory ]
Options:
--from Specify the "From:" line of the email to be sent.
'Reply-to' => $from,
'In-Reply-To' => $reply_to,
'Message-ID' => $message_id,
- 'X-Mailer' => "git-send-email-script",
+ 'X-Mailer' => "git-send-email",
);
$mail{smtp} = $smtp_server;
}
check_clean_tree() {
- dirty1_=`git-update-cache -q --refresh` && {
- dirty2_=`git-diff-cache --name-only --cached HEAD`
+ dirty1_=`git-update-index -q --refresh` && {
+ dirty2_=`git-diff-index --name-only --cached HEAD`
case "$dirty2_" in '') : ;; *) (exit 1) ;; esac
} || {
echo >&2 "$dirty1_"
#
# Copyright (c) 2005 Linus Torvalds
#
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
report () {
header="#
*) echo "# On branch $branch" ;;
esac
-git-update-cache --refresh >/dev/null 2>&1
+git-update-index --refresh >/dev/null 2>&1
if test -f "$GIT_DIR/HEAD"
then
- git-diff-cache -M --cached HEAD |
+ git-diff-index -M --cached HEAD |
sed 's/^://' |
report "Updated but not checked in" "will commit"
git-diff-files |
sed 's/^://' |
-report "Changed but not updated" "use git-update-cache to mark for commit"
+report "Changed but not updated" "use git-update-index to mark for commit"
if grep -v '^#' "$GIT_DIR/info/exclude" >/dev/null 2>&1
then
#!/bin/sh
# Copyright (c) 2005 Linus Torvalds
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
usage () {
- echo >&2 "Usage: git-tag-script [-a | -s] [-f] [-m "tag message"] tagname"
+ echo >&2 "Usage: git-tag [-a | -s] [-f] [-m "tag message"] tagname"
exit 1
}
#!/bin/sh
-. git-sh-setup-script || die "Not a git archive"
+. git-sh-setup || die "Not a git archive"
tag=$(git-rev-parse $1) || exit 1
--- /dev/null
+#!/bin/sh
+
+cmd=
+path=$(dirname $0)
+case "$#" in
+0) ;;
+*) cmd="$1"
+ shift
+ 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
+
+cat <<\EOF
+ add apply archimport bisect branch checkout cherry clone
+ commit count-objects cvsimport diff fetch format-patch
+ fsck-cache get-tar-commit-id init-db log ls-remote octopus
+ pack-objects parse-remote patch-id prune pull push rebase
+ relink rename repack request-pull reset resolve revert
+ send-email shortlog show-branch status tag verify-tag
+ whatchanged
+EOF
#include "cache.h"
#include "commit.h"
-#include "pull.h"
+#include "fetch.h"
#include <curl/curl.h>
#include <curl/easy.h>
arg++;
}
if (argc < arg + 2) {
- usage("git-http-pull [-c] [-t] [-a] [-d] [-v] [--recover] [-w ref] commit-id url");
+ usage("git-http-fetch [-c] [-t] [-a] [-d] [-v] [--recover] [-w ref] commit-id url");
return 1;
}
commit_id = argv[arg];
*/
#include "cache.h"
#include "commit.h"
-#include "pull.h"
+#include "fetch.h"
static int use_link = 0;
static int use_symlink = 0;
}
static const char local_pull_usage[] =
-"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";
/*
* By default we only use file copy.
int found;
if (pos >= active_nr)
- die("git-merge-cache: %s not in the cache", path);
+ die("git-merge-index: %s not in the cache", path);
arguments[0] = pgm;
arguments[1] = "";
arguments[2] = "";
arguments[stage + 4] = ownbuf[stage];
} while (++pos < active_nr);
if (!found)
- die("git-merge-cache: %s not in the cache", path);
+ die("git-merge-index: %s not in the cache", path);
run_program();
return found;
}
int i, force_file = 0;
if (argc < 3)
- usage("git-merge-cache [-o] [-q] <merge-program> (-a | <filename>*)");
+ usage("git-merge-index [-o] [-q] <merge-program> (-a | <filename>*)");
read_cache();
merge_all();
continue;
}
- die("git-merge-cache: unknown option %s", arg);
+ die("git-merge-index: unknown option %s", arg);
}
merge_file(arg);
}
#include "cache.h"
#include "commit.h"
#include "rsh.h"
-#include "pull.h"
+#include "fetch.h"
#include "refs.h"
static int fd_in;
const char *prog;
prog = getenv("GIT_SSH_PUSH");
- if (!prog) prog = "git-ssh-push";
+ if (!prog) prog = "git-ssh-upload";
while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 't') {
arg++;
}
if (argc < arg + 2) {
- usage("git-ssh-pull [-c] [-t] [-a] [-v] [-d] [--recover] [-w ref] commit-id url");
+ usage("git-ssh-fetch [-c] [-t] [-a] [-v] [-d] [--recover] [-w ref] commit-id url");
return 1;
}
commit_id = argv[arg];
do {
size = read(fd_in, sha1 + posn, 20 - posn);
if (size < 0) {
- perror("git-ssh-push: read ");
+ perror("git-ssh-upload: read ");
return -1;
}
if (!size)
remote = 0;
if (!has_sha1_file(sha1)) {
- fprintf(stderr, "git-ssh-push: could not find %s\n",
+ fprintf(stderr, "git-ssh-upload: could not find %s\n",
sha1_to_hex(sha1));
remote = -1;
}
retval = read(fd_in, &type, 1);
if (retval < 1) {
if (retval < 0)
- perror("git-ssh-push: read ");
+ perror("git-ssh-upload: read ");
return;
}
if (type == 'v' && serve_version(fd_in, fd_out))
}
static const char ssh_push_usage[] =
- "git-ssh-push [-c] [-t] [-a] [-w ref] commit-id url";
+ "git-ssh-upload [-c] [-t] [-a] [-w ref] commit-id url";
int main(int argc, char **argv)
{
char hex[41];
prog = getenv("GIT_SSH_PULL");
- if (!prog) prog = "git-ssh-pull";
+ if (!prog) prog = "git-ssh-fetch";
while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 'w')
arg++;
*** t0000-basic.sh ***
* ok 1: .git/objects should be empty after git-init-db in an empty repo.
* ok 2: .git/objects should have 256 subdirectories.
- * ok 3: git-update-cache without --add should fail adding.
+ * ok 3: git-update-index without --add should fail adding.
...
- * ok 23: no diff after checkout and git-update-cache --refresh.
+ * ok 23: no diff after checkout and git-update-index --refresh.
* passed all 23 test(s)
*** t0100-environment-names.sh ***
* ok 1: using old names should issue warnings.
this:
$ sh ./t3001-ls-files-killed.sh
- * ok 1: git-update-cache --add to add various paths.
+ * ok 1: git-update-index --add to add various paths.
* ok 2: git-ls-files -k to show killed files.
* ok 3: validate git-ls-files -k output.
* passed all 3 test(s)
Example:
test_expect_failure \
- 'git-update-cache without --add should fail adding.' \
- 'git-update-cache should-be-empty'
+ 'git-update-index without --add should fail adding.' \
+ 'git-update-index should-be-empty'
- test_debug <script>
echo This is Z/$p from the original tree. >Z/$p
test_expect_success \
"adding test file $p and Z/$p" \
- 'git-update-cache --add $p &&
- git-update-cache --add Z/$p'
+ 'git-update-index --add $p &&
+ git-update-index --add Z/$p'
done
done
echo This is SS from the original tree. >SS
test_expect_success \
'adding test file SS' \
- 'git-update-cache --add SS'
+ 'git-update-index --add SS'
cat >TT <<\EOF
This is a trivial merge sample text.
Branch A is expected to upcase this word, here.
EOF
test_expect_success \
'adding test file TT' \
- 'git-update-cache --add TT'
+ 'git-update-index --add TT'
test_expect_success \
'prepare initial tree' \
'tree_O=$(git-write-tree)'
rm -f $to_remove
test_expect_success \
'change in branch A (removal)' \
- 'git-update-cache --remove $to_remove'
+ 'git-update-index --remove $to_remove'
for p in M? Z/M?
do
echo This is modified $p in the branch A. >$p
test_expect_success \
'change in branch A (modification)' \
- "git-update-cache $p"
+ "git-update-index $p"
done
for p in AN AA Z/AN Z/AA
echo This is added $p in the branch A. >$p
test_expect_success \
'change in branch A (addition)' \
- "git-update-cache --add $p"
+ "git-update-index --add $p"
done
echo This is SS from the modified tree. >SS
echo This is LL from the modified tree. >LL
test_expect_success \
'change in branch A (addition)' \
- 'git-update-cache --add LL &&
- git-update-cache SS'
+ 'git-update-index --add LL &&
+ git-update-index SS'
mv TT TT-
sed -e '/Branch A/s/word/WORD/g' <TT- >TT
rm -f TT-
test_expect_success \
'change in branch A (edit)' \
- 'git-update-cache TT'
+ 'git-update-index TT'
mkdir DF
echo Branch A makes a file at DF/DF, creating a directory DF. >DF/DF
test_expect_success \
'change in branch A (change file to directory)' \
- 'git-update-cache --add DF/DF'
+ 'git-update-index --add DF/DF'
test_expect_success \
'recording branch A tree' \
test_expect_success \
'reading original tree and checking out' \
'git-read-tree $tree_O &&
- git-checkout-cache -a'
+ git-checkout-index -a'
to_remove=$(echo ?D Z/?D)
rm -f $to_remove
test_expect_success \
'change in branch B (removal)' \
- "git-update-cache --remove $to_remove"
+ "git-update-index --remove $to_remove"
for p in ?M Z/?M
do
echo This is modified $p in the branch B. >$p
test_expect_success \
'change in branch B (modification)' \
- "git-update-cache $p"
+ "git-update-index $p"
done
for p in NA AA Z/NA Z/AA
echo This is added $p in the branch B. >$p
test_expect_success \
'change in branch B (addition)' \
- "git-update-cache --add $p"
+ "git-update-index --add $p"
done
echo This is SS from the modified tree. >SS
echo This is LL from the modified tree. >LL
test_expect_success \
'change in branch B (addition and modification)' \
- 'git-update-cache --add LL &&
- git-update-cache SS'
+ 'git-update-index --add LL &&
+ git-update-index SS'
mv TT TT-
sed -e '/Branch B/s/word/WORD/g' <TT- >TT
rm -f TT-
test_expect_success \
'change in branch B (modification)' \
- 'git-update-cache TT'
+ 'git-update-index TT'
echo Branch B makes a file at DF. >DF
test_expect_success \
'change in branch B (addition of a file to conflict with directory)' \
- 'git-update-cache --add DF'
+ 'git-update-index --add DF'
test_expect_success \
'recording branch B tree' \
'rm -f .git/index &&
git-read-tree $tree_O &&
mkdir .orig-O &&
- git-checkout-cache --prefix=.orig-O/ -f -q -a &&
+ git-checkout-index --prefix=.orig-O/ -f -q -a &&
rm -f .git/index &&
git-read-tree $tree_A &&
mkdir .orig-A &&
- git-checkout-cache --prefix=.orig-A/ -f -q -a &&
+ git-checkout-index --prefix=.orig-A/ -f -q -a &&
rm -f .git/index &&
git-read-tree $tree_B &&
mkdir .orig-B &&
- git-checkout-cache --prefix=.orig-B/ -f -q -a'
+ git-checkout-index --prefix=.orig-B/ -f -q -a'
# updating a new file without --add should fail.
test_expect_failure \
- 'git-update-cache without --add should fail adding.' \
- 'git-update-cache should-be-empty'
+ 'git-update-index without --add should fail adding.' \
+ 'git-update-index should-be-empty'
# and with --add it should succeed, even if it is empty (it used to fail).
test_expect_success \
- 'git-update-cache with --add should succeed.' \
- 'git-update-cache --add should-be-empty'
+ 'git-update-index with --add should succeed.' \
+ 'git-update-index --add should-be-empty'
test_expect_success \
'writing tree out with git-write-tree' \
# Removing paths.
rm -f should-be-empty full-of-directories
test_expect_failure \
- 'git-update-cache without --remove should fail removing.' \
- 'git-update-cache should-be-empty'
+ 'git-update-index without --remove should fail removing.' \
+ 'git-update-index should-be-empty'
test_expect_success \
- 'git-update-cache with --remove should be able to remove.' \
- 'git-update-cache --remove should-be-empty'
+ 'git-update-index with --remove should be able to remove.' \
+ 'git-update-index --remove should-be-empty'
# Empty tree can be written with recent write-tree.
test_expect_success \
ln -s "hello $p" ${p}sym
done
test_expect_success \
- 'adding various types of objects with git-update-cache --add.' \
- 'find path* ! -type d -print0 | xargs -0 git-update-cache --add'
+ 'adding various types of objects with git-update-index --add.' \
+ 'find path* ! -type d -print0 | xargs -0 git-update-index --add'
# Show them and see that matches what we expect.
test_expect_success \
'git-diff-files >current && diff >/dev/null -b current expected'
test_expect_success \
- 'git-update-cache --refresh should succeed.' \
- 'git-update-cache --refresh'
+ 'git-update-index --refresh should succeed.' \
+ 'git-update-index --refresh'
test_expect_success \
- 'no diff after checkout and git-update-cache --refresh.' \
+ 'no diff after checkout and git-update-index --refresh.' \
'git-diff-files >current && cmp -s current /dev/null'
test_done
}
date >path0
-git-update-cache --add path0
+git-update-index --add path0
tree=$(git-write-tree)
AUTHOR_DATE='Wed May 11 23:55:18 2005'
date >path0
test_expect_success \
- 'using GIT_DIR in git-update-cache' \
- 'git-update-cache --add path0 && test -f .svn/index'
+ 'using GIT_DIR in git-update-index' \
+ 'git-update-index --add path0 && test -f .svn/index'
sedScript='s|\(..\)|.svn/objects/\1/|'
"rm -fr [NDMALTS][NDMALTSF] Z &&
rm .git/index &&
git-read-tree $tree_A &&
- git-checkout-cache -f -u -a &&
+ git-checkout-index -f -u -a &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'1 - must not have an entry not in A.' \
"rm -f .git/index XX &&
echo XX >XX &&
- git-update-cache --add XX &&
+ git-update-index --add XX &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'2 - must match B in !O && !A && B case.' \
"rm -f .git/index NA &&
cp .orig-B/NA NA &&
- git-update-cache --add NA &&
+ git-update-index --add NA &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'2 - matching B alone is OK in !O && !A && B case.' \
"rm -f .git/index NA &&
cp .orig-B/NA NA &&
- git-update-cache --add NA &&
+ git-update-index --add NA &&
echo extra >>NA &&
git-read-tree -m $tree_O $tree_A $tree_B"
'3 - must match A in !O && A && !B case.' \
"rm -f .git/index AN &&
cp .orig-A/AN AN &&
- git-update-cache --add AN &&
+ git-update-index --add AN &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'3 - matching A alone is OK in !O && A && !B case.' \
"rm -f .git/index AN &&
cp .orig-A/AN AN &&
- git-update-cache --add AN &&
+ git-update-index --add AN &&
echo extra >>AN &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index AN &&
cp .orig-A/AN AN &&
echo extra >>AN &&
- git-update-cache --add AN &&
+ git-update-index --add AN &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'4 - must match and be up-to-date in !O && A && B && A!=B case.' \
"rm -f .git/index AA &&
cp .orig-A/AA AA &&
- git-update-cache --add AA &&
+ git-update-index --add AA &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'4 (fail) - must match and be up-to-date in !O && A && B && A!=B case.' \
"rm -f .git/index AA &&
cp .orig-A/AA AA &&
- git-update-cache --add AA &&
+ git-update-index --add AA &&
echo extra >>AA &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index AA &&
cp .orig-A/AA AA &&
echo extra >>AA &&
- git-update-cache --add AA &&
+ git-update-index --add AA &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'5 - must match in !O && A && B && A==B case.' \
"rm -f .git/index LL &&
cp .orig-A/LL LL &&
- git-update-cache --add LL &&
+ git-update-index --add LL &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'5 - must match in !O && A && B && A==B case.' \
"rm -f .git/index LL &&
cp .orig-A/LL LL &&
- git-update-cache --add LL &&
+ git-update-index --add LL &&
echo extra >>LL &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
"rm -f .git/index LL &&
cp .orig-A/LL LL &&
echo extra >>LL &&
- git-update-cache --add LL &&
+ git-update-index --add LL &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_failure \
'6 - must not exist in O && !A && !B case' \
"rm -f .git/index DD &&
echo DD >DD
- git-update-cache --add DD &&
+ git-update-index --add DD &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_failure \
'7 - must not exist in O && !A && B && O!=B case' \
"rm -f .git/index DM &&
cp .orig-B/DM DM &&
- git-update-cache --add DM &&
+ git-update-index --add DM &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_failure \
'8 - must not exist in O && !A && B && O==B case' \
"rm -f .git/index DN &&
cp .orig-B/DN DN &&
- git-update-cache --add DN &&
+ git-update-index --add DN &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'9 - must match and be up-to-date in O && A && !B && O!=A case' \
"rm -f .git/index MD &&
cp .orig-A/MD MD &&
- git-update-cache --add MD &&
+ git-update-index --add MD &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'9 (fail) - must match and be up-to-date in O && A && !B && O!=A case' \
"rm -f .git/index MD &&
cp .orig-A/MD MD &&
- git-update-cache --add MD &&
+ git-update-index --add MD &&
echo extra >>MD &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index MD &&
cp .orig-A/MD MD &&
echo extra >>MD &&
- git-update-cache --add MD &&
+ git-update-index --add MD &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'10 - must match and be up-to-date in O && A && !B && O==A case' \
"rm -f .git/index ND &&
cp .orig-A/ND ND &&
- git-update-cache --add ND &&
+ git-update-index --add ND &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'10 (fail) - must match and be up-to-date in O && A && !B && O==A case' \
"rm -f .git/index ND &&
cp .orig-A/ND ND &&
- git-update-cache --add ND &&
+ git-update-index --add ND &&
echo extra >>ND &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index ND &&
cp .orig-A/ND ND &&
echo extra >>ND &&
- git-update-cache --add ND &&
+ git-update-index --add ND &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'11 - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case' \
"rm -f .git/index MM &&
cp .orig-A/MM MM &&
- git-update-cache --add MM &&
+ git-update-index --add MM &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'11 (fail) - must match and be up-to-date in O && A && B && O!=A && O!=B && A!=B case' \
"rm -f .git/index MM &&
cp .orig-A/MM MM &&
- git-update-cache --add MM &&
+ git-update-index --add MM &&
echo extra >>MM &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index MM &&
cp .orig-A/MM MM &&
echo extra >>MM &&
- git-update-cache --add MM &&
+ git-update-index --add MM &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'12 - must match A in O && A && B && O!=A && A==B case' \
"rm -f .git/index SS &&
cp .orig-A/SS SS &&
- git-update-cache --add SS &&
+ git-update-index --add SS &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'12 - must match A in O && A && B && O!=A && A==B case' \
"rm -f .git/index SS &&
cp .orig-A/SS SS &&
- git-update-cache --add SS &&
+ git-update-index --add SS &&
echo extra >>SS &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
"rm -f .git/index SS &&
cp .orig-A/SS SS &&
echo extra >>SS &&
- git-update-cache --add SS &&
+ git-update-index --add SS &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'13 - must match A in O && A && B && O!=A && O==B case' \
"rm -f .git/index MN &&
cp .orig-A/MN MN &&
- git-update-cache --add MN &&
+ git-update-index --add MN &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'13 - must match A in O && A && B && O!=A && O==B case' \
"rm -f .git/index MN &&
cp .orig-A/MN MN &&
- git-update-cache --add MN &&
+ git-update-index --add MN &&
echo extra >>MN &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'14 - must match and be up-to-date in O && A && B && O==A && O!=B case' \
"rm -f .git/index NM &&
cp .orig-A/NM NM &&
- git-update-cache --add NM &&
+ git-update-index --add NM &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'14 - may match B in O && A && B && O==A && O!=B case' \
"rm -f .git/index NM &&
cp .orig-B/NM NM &&
- git-update-cache --add NM &&
+ git-update-index --add NM &&
echo extra >>NM &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'14 (fail) - must match and be up-to-date in O && A && B && O==A && O!=B case' \
"rm -f .git/index NM &&
cp .orig-A/NM NM &&
- git-update-cache --add NM &&
+ git-update-index --add NM &&
echo extra >>NM &&
git-read-tree -m $tree_O $tree_A $tree_B"
"rm -f .git/index NM &&
cp .orig-A/NM NM &&
echo extra >>NM &&
- git-update-cache --add NM &&
+ git-update-index --add NM &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_expect_success \
'15 - must match A in O && A && B && O==A && O==B case' \
"rm -f .git/index NN &&
cp .orig-A/NN NN &&
- git-update-cache --add NN &&
+ git-update-index --add NN &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
'15 - must match A in O && A && B && O==A && O==B case' \
"rm -f .git/index NN &&
cp .orig-A/NN NN &&
- git-update-cache --add NN &&
+ git-update-index --add NN &&
echo extra >>NN &&
git-read-tree -m $tree_O $tree_A $tree_B &&
check_result"
"rm -f .git/index NN &&
cp .orig-A/NN NN &&
echo extra >>NN &&
- git-update-cache --add NN &&
+ git-update-index --add NN &&
git-read-tree -m $tree_O $tree_A $tree_B"
test_done
cat bozbar-old >bozbar &&
echo rezrov >rezrov &&
echo yomin >yomin &&
- git-update-cache --add nitfol bozbar rezrov &&
+ git-update-index --add nitfol bozbar rezrov &&
treeH=`git-write-tree` &&
echo treeH $treeH &&
git-ls-tree $treeH &&
cat bozbar-new >bozbar &&
- git-update-cache --add frotz bozbar --force-remove rezrov &&
+ git-update-index --add frotz bozbar --force-remove rezrov &&
git-ls-files --stage >M.out &&
treeM=`git-write-tree` &&
echo treeM $treeM &&
'4 - carry forward local addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
- git-update-cache --add yomin &&
+ git-checkout-index -u -f -q -a &&
+ git-update-index --add yomin &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >4.out || return 1
diff -u M.out 4.out >4diff.out
'5 - carry forward local addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo yomin >yomin &&
- git-update-cache --add yomin &&
+ git-update-index --add yomin &&
echo yomin yomin >yomin &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >5.out || return 1
'6 - local addition already has the same.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
- git-update-cache --add frotz &&
+ git-checkout-index -u -f -q -a &&
+ git-update-index --add frotz &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >6.out &&
diff -u M.out 6.out &&
'7 - local addition already has the same.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz frotz >frotz &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >7.out &&
'8 - conflicting addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
test_expect_success \
'9 - conflicting addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz >frotz &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'10 - path removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >10.out &&
diff -u M.out 10.out'
'11 - dirty path removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov rezrov >rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'12 - unmatching local changes being removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
test_expect_success \
'13 - unmatching local changes being removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov >rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'14 - unchanged in two heads.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >14.out || return 1
diff -u M.out 14.out >14diff.out
'15 - unchanged in two heads.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
echo nitfol nitfol nitfol >nitfol &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >15.out || return 1
'16 - conflicting local change.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
test_expect_success \
'17 - conflicting local change.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo bozbar bozbar bozbar >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'18 - local change already having a good result.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-new >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >18.out &&
diff -u M.out 18.out &&
'19 - local change already having a good result, further modified.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-new >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >19.out &&
'20 - no local change, use new tree.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >20.out &&
diff -u M.out 20.out &&
'21 - no local change, dirty cache.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'22 - local change cache updated.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
sed -e "s/such as/SUCH AS/" bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
# Also make sure we did not break DF vs DF/DF case.
'DF vs DF/DF case setup.' \
'rm -f .git/index &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
treeDF=`git-write-tree` &&
echo treeDF $treeDF &&
git-ls-tree $treeDF &&
rm -f DF &&
mkdir DF &&
echo DF/DF >DF/DF &&
- git-update-cache --add --remove DF DF/DF &&
+ git-update-index --add --remove DF DF/DF &&
treeDFDF=`git-write-tree` &&
echo treeDFDF $treeDFDF &&
git-ls-tree $treeDFDF &&
'rm -f .git/index &&
rm -fr DF &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
read_tree_twoway $treeDF $treeDFDF &&
git-ls-files --stage >DFDFcheck.out &&
diff -u DFDF.out DFDFcheck.out &&
echo bozbar >bozbar &&
echo rezrov >rezrov &&
echo yomin >yomin &&
- git-update-cache --add nitfol bozbar rezrov &&
+ git-update-index --add nitfol bozbar rezrov &&
treeH=`git-write-tree` &&
echo treeH $treeH &&
git-ls-tree $treeH &&
echo gnusto >bozbar &&
- git-update-cache --add frotz bozbar --force-remove rezrov &&
+ git-update-index --add frotz bozbar --force-remove rezrov &&
git-ls-files --stage >M.out &&
treeM=`git-write-tree` &&
echo treeM $treeM &&
test_expect_success \
'4 - carry forward local addition.' \
'rm -f .git/index &&
- git-update-cache --add yomin &&
+ git-update-index --add yomin &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >4.out || return 1
diff --unified=0 M.out 4.out >4diff.out
'5 - carry forward local addition.' \
'rm -f .git/index &&
echo yomin >yomin &&
- git-update-cache --add yomin &&
+ git-update-index --add yomin &&
echo yomin yomin >yomin &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >5.out || return 1
test_expect_success \
'6 - local addition already has the same.' \
'rm -f .git/index &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >6.out &&
diff --unified=0 M.out 6.out &&
'7 - local addition already has the same.' \
'rm -f .git/index &&
echo frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz frotz >frotz &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >7.out &&
'8 - conflicting addition.' \
'rm -f .git/index &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
test_expect_success \
'9 - conflicting addition.' \
'rm -f .git/index &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz >frotz &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
'10 - path removed.' \
'rm -f .git/index &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >10.out &&
cmp M.out 10.out &&
'11 - dirty path removed.' \
'rm -f .git/index &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov rezrov >rezrov &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
'12 - unmatching local changes being removed.' \
'rm -f .git/index &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
test_expect_success \
'13 - unmatching local changes being removed.' \
'rm -f .git/index &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov >rezrov &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
'14 - unchanged in two heads.' \
'rm -f .git/index &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >14.out || return 1
diff --unified=0 M.out 14.out >14diff.out
'15 - unchanged in two heads.' \
'rm -f .git/index &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
echo nitfol nitfol nitfol >nitfol &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >15.out || return 1
'16 - conflicting local change.' \
'rm -f .git/index &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
test_expect_success \
'17 - conflicting local change.' \
'rm -f .git/index &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo bozbar bozbar bozbar >bozbar &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
'18 - local change already having a good result.' \
'rm -f .git/index &&
echo gnusto >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >18.out &&
diff --unified=0 M.out 18.out &&
'19 - local change already having a good result, further modified.' \
'rm -f .git/index &&
echo gnusto >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >19.out &&
'20 - no local change, use new tree.' \
'rm -f .git/index &&
echo bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
git-read-tree -m -u $treeH $treeM &&
git-ls-files --stage >20.out &&
diff --unified=0 M.out 20.out &&
'21 - no local change, dirty cache.' \
'rm -f .git/index &&
echo bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
if git-read-tree -m -u $treeH $treeM; then false; else :; fi'
'DF vs DF/DF case setup.' \
'rm -f .git/index &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
treeDF=`git-write-tree` &&
echo treeDF $treeDF &&
git-ls-tree $treeDF &&
rm -f DF &&
mkdir DF &&
echo DF/DF >DF/DF &&
- git-update-cache --add --remove DF DF/DF &&
+ git-update-index --add --remove DF DF/DF &&
treeDFDF=`git-write-tree` &&
echo treeDFDF $treeDFDF &&
git-ls-tree $treeDFDF &&
'rm -f .git/index &&
rm -fr DF &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
git-read-tree -m -u $treeDF $treeDFDF &&
git-ls-files --stage >DFDFcheck.out &&
diff --unified=0 DFDF.out DFDFcheck.out &&
read_tree_twoway () {
git-read-tree --emu23 "$1" "$2" &&
git-ls-files --stage &&
- git-merge-cache git-merge-one-file-script -a &&
+ git-merge-index ../../git-merge-one-file.sh -a &&
git-ls-files --stage
}
cat bozbar-old >bozbar &&
echo rezrov >rezrov &&
echo yomin >yomin &&
- git-update-cache --add nitfol bozbar rezrov &&
+ git-update-index --add nitfol bozbar rezrov &&
treeH=`git-write-tree` &&
echo treeH $treeH &&
git-ls-tree $treeH &&
cat bozbar-new >bozbar &&
- git-update-cache --add frotz bozbar --force-remove rezrov &&
+ git-update-index --add frotz bozbar --force-remove rezrov &&
git-ls-files --stage >M.out &&
treeM=`git-write-tree` &&
echo treeM $treeM &&
'4 - carry forward local addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
- git-update-cache --add yomin &&
+ git-checkout-index -u -f -q -a &&
+ git-update-index --add yomin &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >4.out || return 1
diff -u M.out 4.out >4diff.out
'5 - carry forward local addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo yomin >yomin &&
- git-update-cache --add yomin &&
+ git-update-index --add yomin &&
echo yomin yomin >yomin &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >5.out || return 1
'6 - local addition already has the same.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
- git-update-cache --add frotz &&
+ git-checkout-index -u -f -q -a &&
+ git-update-index --add frotz &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >6.out &&
diff -u M.out 6.out &&
'7 - local addition already has the same.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz frotz >frotz &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >7.out &&
'8 - conflicting addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
test_expect_success \
'9 - conflicting addition.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo frotz frotz >frotz &&
- git-update-cache --add frotz &&
+ git-update-index --add frotz &&
echo frotz >frotz &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'10 - path removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >10.out &&
diff -u M.out 10.out'
'11 - dirty path removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov rezrov >rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'12 - unmatching local changes being removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
test_expect_success \
'13 - unmatching local changes being removed.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo rezrov rezrov >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
echo rezrov >rezrov &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'14 - unchanged in two heads.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >14.out || return 1
diff -u M.out 14.out >14diff.out
'15 - unchanged in two heads.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo nitfol nitfol >nitfol &&
- git-update-cache --add nitfol &&
+ git-update-index --add nitfol &&
echo nitfol nitfol nitfol >nitfol &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >15.out || return 1
'16 - conflicting local change.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
git-read-tree --emu23 $treeH $treeM &&
check_stages' <<\EOF
100644 X 1 bozbar
'17 - conflicting local change.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
echo bozbar bozbar >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo bozbar bozbar bozbar >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'18 - local change already having a good result.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-new >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >18.out &&
diff -u M.out 18.out &&
'19 - local change already having a good result, further modified.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-new >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >19.out &&
'20 - no local change, use new tree.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >20.out &&
diff -u M.out 20.out &&
'21 - no local change, dirty cache.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
cat bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
echo gnusto gnusto >bozbar &&
if read_tree_twoway $treeH $treeM; then false; else :; fi'
'22 - local change cache updated.' \
'rm -f .git/index &&
git-read-tree $treeH &&
- git-checkout-cache -u -f -q -a &&
+ git-checkout-index -u -f -q -a &&
sed -e "s/such as/SUCH AS/" bozbar-old >bozbar &&
- git-update-cache --add bozbar &&
+ git-update-index --add bozbar &&
read_tree_twoway $treeH $treeM &&
git-ls-files --stage >22.out || return 1
diff -u M.out 22.out >22diff.out
'DF vs DF/DF case setup.' \
'rm -f .git/index &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
treeDF=`git-write-tree` &&
echo treeDF $treeDF &&
git-ls-tree $treeDF &&
rm -f DF &&
mkdir DF &&
echo DF/DF >DF/DF &&
- git-update-cache --add --remove DF DF/DF &&
+ git-update-index --add --remove DF DF/DF &&
treeDFDF=`git-write-tree` &&
echo treeDFDF $treeDFDF &&
git-ls-tree $treeDFDF &&
'rm -f .git/index &&
rm -fr DF &&
echo DF >DF &&
- git-update-cache --add DF &&
+ git-update-index --add DF &&
read_tree_twoway $treeDF $treeDFDF &&
git-ls-files --stage >DFDFcheck.out &&
diff -u DFDF.out DFDFcheck.out &&
rm -fr DF &&
mkdir DF &&
echo DF/DF >DF/DF &&
- git-update-cache --add DF/DF &&
+ git-update-index --add DF/DF &&
read_tree_twoway $treeDFDF $treeDF &&
git-ls-files --stage >DFDFcheck.out &&
diff -u DF.out DFDFcheck.out &&
rm -fr DF &&
mkdir DF &&
echo DF/DF >DF/DF &&
- git-update-cache --add DF/DF &&
+ git-update-index --add DF/DF &&
# This should fail because I and H have a conflict
# at DF.
if git-read-tree --emu23 $treeDF $treeDFDF
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-checkout-cache test.
+test_description='git-checkout-index test.
This test registers the following filesystem structure in the
cache:
path0/file0 - a file in a directory
path1 - a file
-The git-checkout-cache command should fail when attempting to checkout
+The git-checkout-index command should fail when attempting to checkout
path0, finding it is occupied by a directory, and path1/file1, finding
path1 is occupied by a non-directory. With "-f" flag, it should remove
the conflicting paths and succeed.
date >path1/file1
test_expect_success \
- 'git-update-cache --add various paths.' \
- 'git-update-cache --add path0 path1/file1'
+ 'git-update-index --add various paths.' \
+ 'git-update-index --add path0 path1/file1'
rm -fr path0 path1
mkdir path0
date >path1
test_expect_failure \
- 'git-checkout-cache without -f should fail on conflicting work tree.' \
- 'git-checkout-cache -a'
+ 'git-checkout-index without -f should fail on conflicting work tree.' \
+ 'git-checkout-index -a'
test_expect_success \
- 'git-checkout-cache with -f should succeed.' \
- 'git-checkout-cache -f -a'
+ 'git-checkout-index with -f should succeed.' \
+ 'git-checkout-index -f -a'
test_expect_success \
- 'git-checkout-cache conflicting paths.' \
+ 'git-checkout-index conflicting paths.' \
'test -f path0 && test -d path1 && test -f path1/file1'
test_done
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-checkout-cache test.
+test_description='git-checkout-index test.
This test registers the following filesystem structure in the cache:
mkdir path0
date >path0/file0
test_expect_success \
- 'git-update-cache --add path0/file0' \
- 'git-update-cache --add path0/file0'
+ 'git-update-index --add path0/file0' \
+ 'git-update-index --add path0/file0'
test_expect_success \
'writing tree out with git-write-tree' \
'tree1=$(git-write-tree)'
mkdir path1
date >path1/file1
test_expect_success \
- 'git-update-cache --add path1/file1' \
- 'git-update-cache --add path1/file1'
+ 'git-update-index --add path1/file1' \
+ 'git-update-index --add path1/file1'
test_expect_success \
'writing tree out with git-write-tree' \
'tree2=$(git-write-tree)'
rm -fr path1
test_expect_success \
'read previously written tree and checkout.' \
- 'git-read-tree -m $tree1 && git-checkout-cache -f -a'
+ 'git-read-tree -m $tree1 && git-checkout-index -f -a'
test_debug 'show_files $tree1'
ln -s path0 path1
test_expect_success \
- 'git-update-cache --add a symlink.' \
- 'git-update-cache --add path1'
+ 'git-update-index --add a symlink.' \
+ 'git-update-index --add path1'
test_expect_success \
'writing tree out with git-write-tree' \
'tree3=$(git-write-tree)'
test_expect_success \
'read previously written tree and checkout.' \
- 'git-read-tree $tree2 && git-checkout-cache -f -a'
+ 'git-read-tree $tree2 && git-checkout-index -f -a'
test_debug show_files $tree2
test_expect_success \
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-checkout-cache -u test.
+test_description='git-checkout-index -u test.
-With -u flag, git-checkout-cache internally runs the equivalent of
-git-update-cache --refresh on the checked out entry.'
+With -u flag, git-checkout-index internally runs the equivalent of
+git-update-index --refresh on the checked out entry.'
. ./test-lib.sh
test_expect_success \
'preparation' '
echo frotz >path0 &&
-git-update-cache --add path0 &&
+git-update-index --add path0 &&
t=$(git-write-tree)'
test_expect_failure \
-'without -u, git-checkout-cache smudges stat information.' '
+'without -u, git-checkout-index smudges stat information.' '
rm -f path0 &&
git-read-tree $t &&
-git-checkout-cache -f -a &&
+git-checkout-index -f -a &&
git-diff-files | diff - /dev/null'
test_expect_success \
-'with -u, git-checkout-cache picks up stat information from new files.' '
+'with -u, git-checkout-index picks up stat information from new files.' '
rm -f path0 &&
git-read-tree $t &&
-git-checkout-cache -u -f -a &&
+git-checkout-index -u -f -a &&
git-diff-files | diff - /dev/null'
test_done
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-checkout-cache --prefix test.
+test_description='git-checkout-index --prefix test.
This test makes sure that --prefix option works as advertised, and
also verifies that such leading path may contain symlinks, unlike
'mkdir path1 &&
echo frotz >path0 &&
echo rezrov >path1/file1 &&
- git-update-cache --add path0 path1/file1'
+ git-update-index --add path0 path1/file1'
test_expect_success \
'have symlink in place where dir is expected.' \
'rm -fr path0 path1 &&
mkdir path2 &&
ln -s path2 path1 &&
- git-checkout-cache -f -a &&
+ git-checkout-index -f -a &&
test ! -h path1 && test -d path1 &&
test -f path1/file1 && test ! -f path2/file1'
'use --prefix=path2/' \
'rm -fr path0 path1 path2 &&
mkdir path2 &&
- git-checkout-cache --prefix=path2/ -f -a &&
+ git-checkout-index --prefix=path2/ -f -a &&
test -f path2/path0 &&
test -f path2/path1/file1 &&
test ! -f path0 &&
test_expect_success \
'use --prefix=tmp-' \
'rm -fr path0 path1 path2 tmp* &&
- git-checkout-cache --prefix=tmp- -f -a &&
+ git-checkout-index --prefix=tmp- -f -a &&
test -f tmp-path0 &&
test -f tmp-path1/file1 &&
test ! -f path0 &&
'rm -fr path0 path1 path2 tmp* &&
echo nitfol >tmp-path1 &&
mkdir tmp-path0 &&
- git-checkout-cache --prefix=tmp- -f -a &&
+ git-checkout-index --prefix=tmp- -f -a &&
test -f tmp-path0 &&
test -f tmp-path1/file1 &&
test ! -f path0 &&
'rm -fr path0 path1 path2 tmp* &&
mkdir tmp1 tmp1/orary &&
ln -s tmp1 tmp &&
- git-checkout-cache --prefix=tmp/orary/ -f -a &&
+ git-checkout-index --prefix=tmp/orary/ -f -a &&
test -d tmp1/orary &&
test -f tmp1/orary/path0 &&
test -f tmp1/orary/path1/file1 &&
'rm -fr path0 path1 path2 tmp* &&
mkdir tmp1 &&
ln -s tmp1 tmp &&
- git-checkout-cache --prefix=tmp/orary- -f -a &&
+ git-checkout-index --prefix=tmp/orary- -f -a &&
test -f tmp1/orary-path0 &&
test -f tmp1/orary-path1/file1 &&
test -h tmp'
'rm -fr path0 path1 path2 tmp* &&
mkdir tmp1 &&
ln -s tmp1 tmp-path1 &&
- git-checkout-cache --prefix=tmp- -f -a &&
+ git-checkout-index --prefix=tmp- -f -a &&
test -f tmp-path0 &&
test ! -h tmp-path1 &&
test -d tmp-path1 &&
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-update-cache nonsense-path test.
+test_description='git-update-index nonsense-path test.
This test creates the following structure in the cache:
path2/file2 - a file in a directory
path3/file3 - a file in a directory
-and tries to git-update-cache --add the following:
+and tries to git-update-index --add the following:
path0/file0 - a file in a directory
path1/file1 - a file in a directory
date >path3/file3
test_expect_success \
- 'git-update-cache --add to add various paths.' \
- 'git-update-cache --add -- path0 path1 path2/file2 path3/file3'
+ 'git-update-index --add to add various paths.' \
+ 'git-update-index --add -- path0 path1 path2/file2 path3/file3'
rm -fr path?
for p in path0/file0 path1/file1 path2 path3
do
test_expect_failure \
- "git-update-cache to add conflicting path $p should fail." \
- "git-update-cache --add -- $p"
+ "git-update-index to add conflicting path $p should fail." \
+ "git-update-index --add -- $p"
done
test_done
date >path2/file2
date >path3/file3
test_expect_success \
- 'git-update-cache --add to add various paths.' \
- "git-update-cache --add -- path0 path1 path?/file?"
+ 'git-update-index --add to add various paths.' \
+ "git-update-index --add -- path0 path1 path?/file?"
rm -fr path?
date >path2
ln -s ../path1 path2/bazbo &&
echo Mi >path2/baz/b &&
find path? \( -type f -o -type l \) -print |
- xargs git-update-cache --add &&
+ xargs git-update-index --add &&
tree=`git-write-tree` &&
echo $tree'
test_expect_success \
'update-cache --add two files with and without +x.' \
- 'git-update-cache --add path0 path1'
+ 'git-update-index --add path0 path1'
mv path0 path0-
sed -e 's/line/Line/' <path0- >path0
test_expect_success \
'update-cache --add a file.' \
- 'git-update-cache --add path0'
+ 'git-update-index --add path0'
test_expect_success \
'write that tree.' \
rm -f path0
test_expect_success \
'renamed and edited the file.' \
- 'git-update-cache --add --remove path0 path1'
+ 'git-update-index --add --remove path0 path1'
test_expect_success \
- 'git-diff-cache -p -M after rename and editing.' \
- 'git-diff-cache -p -M $tree >current'
+ 'git-diff-index -p -M after rename and editing.' \
+ 'git-diff-index -p -M $tree >current'
cat >expected <<\EOF
diff --git a/path0 b/path1
rename from path0
test_expect_success \
'diff-cache O with A in cache' \
'git-read-tree $tree_A &&
- git-diff-cache --cached $tree_O >.test-a &&
+ git-diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OA'
test_expect_success \
'diff-cache O with B in cache' \
'git-read-tree $tree_B &&
- git-diff-cache --cached $tree_O >.test-a &&
+ git-diff-index --cached $tree_O >.test-a &&
cmp -s .test-a .test-recursive-OB'
test_expect_success \
'diff-cache A with B in cache' \
'git-read-tree $tree_B &&
- git-diff-cache --cached $tree_A >.test-a &&
+ git-diff-index --cached $tree_A >.test-a &&
cmp -s .test-a .test-recursive-AB'
test_expect_success \
'diff-files with O in cache and A checked out' \
'rm -fr Z [A-Z][A-Z] &&
git-read-tree $tree_A &&
- git-checkout-cache -f -a &&
+ git-checkout-index -f -a &&
git-read-tree -m $tree_O || return 1
- git-update-cache --refresh >/dev/null ;# this can exit non-zero
+ git-update-index --refresh >/dev/null ;# this can exit non-zero
git-diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OA'
'diff-files with O in cache and B checked out' \
'rm -fr Z [A-Z][A-Z] &&
git-read-tree $tree_B &&
- git-checkout-cache -f -a &&
+ git-checkout-index -f -a &&
git-read-tree -m $tree_O || return 1
- git-update-cache --refresh >/dev/null ;# this can exit non-zero
+ git-update-index --refresh >/dev/null ;# this can exit non-zero
git-diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-OB'
'diff-files with A in cache and B checked out' \
'rm -fr Z [A-Z][A-Z] &&
git-read-tree $tree_B &&
- git-checkout-cache -f -a &&
+ git-checkout-index -f -a &&
git-read-tree -m $tree_A || return 1
- git-update-cache --refresh >/dev/null ;# this can exit non-zero
+ git-update-index --refresh >/dev/null ;# this can exit non-zero
git-diff-files >.test-a &&
cmp_diff_files_output .test-a .test-recursive-AB'
'prepare reference tree' \
'cat ../../COPYING >COPYING &&
echo frotz >rezrov &&
- git-update-cache --add COPYING rezrov &&
+ git-update-index --add COPYING rezrov &&
tree=$(git-write-tree) &&
echo $tree'
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
rm -f COPYING &&
- git-update-cache --add --remove COPYING COPYING.?'
+ git-update-index --add --remove COPYING COPYING.?'
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
# both are slightly edited, and unchanged rezrov. So we say you
# copy-and-edit one, and rename-and-edit the other. We do not say
# anything about rezrov.
-GIT_DIFF_OPTS=--unified=0 git-diff-cache -M -p $tree >current
+GIT_DIFF_OPTS=--unified=0 git-diff-index -M -p $tree >current
cat >expected <<\EOF
diff --git a/COPYING b/COPYING.1
copy from COPYING
test_expect_success \
'prepare work tree again' \
'mv COPYING.2 COPYING &&
- git-update-cache --add --remove COPYING COPYING.1 COPYING.2'
+ git-update-index --add --remove COPYING COPYING.1 COPYING.2'
# tree has COPYING and rezrov. work tree has COPYING and COPYING.1,
# both are slightly edited, and unchanged rezrov. So we say you
# edited one, and copy-and-edit the other. We do not say
# anything about rezrov.
-GIT_DIFF_OPTS=--unified=0 git-diff-cache -C -p $tree >current
+GIT_DIFF_OPTS=--unified=0 git-diff-index -C -p $tree >current
cat >expected <<\EOF
diff --git a/COPYING b/COPYING
--- a/COPYING
test_expect_success \
'prepare work tree once again' \
'cat ../../COPYING >COPYING &&
- git-update-cache --add --remove COPYING COPYING.1'
+ git-update-index --add --remove COPYING COPYING.1'
# tree has COPYING and rezrov. work tree has COPYING and COPYING.1,
# but COPYING is not edited. We say you copy-and-edit COPYING.1; this
# is only possible because -C mode now reports the unmodified file to
# the diff-core. Unchanged rezrov, although being fed to
-# git-diff-cache as well, should not be mentioned.
+# git-diff-index as well, should not be mentioned.
GIT_DIFF_OPTS=--unified=0 \
- git-diff-cache -C --find-copies-harder -p $tree >current
+ git-diff-index -C --find-copies-harder -p $tree >current
cat >expected <<\EOF
diff --git a/COPYING b/COPYING.1
copy from COPYING
'prepare reference tree' \
'echo xyzzy | tr -d '\\\\'012 >yomin &&
ln -s xyzzy frotz &&
- git-update-cache --add frotz yomin &&
+ git-update-index --add frotz yomin &&
tree=$(git-write-tree) &&
echo $tree'
rm -f yomin &&
ln -s xyzzy nitfol &&
ln -s xzzzy bozbar &&
- git-update-cache --add --remove frotz rezrov nitfol bozbar yomin'
+ git-update-index --add --remove frotz rezrov nitfol bozbar yomin'
# tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
# confuse things. work tree has rezrov (xyzzy) nitfol (xyzzy) and
# rezrov and nitfol are rename/copy of frotz and bozbar should be
# a new creation.
-GIT_DIFF_OPTS=--unified=0 git-diff-cache -M -p $tree >current
+GIT_DIFF_OPTS=--unified=0 git-diff-index -M -p $tree >current
cat >expected <<\EOF
diff --git a/bozbar b/bozbar
new file mode 120000
'prepare reference tree' \
'cat ../../COPYING >COPYING &&
echo frotz >rezrov &&
- git-update-cache --add COPYING rezrov &&
+ git-update-index --add COPYING rezrov &&
tree=$(git-write-tree) &&
echo $tree'
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
rm -f COPYING &&
- git-update-cache --add --remove COPYING COPYING.?'
+ git-update-index --add --remove COPYING COPYING.?'
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
# both are slightly edited, and unchanged rezrov. We say COPYING.1
# and COPYING.2 are based on COPYING, and do not say anything about
# rezrov.
-git-diff-cache -M $tree >current
+git-diff-index -M $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1
test_expect_success \
'prepare work tree again' \
'mv COPYING.2 COPYING &&
- git-update-cache --add --remove COPYING COPYING.1 COPYING.2'
+ git-update-index --add --remove COPYING COPYING.1 COPYING.2'
# tree has COPYING and rezrov. work tree has COPYING and COPYING.1,
# both are slightly edited, and unchanged rezrov. We say COPYING.1
# is based on COPYING and COPYING is still there, and do not say anything
# about rezrov.
-git-diff-cache -C $tree >current
+git-diff-index -C $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M COPYING
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1
test_expect_success \
'prepare work tree once again' \
'cat ../../COPYING >COPYING &&
- git-update-cache --add --remove COPYING COPYING.1'
+ git-update-index --add --remove COPYING COPYING.1'
-git-diff-cache -C --find-copies-harder $tree >current
+git-diff-index -C --find-copies-harder $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234 COPYING COPYING.1
EOF
test_expect_success \
'setup' \
'echo frotz >rezrov &&
- git-update-cache --add rezrov &&
+ git-update-index --add rezrov &&
tree=`git-write-tree` &&
echo $tree'
test_expect_success \
'chmod' \
'chmod +x rezrov &&
- git-update-cache rezrov &&
- git-diff-cache $tree >current'
+ git-update-index rezrov &&
+ git-diff-index $tree >current'
_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"
'prepare reference tree' \
'mkdir path0 path1 &&
cp ../../COPYING path0/COPYING &&
- git-update-cache --add path0/COPYING &&
+ git-update-index --add path0/COPYING &&
tree=$(git-write-tree) &&
echo $tree'
test_expect_success \
'prepare work tree' \
'cp path0/COPYING path1/COPYING &&
- git-update-cache --add --remove path0/COPYING path1/COPYING'
+ git-update-index --add --remove path0/COPYING path1/COPYING'
# In the tree, there is only path0/COPYING. In the cache, path0 and
# path1 both have COPYING and the latter is a copy of path0/COPYING.
# Comparing the full tree with cache should tell us so.
-git-diff-cache -C --find-copies-harder $tree >current
+git-diff-index -C --find-copies-harder $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 6ff87c4664981e4397625791c8ea3bbb5f2279a3 C100 path0/COPYING path1/COPYING
# path1/COPYING suddenly appearing from nowhere, not detected as
# a copy from path0/COPYING.
-git-diff-cache -C $tree path1 >current
+git-diff-index -C $tree path1 >current
cat >expected <<\EOF
:000000 100644 0000000000000000000000000000000000000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 A path1/COPYING
test_expect_success \
'tweak work tree' \
'rm -f path0/COPYING &&
- git-update-cache --remove path0/COPYING'
+ git-update-index --remove path0/COPYING'
# In the tree, there is only path0/COPYING. In the cache, path0 does
# not have COPYING anymore and path1 has COPYING which is a copy of
# path0/COPYING. Showing the full tree with cache should tell us about
# the rename.
-git-diff-cache -C $tree >current
+git-diff-index -C $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 6ff87c4664981e4397625791c8ea3bbb5f2279a3 R100 path0/COPYING path1/COPYING
# path0/COPYING. When we say we care only about path1, we should just
# see path1/COPYING appearing from nowhere.
-git-diff-cache -C $tree path1 >current
+git-diff-index -C $tree path1 >current
cat >expected <<\EOF
:000000 100644 0000000000000000000000000000000000000000 6ff87c4664981e4397625791c8ea3bbb5f2279a3 A path1/COPYING
setup \
'cat ../../README >file0 &&
cat ../../COPYING >file1 &&
- git-update-cache --add file0 file1 &&
+ git-update-index --add file0 file1 &&
tree=$(git-write-tree) &&
echo "$tree"'
'change file1 with copy-edit of file0 and remove file0' \
'sed -e "s/git/GIT/" file0 >file1 &&
rm -f file0 &&
- git-update-cache --remove file0 file1'
+ git-update-index --remove file0 file1'
test_expect_success \
'run diff with -B' \
- 'git-diff-cache -B --cached "$tree" >current'
+ 'git-diff-index -B --cached "$tree" >current'
cat >expected <<\EOF
:100644 000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 0000000000000000000000000000000000000000 D file0
test_expect_success \
'run diff with -B and -M' \
- 'git-diff-cache -B -M "$tree" >current'
+ 'git-diff-index -B -M "$tree" >current'
cat >expected <<\EOF
:100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 08bb2fb671deff4c03a4d4a0a1315dff98d5732c R100 file0 file1
'swap file0 and file1' \
'rm -f file0 file1 &&
git-read-tree -m $tree &&
- git-checkout-cache -f -u -a &&
+ git-checkout-index -f -u -a &&
mv file0 tmp &&
mv file1 file0 &&
mv tmp file1 &&
- git-update-cache file0 file1'
+ git-update-index file0 file1'
test_expect_success \
'run diff with -B' \
- 'git-diff-cache -B "$tree" >current'
+ 'git-diff-index -B "$tree" >current'
cat >expected <<\EOF
:100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 6ff87c4664981e4397625791c8ea3bbb5f2279a3 M100 file0
test_expect_success \
'run diff with -B and -M' \
- 'git-diff-cache -B -M "$tree" >current'
+ 'git-diff-index -B -M "$tree" >current'
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 6ff87c4664981e4397625791c8ea3bbb5f2279a3 R100 file1 file0
'make file0 into something completely different' \
'rm -f file0 &&
ln -s frotz file0 &&
- git-update-cache file0 file1'
+ git-update-index file0 file1'
test_expect_success \
'run diff with -B' \
- 'git-diff-cache -B "$tree" >current'
+ 'git-diff-index -B "$tree" >current'
cat >expected <<\EOF
:100644 120000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 67be421f88824578857624f7b3dc75e99a8a1481 T file0
test_expect_success \
'run diff with -B' \
- 'git-diff-cache -B -M "$tree" >current'
+ 'git-diff-index -B -M "$tree" >current'
# This should not mistake file0 as the copy source of new file1
# due to type differences.
test_expect_success \
'run diff with -M' \
- 'git-diff-cache -M "$tree" >current'
+ 'git-diff-index -M "$tree" >current'
# This should not mistake file0 as the copy source of new file1
# due to type differences.
'file1 edited to look like file0 and file0 rename-edited to file2' \
'rm -f file0 file1 &&
git-read-tree -m $tree &&
- git-checkout-cache -f -u -a &&
+ git-checkout-index -f -u -a &&
sed -e "s/git/GIT/" file0 >file1 &&
sed -e "s/git/GET/" file0 >file2 &&
rm -f file0
- git-update-cache --add --remove file0 file1 file2'
+ git-update-index --add --remove file0 file1 file2'
test_expect_success \
'run diff with -B' \
- 'git-diff-cache -B "$tree" >current'
+ 'git-diff-index -B "$tree" >current'
cat >expected <<\EOF
:100644 000000 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 0000000000000000000000000000000000000000 D file0
test_expect_success \
'run diff with -B -M' \
- 'git-diff-cache -B -M "$tree" >current'
+ 'git-diff-index -B -M "$tree" >current'
cat >expected <<\EOF
:100644 100644 f5deac7be59e7eeab8657fd9ae706fd6a57daed2 08bb2fb671deff4c03a4d4a0a1315dff98d5732c C095 file0 file1
'prepare reference tree' \
'cat ../../COPYING >COPYING &&
echo frotz >rezrov &&
- git-update-cache --add COPYING rezrov &&
+ git-update-index --add COPYING rezrov &&
tree=$(git-write-tree) &&
echo $tree'
'sed -e 's/HOWEVER/However/' <COPYING >COPYING.1 &&
sed -e 's/GPL/G.P.L/g' <COPYING >COPYING.2 &&
rm -f COPYING &&
- git-update-cache --add --remove COPYING COPYING.?'
+ git-update-index --add --remove COPYING COPYING.?'
# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2,
# both are slightly edited, and unchanged rezrov. We say COPYING.1
# and COPYING.2 are based on COPYING, and do not say anything about
# rezrov.
-git-diff-cache -z -M $tree >current
+git-diff-index -z -M $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
test_expect_success \
'prepare work tree again' \
'mv COPYING.2 COPYING &&
- git-update-cache --add --remove COPYING COPYING.1 COPYING.2'
+ git-update-index --add --remove COPYING COPYING.1 COPYING.2'
# tree has COPYING and rezrov. work tree has COPYING and COPYING.1,
# both are slightly edited, and unchanged rezrov. We say COPYING.1
# is based on COPYING and COPYING is still there, and do not say anything
# about rezrov.
-git-diff-cache -z -C $tree >current
+git-diff-index -z -C $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 06c67961bbaed34a127f76d261f4c0bf73eda471 M
COPYING
test_expect_success \
'prepare work tree once again' \
'cat ../../COPYING >COPYING &&
- git-update-cache --add --remove COPYING COPYING.1'
+ git-update-index --add --remove COPYING COPYING.1'
-git-diff-cache -z -C --find-copies-harder $tree >current
+git-diff-index -z -C --find-copies-harder $tree >current
cat >expected <<\EOF
:100644 100644 6ff87c4664981e4397625791c8ea3bbb5f2279a3 0603b3238a076dc6c8022aedc6648fa523a17178 C1234
COPYING
'echo frotz >file0 &&
mkdir path1 &&
echo rezrov >path1/file1 &&
- git-update-cache --add file0 path1/file1 &&
+ git-update-index --add file0 path1/file1 &&
tree=`git-write-tree` &&
echo "$tree" &&
echo nitfol >file0 &&
echo yomin >path1/file1 &&
- git-update-cache file0 path1/file1'
+ git-update-index file0 path1/file1'
cat >expected <<\EOF
EOF
test_expect_success \
'limit to path should show nothing' \
- 'git-diff-cache --cached $tree path >current &&
+ 'git-diff-index --cached $tree path >current &&
compare_diff_raw current expected'
cat >expected <<\EOF
EOF
test_expect_success \
'limit to path1 should show path1/file1' \
- 'git-diff-cache --cached $tree path1 >current &&
+ 'git-diff-index --cached $tree path1 >current &&
compare_diff_raw current expected'
cat >expected <<\EOF
EOF
test_expect_success \
'limit to path1/ should show path1/file1' \
- 'git-diff-cache --cached $tree path1/ >current &&
+ 'git-diff-index --cached $tree path1/ >current &&
compare_diff_raw current expected'
cat >expected <<\EOF
EOF
test_expect_success \
'limit to file0 should show file0' \
- 'git-diff-cache --cached $tree file0 >current &&
+ 'git-diff-index --cached $tree file0 >current &&
compare_diff_raw current expected'
cat >expected <<\EOF
EOF
test_expect_success \
'limit to file0/ should emit nothing.' \
- 'git-diff-cache --cached $tree file0/ >current &&
+ 'git-diff-index --cached $tree file0/ >current &&
compare_diff_raw current expected'
test_done
chmod +x foo
test_expect_success setup \
- 'git-update-cache --add foo'
+ 'git-update-index --add foo'
test_expect_success apply \
'git-apply --index --stat --summary --apply test-patch'
+#endif /* _KLIBC_ARCHSETJMP_H */
EOF
-find include klibc -type f -print | xargs git-update-cache --add --
+find include klibc -type f -print | xargs git-update-index --add --
test_expect_success 'check rename/copy patch' 'git-apply --check patch'
test_expect_success \
'add files to repository' \
- 'find a -type f | xargs git-update-cache --add &&
- find a -type l | xargs git-update-cache --add &&
+ 'find a -type f | xargs git-update-index --add &&
+ find a -type l | xargs git-update-index --add &&
treeid=`git-write-tree` &&
echo $treeid >treeid &&
TZ=GMT GIT_COMMITTER_DATE="2005-05-27 22:00:00" \
for i in a b c
do
dd if=/dev/zero bs=4k count=1 | tr "\\0" $i >$i &&
- git-update-cache --add $i || return 1
+ git-update-index --add $i || return 1
done &&
- cat c >d && echo foo >>d && git-update-cache --add d &&
+ cat c >d && echo foo >>d && git-update-index --add d &&
tree=`git-write-tree` &&
commit=`git-commit-tree $tree </dev/null` && {
echo $tree &&
parent=$commit || return 1
done &&
echo "$commit" >.git/HEAD &&
- git clone -l ./. victim &&
+ git-clone.sh -l ./. victim &&
cd victim &&
- git log &&
+ git-log.sh &&
cd .. &&
echo $zero >.git/HEAD &&
parent=$zero &&
done &&
echo "$commit" >.git/HEAD &&
echo Rebase &&
- git log'
+ git-log.sh'
test_expect_success \
'pushing rewound head should not barf but require --force' '
}
date >path0
-git-update-cache --add path0
+git-update-index --add path0
save_tag tree git-write-tree
on_committer_date "1971-08-16 00:00:00" hide_error save_tag root unique_commit root tree
on_committer_date "1971-08-16 00:00:01" save_tag l0 unique_commit l0 tree -p root
}
date >path0
-git-update-cache --add path0
+git-update-index --add path0
save_tag tree git-write-tree
on_committer_date "1971-08-16 00:00:00" hide_error save_tag root unique_commit root tree
on_committer_date "1971-08-16 00:00:01" save_tag l0 unique_commit l0 tree -p root
}
date >path0
-git-update-cache --add path0
+git-update-index --add path0
save_tag tree git-write-tree
on_committer_date "1971-08-16 00:00:00" hide_error save_tag root unique_commit root tree
on_committer_date "1971-08-16 00:00:01" save_tag l0 unique_commit l0 tree -p root
. ../t6000lib.sh # t6xxx specific functions
date >path0
-git-update-cache --add path0
+git-update-index --add path0
save_tag tree git-write-tree
hide_error save_tag start unique_commit "start" tree
save_tag second unique_commit "second" tree -p start
#!/bin/sh
#
# An example hook script to check the commit log message.
-# Called by git-commit-script with one argument, the name of the file
+# Called by git-commit with one argument, the name of the file
# that has the commit message. The hook should exit with non-zero
# status after issuing an appropriate message if it wants to stop the
# commit. The hook is allowed to edit the commit message file.
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
-# Called by git-commit-script with no arguments. The hook should
+# Called by git-commit with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
print STDERR "* $why (line $lineno)\n";
print STDERR "$filename:$lineno:$line\n";
}
- open $fh, "-|", qw(git-diff-cache -p -M --cached HEAD);
+ open $fh, "-|", qw(git-diff-index -p -M --cached HEAD);
while (<$fh>) {
if (m|^diff --git a/(.*) b/\1$|) {
$filename = $1;
* Default to not allowing changes to the list of files. The
* tool doesn't actually care, but this makes it harder to add
* files to the revision control by mistake by doing something
- * like "git-update-cache *" and suddenly having all the object
+ * like "git-update-index *" and suddenly having all the object
* files be revision controlled.
*/
static int allow_add = 0, allow_remove = 0, allow_replace = 0, not_new = 0, quiet = 0, info_only = 0;
/* When we used to have "path" and now we want to add
* "path/file", we need a way to remove "path" before
* being able to add "path/file". However,
- * "git-update-cache --remove path" would not work.
+ * "git-update-index --remove path" would not work.
* --force-remove can be used but this is more user
* friendly, especially since we can do the opposite
* case just fine without --force-remove.
}
if (!strcmp(path, "--cacheinfo")) {
if (i+3 >= argc)
- die("git-update-cache: --cacheinfo <mode> <sha1> <path>");
+ die("git-update-index: --cacheinfo <mode> <sha1> <path>");
if (add_cacheinfo(argv[i+1], argv[i+2], argv[i+3]))
- die("git-update-cache: --cacheinfo cannot add %s", argv[i+3]);
+ die("git-update-index: --cacheinfo cannot add %s", argv[i+3]);
i += 3;
continue;
}
}
if (force_remove) {
if (remove_file_from_cache(path))
- die("git-update-cache: --force-remove cannot remove %s", path);
+ die("git-update-index: --force-remove cannot remove %s", path);
continue;
}
if (add_file_to_cache(path))