1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-17 22:44:49 +01:00
Commit graph

4477 commits

Author SHA1 Message Date
Junio C Hamano
a77ada62a1 Merge branch 'jc/cache-tree' into next
* jc/cache-tree:
  test-dump-cache-tree: report number of subtrees.
  cache-tree: sort the subtree entries.
  Teach fsck-objects about cache-tree.
2006-04-25 22:51:01 -07:00
Junio C Hamano
0f8820528e test-dump-cache-tree: report number of subtrees.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-25 17:40:24 -07:00
Junio C Hamano
61fa30972c cache-tree: sort the subtree entries.
Not that this makes practical performance difference; the kernel tree
for example has 200 or so directories that have subdirectory, and the
largest ones have 57 of them (fs and drivers).  With a test to apply
600 patches with git-apply and git-write-tree, this did not make more
than one per-cent of a difference, but it is a good cleanup.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-25 17:40:02 -07:00
Junio C Hamano
53dc3f3e80 Teach fsck-objects about cache-tree.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-25 16:37:08 -07:00
Josef Weidendorfer
a970fcf249 [PATCH] gitk: Add a visual tag for remote refs
This patch partly changes the background color for remote refs.
It makes it easy to quickly distinguish remote refs from local
developer branches.

I ignore remote HEADs, as these really should be drawn as
aliases to other heads. But there is no simple way to
detect that HEADs really are aliases for other refs via
"git-ls-remote".

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-25 22:44:47 +10:00
Paul Mackerras
d16c0812a9 gitk: add menu item for editing the current view
This allows the user to change the name of the view, whether it is
permanent, and the list of files/directories for the view.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-25 21:21:10 +10:00
Paul Mackerras
a90a6d249b gitk: Implement "permanent" views (stored in ~/.gitk)
With this the user can now mark a view as "permanent" and it will
appear in the list every time gitk is started (until it is deleted).
Also tidied up the view definition window, and changed the view
menu to use radiobuttons for the view selections so there is some
feedback as to which is the current view.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-25 17:12:46 +10:00
Serge E. Hallyn
7d09fbe4ab socksetup: don't return on set_reuse_addr() error
The set_reuse_addr() error case was the only error case in
socklist() where we returned rather than continued.  Not sure
why.  Either we must free the socklist, or continue.  This patch
continues on error.

Signed-off-by: Serge E. Hallyn <serue@us.ibm.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from 0032d548db commit)
2006-04-24 23:07:54 -07:00
Junio C Hamano
4c2608923f Merge branch 'pb/config' into next
* pb/config:
  Deprecate usage of git-var -l for getting config vars list
  git-repo-config --list support
2006-04-24 22:31:19 -07:00
Junio C Hamano
5a6a8c0e01 Merge branch 'np/delta' into next
* np/delta:
  split the diff-delta interface
  Document the configuration file
  Document git-var -l listing also configuration variables
  rev-parse: better error message for ambiguous arguments
2006-04-24 22:31:15 -07:00
Petr Baudis
e1cbc46d12 Deprecate usage of git-var -l for getting config vars list
This has been an unfortunate sideway in the git API evolution.
We use git-repo-config for all the other .git/config interaction
so let's also use git-repo-config -l for the variable listing.

Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:29:36 -07:00
Petr Baudis
de791f15a1 git-repo-config --list support
This adds git-repo-config --list (or git-repo-config -l) support,
similar to what git-var -l does now (to be phased out so that we
have a single sane interface to the config file instead of fragmented
and confused API).

Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:29:33 -07:00
Nicolas Pitre
08abe669c0 split the diff-delta interface
This patch splits the diff-delta interface into index creation and delta
generation.  A wrapper is provided to preserve the diff-delta() call.

This will allow for an optimization in pack-objects.c where the source
object could be fixed and a full window of objects tentatively tried
against
that same source object without recomputing the source index each time.

This patch only restructure things, plus a couple cleanups for good
measure. There is no performance change yet.

Signed-off-by: Nicolas Pitre <nico@cam.org>
2006-04-24 22:27:33 -07:00
Junio C Hamano
36932eab77 Merge branch 'fix'
* fix:
  Document the configuration file
  Document git-var -l listing also configuration variables
  rev-parse: better error message for ambiguous arguments
2006-04-24 22:26:57 -07:00
Petr Baudis
1ab661ddb7 Document the configuration file
This patch adds a Documentation/config.txt file included by git-repo-config
and currently aggregating hopefully all the available git plumbing / core
porcelain configuration variables, as well as briefly describing the format.

It also updates an outdated bit of the example in git-repo-config(1).

Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:26:37 -07:00
Petr Baudis
4ee6bc9913 Document git-var -l listing also configuration variables
Signed-off-by: Petr Baudis <pasky@suse.cz>
2006-04-24 22:26:34 -07:00
Paul Mackerras
3e1a70d925 rev-parse: better error message for ambiguous arguments
Currently, if git-rev-parse encounters an argument that is neither a
recognizable revision name nor the name of an existing file or
directory, and it hasn't encountered a "--" argument, it prints an
error message saying "No such file or directory".  This can be
confusing for users, including users of programs such as gitk that
use git-rev-parse, who may then think that they can't ask about the
history of files that no longer exist.

This makes it print a better error message, one that points out the
ambiguity and tells the user what to do to fix it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-24 22:22:29 -07:00
Junio C Hamano
dc844aaad8 Merge branch 'jc/cache-tree' into next
* jc/cache-tree:
  index: make the index file format extensible.
  cache-tree: protect against "git prune".
  Add test-dump-cache-tree
2006-04-24 21:28:07 -07:00
Junio C Hamano
bad68ec924 index: make the index file format extensible.
... and move the cache-tree data into it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-24 21:24:13 -07:00
Junio C Hamano
dd0c34c46b cache-tree: protect against "git prune".
We reused the cache-tree data without verifying the tree object
still exists.  Recompute in cache_tree_update() an otherwise
valid cache-tree entry when the tree object disappeared.

This is not usually a problem, but theoretically without this
fix things can break when the user does something like this:

	- read-index from a side branch
	- write-tree the result
	- remove the side branch with "git branch -D"
	- remove the unreachable objects with "git prune"
	- write-tree what is in the index.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-24 15:12:42 -07:00
Junio C Hamano
3fdce210ee Merge branch 'master' into next
* master:
  gitk: Let git-rev-list do the argument list parsing
2006-04-24 02:18:33 -07:00
Junio C Hamano
be02b3c53e Merge branch 'ar/chmod-series'
* ar/chmod-series:
  make update-index --chmod work with multiple files and --stdin
2006-04-24 02:08:35 -07:00
Junio C Hamano
c6df547a41 Merge branch 'sh/daemon'
* sh/daemon:
  socksetup: don't return on set_reuse_addr() error
2006-04-24 02:08:28 -07:00
Junio C Hamano
2effe71b7c Merge branch 'jc/cc-stat'
* jc/cc-stat:
  Fix "git show --stat"
2006-04-24 02:06:40 -07:00
Junio C Hamano
cdb63506a0 Merge branch 'jc/unresolve'
* jc/unresolve:
  git-update-index --unresolve
  Add git-unresolve <paths>...
2006-04-24 02:05:55 -07:00
Junio C Hamano
3a403e49b9 Merge branch 'jc/color'
* jc/color:
  Add colordiff for git to contrib/colordiff.
2006-04-24 02:05:07 -07:00
Junio C Hamano
a549e11cc2 Merge git://git.kernel.org/pub/scm/gitk/gitk
* git://git.kernel.org/pub/scm/gitk/gitk:
  gitk: Let git-rev-list do the argument list parsing
2006-04-24 01:39:01 -07:00
Junio C Hamano
5b5e4d6487 Merge part of 'jc/cache-tree' 2006-04-24 00:33:28 -07:00
Junio C Hamano
17448209f5 Add test-dump-cache-tree
This was useful in diagnosing the corrupt index.aux format
problem.  But do not bother building or installing it by
default.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-24 00:26:31 -07:00
Junio C Hamano
a6e5642f39 Use cache-tree in update-index.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-24 00:26:31 -07:00
Junio C Hamano
03ac6e6465 Invalidate cache-tree entries for touched paths in git-apply.
This updates git-apply to maintain cache-tree information.  With
this and the previous write-tree patch, repeated "apply --index"
followed by "write-tree" on a huge tree will hopefully become
faster.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23 20:19:17 -07:00
Junio C Hamano
a52139b47e Update write-tree to use cache-tree.
The updated write-tree reads from $GIT_DIR/index.aux to pick up
subtree objects information, updates the cache-tree with the
index, and updates index.aux file after writing a tree out of
the index file.

Until update-index and other programs that modify the index are
updated to maintain index.aux file, the index.aux file written
by the last write-tree will become stale immediately after they
update the index, which will result in the whole tree
recomputation just like the original write-tree.

The idea is to convert those commands to invalidate cache-tree
whenever they touch the index entries, and write updated
index.aux out.  After the index is updated with them, write-tree
will be able to reuse the parts of the cache-tree that have not
been touched.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23 20:18:57 -07:00
Junio C Hamano
749864627c Add cache-tree.
The cache_tree data structure is to cache tree object names that
would result from the current index file.

The idea is to have an optional file to record each tree object
name that corresponds to a directory path in the cache when we
run write_cache(), and read it back when we run read_cache().
During various index manupulations, we selectively invalidate
the parts so that the next write-tree can bypass regenerating
tree objects for unchanged parts of the directory hierarchy.

We could perhaps make the cache-tree data an optional part of
the index file, but that would involve the index format updates,
so unless we need it for performance reasons, the current plan
is to use a separate file, $GIT_DIR/index.aux to store this
information and link it with the index file with the checksum
that is already used for index file integrity check.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23 20:18:16 -07:00
Junio C Hamano
8b7257514b Merge branch 'ar/chmod-series' into next
* ar/chmod-series:
  make update-index --chmod work with multiple files and --stdin
2006-04-23 17:00:31 -07:00
Junio C Hamano
1af1c2b63d read-cache/write-cache: optionally return cache checksum SHA1.
read_cache_1() and write_cache_1() takes an extra parameter
*sha1 that returns the checksum of the index file when non-NULL.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23 16:57:40 -07:00
Paul Mackerras
f3a2469b25 Merge branch 'master' into new 2006-04-23 22:47:07 +10:00
Paul Mackerras
a8aaf19c41 gitk: Use git-rev-parse only to identify file/dir names on cmd line
This uses git-rev-parse --no-revs --no-flags to give us just the
file and directory names on the command line, so that we can create
the "Command line" view if any were specified.  All other arguments
just get passed to git-rev-list (without a pass through git-rev-parse).

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-23 22:45:55 +10:00
Paul Mackerras
61e56c8823 gitk: Let git-rev-list do the argument list parsing
This is a fix for a problem reported by Jim Radford where an argument
list somewhere overflows on repositories with lots of tags.  In fact
it's now unnecessary to use git-rev-parse since git-rev-list can take
all the arguments that git-rev-parse can.  This is inspired by but not
the same as the solutions suggested by Jim Radford and Linus Torvalds.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-23 18:00:24 +10:00
Alex Riesen
227bdb186f make update-index --chmod work with multiple files and --stdin
The patch makes "--chmod=-x" and "--chmod=+x" act like "--add"
and "--remove" to affect the behaviour of the command for the
rest of the path parameters, not just the following one.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-23 00:47:03 -07:00
Junio C Hamano
623ac4c896 Merge branch 'jc/diff' into next
* jc/diff:
  Libified diff-index: backward compatibility fix.
2006-04-22 04:04:46 -07:00
Junio C Hamano
5c21ac0e7c Libified diff-index: backward compatibility fix.
"diff-index -m" does not mean "do not ignore merges", but means
"pretend missing files match the index".

The previous round tried to address this, but failed because
setup_revisions() ate "-m" flag before the caller had a chance
to intervene.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-22 04:03:32 -07:00
Junio C Hamano
0bc6c14058 Merge branch 'jc/diff' into next
* jc/diff:
  Libify diff-index.
  Libify diff-files.
2006-04-22 03:07:08 -07:00
Junio C Hamano
f1f114d080 Merge branch 'jc/fmt-patch' into next
* jc/fmt-patch:
  git-fmt-patch: thinkofix to show [PATCH] properly.
2006-04-22 03:06:58 -07:00
Junio C Hamano
53f420ef00 git-fmt-patch: thinkofix to show [PATCH] properly.
Updating "subject" variable without changing the hardcoded
number of bytes to memcpy from it would not help much.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-22 03:06:13 -07:00
Junio C Hamano
e09ad6e1e3 Libify diff-index.
The second installment to libify diff brothers.  The pathname
arguments are checked more strictly than before because we now
use the revision.c::setup_revisions() infrastructure.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-22 02:43:00 -07:00
Junio C Hamano
6973dcaee7 Libify diff-files.
This is the first installment to libify diff brothers.

The updated diff-files uses revision.c::setup_revisions()
infrastructure to parse its command line arguments, which means
the pathname arguments are checked more strictly than before.
The tests are adjusted to separate possibly missing paths from
the rest of arguments with double-dashes, to show the kosher
way.

As Linus pointed out, renaming diff.c to diff-lib.c was simply
stupid, so I am renaming it back.  The new diff-lib.c is to
contain pieces extracted from diff brothers.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-22 02:37:45 -07:00
Junio C Hamano
1cc4764bc1 Merge branch 'jc/cc-stat' into next
* jc/cc-stat:
  Fix "git show --stat"
2006-04-22 01:46:29 -07:00
Junio C Hamano
076d1d6adc Merge branch 'jc/color' into next
* jc/color:
  Add colordiff for git to contrib/colordiff.
  Makefile: dependency for builtin-help.o
2006-04-21 22:25:16 -07:00
Junio C Hamano
96ab4f4e7a Fix "git show --stat"
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21 22:24:34 -07:00
Junio C Hamano
96afa0764e Add colordiff for git to contrib/colordiff.
I hacked it up to teach it the git extended diff headers, made
it not to read the whole patch in the array.

Also, the original program, when arguments are given, ran "diff"
with the given arguments and showed the output from it.  Of
course, I changed it to run "git diff" ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-21 22:24:30 -07:00