gitweb.git
Merge branch 'jc/the-index'Junio C Hamano Wed, 25 Apr 2007 05:13:22 +0000 (22:13 -0700)

Merge branch 'jc/the-index'

* jc/the-index:
Make read-cache.c "the_index" free.
Move index-related variables into a structure.

Merge branch 'mk/diff'Junio C Hamano Wed, 25 Apr 2007 05:12:48 +0000 (22:12 -0700)

Merge branch 'mk/diff'

* mk/diff:
Diff between two blobs should take mode changes into account now.
use mode of the tree in git-diff, if <tree>:<file> syntax is used
store mode in rev_list, if <tree>:<filename> syntax is used
add add_object_array_with_mode
add get_sha1_with_mode
Add S_IFINVALID mode

Merge branch 'maint'Junio C Hamano Wed, 25 Apr 2007 05:07:34 +0000 (22:07 -0700)

Merge branch 'maint'

* maint:
Remove usernames from all commit messages, not just when using svmprops
applymbox & quiltimport: typofix.
Create a sysconfdir variable, and use it for ETC_GITCONFIG

Merge branch 'master' of git://repo.or.cz/git/fastimportJunio C Hamano Wed, 25 Apr 2007 05:02:38 +0000 (22:02 -0700)

Merge branch 'master' of git://repo.or.cz/git/fastimport

* 'master' of git://repo.or.cz/git/fastimport:
fast-import: size_t vs ssize_t
fix importing of subversion tars
Don't repack existing objects in fast-import

Remove usernames from all commit messages, not just... Adam Roben Wed, 25 Apr 2007 01:02:07 +0000 (18:02 -0700)

Remove usernames from all commit messages, not just when using svmprops

Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
Signed-off-by: Adam Roben <aroben@apple.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

applymbox & quiltimport: typofix.Junio C Hamano Tue, 24 Apr 2007 21:27:00 +0000 (14:27 -0700)

applymbox & quiltimport: typofix.

6777c380 fixed only one of three typos introduced in an earlier
patch 87ab7992. This fixes the other two.

Signed-off-by: Junio C Hamano <junkio@cox.net>

gitattributes documentation: clarify overridingJunio C Hamano Tue, 24 Apr 2007 20:46:02 +0000 (13:46 -0700)

gitattributes documentation: clarify overriding

Signed-off-by: Junio C Hamano <junkio@cox.net>

fast-import: size_t vs ssize_tSami Farin Tue, 24 Apr 2007 19:56:02 +0000 (22:56 +0300)

fast-import: size_t vs ssize_t

size_t is unsigned, so (n < 0) is never true.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

t/test-lib.sh: Protect ourselves from common misconfigu... Junio C Hamano Tue, 24 Apr 2007 18:21:47 +0000 (11:21 -0700)

t/test-lib.sh: Protect ourselves from common misconfiguration
that exports CDPATH to the environment

Signed-off-by: Junio C Hamano <junkio@cox.net>

fix importing of subversion tarsUwe Kleine-König Tue, 24 Apr 2007 11:51:04 +0000 (13:51 +0200)

fix importing of subversion tars

add a / between the prefix and name fields of the tar archive if prefix
is non-empty.

Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Create a sysconfdir variable, and use it for ETC_GITCONFIGJosh Triplett Tue, 24 Apr 2007 07:51:35 +0000 (00:51 -0700)

Create a sysconfdir variable, and use it for ETC_GITCONFIG

ETC_GITCONFIG defaults to $(prefix)/etc/gitconfig, so if you just set
prefix=/usr, you end up with a git that looks in /usr/etc/gitconfig, rather
than /etc/gitconfig as specified by the FHS. Furthermore, setting
ETC_GITCONFIG does not fix the paths to any future system-wide configuration
files.

Factor out the path to the system-wide configuration directory into a variable
sysconfdir, normally set to $(prefix)/etc, but set to /etc when prefix=/usr .
This fixes the prefix=/usr problem for ETC_GITCONFIG, and allows centralized
configuration of any future system-wide configuration files without requiring
further action from package maintainers or other people building and
installing git.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Diff between two blobs should take mode changes into... Junio C Hamano Mon, 23 Apr 2007 06:56:22 +0000 (23:56 -0700)

Diff between two blobs should take mode changes into account now.

Signed-off-by: Junio C Hamano <junkio@cox.net>

use mode of the tree in git-diff, if <tree>:<file>... Martin Koegler Sun, 22 Apr 2007 16:44:00 +0000 (18:44 +0200)

use mode of the tree in git-diff, if <tree>:<file> syntax is used

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

store mode in rev_list, if <tree>:<filename> syntax... Martin Koegler Sun, 22 Apr 2007 16:43:59 +0000 (18:43 +0200)

store mode in rev_list, if <tree>:<filename> syntax is used

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

add add_object_array_with_modeMartin Koegler Sun, 22 Apr 2007 16:43:58 +0000 (18:43 +0200)

add add_object_array_with_mode

Each object in struct object_array is extended with the mode.
If not specified, S_IFINVALID is used. An object with an mode value
can be added with add_object_array_with_mode.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

add get_sha1_with_modeMartin Koegler Mon, 23 Apr 2007 20:55:05 +0000 (22:55 +0200)

add get_sha1_with_mode

get_sha1_with_mode basically behaves as get_sha1. It has an additional
parameter for storing the mode of the object.

If the mode can not be determined, it stores S_IFINVALID.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add S_IFINVALID modeMartin Koegler Sun, 22 Apr 2007 16:43:56 +0000 (18:43 +0200)

Add S_IFINVALID mode

S_IFINVALID is used to signal, that no mode information is available.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Tue, 24 Apr 2007 07:08:16 +0000 (00:08 -0700)

Merge branch 'maint'

* maint:
Documentation/git-reset.txt: suggest git commit --amend in example.
Build RPM with ETC_GITCONFIG=/etc/gitconfig
Ignore all man sections as they are generated files.
Fix typo in git-am: s/Was is/Was it/
Reverse the order of -b and --track in the man page.
dir.c(common_prefix): Fix two bugs

Conflicts:

git.spec.in

git-fetch: Fix "argument list too long"OGAWA Hirofumi Mon, 23 Apr 2007 19:26:26 +0000 (04:26 +0900)

git-fetch: Fix "argument list too long"

If $ls_remote_result was too long,

git-fetch--tool -s pick-rref "$rref" "$ls_remote_result"

in git-fetch will fail with "argument list too long".

This patch fixes git-fetch--tool and git-fetch by passing
$ls_remote_result via stdin.

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation/git-reset.txt: suggest git commit --amend... Gerrit Pape Mon, 23 Apr 2007 12:06:29 +0000 (12:06 +0000)

Documentation/git-reset.txt: suggest git commit --amend in example.

In example 'Undo a commit and redo', refer to 'git commit --amend', as
this is the easier alternative.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Build RPM with ETC_GITCONFIG=/etc/gitconfigJunio C Hamano Tue, 24 Apr 2007 06:17:41 +0000 (23:17 -0700)

Build RPM with ETC_GITCONFIG=/etc/gitconfig

Signed-off-by: Junio C Hamano <junkio@cox.net>

Ignore all man sections as they are generated files.Brian Gernhardt Tue, 24 Apr 2007 00:02:34 +0000 (20:02 -0400)

Ignore all man sections as they are generated files.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix typo in git-am: s/Was is/Was it/Josh Triplett Tue, 24 Apr 2007 00:32:04 +0000 (17:32 -0700)

Fix typo in git-am: s/Was is/Was it/

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add clean.requireForce option, and add -f option to... Josh Triplett Tue, 24 Apr 2007 00:18:16 +0000 (17:18 -0700)

Add clean.requireForce option, and add -f option to git-clean to override it

Add a new configuration option clean.requireForce. If set, git-clean will
refuse to run, unless forced with the new -f option, or not acting due to -n.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

t6030: grab commit object name as we goJunio C Hamano Tue, 24 Apr 2007 05:10:47 +0000 (22:10 -0700)

t6030: grab commit object name as we go

Instead of running rev-list and picking earlier lines using head/tail pipeline,
grab commit object name as we build commits. This also removes a non POSIX
use of tail with -linenum (more posixly-correct way to say it is "-n linenum")

Signed-off-by: Junio C Hamano <junkio@cox.net>

t5302: avoid using tail -cJunio C Hamano Tue, 24 Apr 2007 05:05:22 +0000 (22:05 -0700)

t5302: avoid using tail -c

A Large Angry SCM (gitzilla) noticed that on an unnamed platform, tail -c
wants its byte count as part of the option, not as a separate argument.

Signed-off-by: Junio C Hamano <junkio@cox.net>

t4201: Do not display weird characters on the terminalJohannes Schindelin Mon, 23 Apr 2007 18:46:21 +0000 (20:46 +0200)

t4201: Do not display weird characters on the terminal

Now that git-commit got chatty, we have to shut it up again.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

add file checkout progressNicolas Pitre Mon, 23 Apr 2007 17:17:19 +0000 (13:17 -0400)

add file checkout progress

It is nice to see what is happening when checking out large amount of
files, either with git-checkout or git-reset. The new progress code
already decides what is a "significant amount" and displays progress
only in that case..

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Reverse the order of -b and --track in the man page.Brian Gernhardt Mon, 23 Apr 2007 23:56:45 +0000 (19:56 -0400)

Reverse the order of -b and --track in the man page.

Using "-b --track newbranch oldbranch" gives the error:

git checkout: updating paths is incompatible with switching
branches/forcing

However, "--track -b ..." works just fine.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

dir.c(common_prefix): Fix two bugsJohannes Schindelin Mon, 23 Apr 2007 08:21:25 +0000 (10:21 +0200)

dir.c(common_prefix): Fix two bugs

The function common_prefix() is used to find the common subdirectory of
a couple of pathnames. When checking if the next pathname matches up with
the prefix, it incorrectly checked the whole path, not just the prefix
(including the slash). Thus, the expensive part of the loop was executed
always.

The other bug is more serious: if the first and the last pathname in the
list have a longer common prefix than the common prefix for _all_ pathnames
in the list, the longer one would be chosen. This bug was probably hidden
by the fact that bash's wildcard expansion sorts the results, and the code
just so happens to work with sorted input.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document "diff=driver" attributeJunio C Hamano Mon, 23 Apr 2007 07:21:02 +0000 (00:21 -0700)

Document "diff=driver" attribute

Signed-off-by: Junio C Hamano <junkio@cox.net>

Make read-cache.c "the_index" free.Junio C Hamano Mon, 2 Apr 2007 06:26:07 +0000 (23:26 -0700)

Make read-cache.c "the_index" free.

This makes all low-level functions defined in read-cache.c to
take an explicit index_state structure as their first parameter,
to specify which index to work on. These functions
traditionally operated on "the_index" and were named foo_cache();
the counterparts this patch introduces are called foo_index().

The traditional foo_cache() functions are made into macros that
give "the_index" to their corresponding foo_index() functions.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Move index-related variables into a structure.Junio C Hamano Mon, 2 Apr 2007 01:14:06 +0000 (18:14 -0700)

Move index-related variables into a structure.

This defines a index_state structure and moves index-related
global variables into it. Currently there is one instance of
it, the_index, and everybody accesses it, so there is no code
change.

Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Show "no difference" message for empty diff v1.5.2-rc0Martin Koegler Mon, 23 Apr 2007 05:49:25 +0000 (22:49 -0700)

gitweb: Show "no difference" message for empty diff

Currently, gitweb shows only header and footer, if no differences are
found. This patch adds a "No differences found" message for the html
output.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

delay progress display when checking out filesNicolas Pitre Fri, 20 Apr 2007 19:27:44 +0000 (15:27 -0400)

delay progress display when checking out files

Let's start displaying progress only if more than 50% of total number
of files remains to be checked out after 2 seconds.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

provide a facility for "delayed" progress reportingNicolas Pitre Fri, 20 Apr 2007 19:05:27 +0000 (15:05 -0400)

provide a facility for "delayed" progress reporting

This allows for progress to be displayed only if the progress has not
reached a specified percentage treshold within a given delay in seconds.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

make progress "title" part of the common progress interfaceNicolas Pitre Fri, 20 Apr 2007 18:10:07 +0000 (14:10 -0400)

make progress "title" part of the common progress interface

If the progress bar ends up in a box, better provide a title for it too.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

common progress display supportNicolas Pitre Wed, 18 Apr 2007 18:27:45 +0000 (14:27 -0400)

common progress display support

Instead of having this code duplicated in multiple places, let's have
a common interface for progress display. If someday someone wishes to
display a cheezy progress bar instead then only one file will have to
be changed.

Note: I left merge-recursive.c out since it has a strange notion of
progress as it apparently increase the expected total number as it goes.
Someone with more intimate knowledge of what that is supposed to mean
might look at converting it to the common progress interface.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Support 'diff=pgm' attributeJunio C Hamano Mon, 23 Apr 2007 00:52:55 +0000 (17:52 -0700)

Support 'diff=pgm' attribute

This enhances the attributes mechanism so that external programs
meant for existing GIT_EXTERNAL_DIFF interface can be specifed
per path.

To configure such a custom diff driver, first define a custom
diff driver in the configuration:

[diff "my-c-diff"]
command = <<your command string comes here>>

Then mark the paths that you want to use this custom driver
using the attribute mechanism.

*.c diff=my-c-diff

The intent of this separation is that the attribute mechanism is
used for specifying the type of the contents, while the
configuration mechanism is used to define what needs to be done
to that type of the contents, which would be specific to both
platform and personal taste.

Signed-off-by: Junio C Hamano <junkio@cox.net>

pack-objects: make generated packfile read-onlyJunio C Hamano Mon, 23 Apr 2007 02:00:16 +0000 (19:00 -0700)

pack-objects: make generated packfile read-only

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update tests not to assume that generated packfiles... Junio C Hamano Mon, 23 Apr 2007 01:59:34 +0000 (18:59 -0700)

Update tests not to assume that generated packfiles are writable.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix 'quickfix' on pack-objects.Junio C Hamano Sun, 22 Apr 2007 19:28:34 +0000 (12:28 -0700)

Fix 'quickfix' on pack-objects.

The earlier quickfix forced world-readable permission bits. This
updates it to honor umask and core.sharedrepository settings.

Signed-off-by: Junio C Hamano <junkio@cox.net>

pack-objects: quickfix for permission modes.Junio C Hamano Sun, 22 Apr 2007 18:49:35 +0000 (11:49 -0700)

pack-objects: quickfix for permission modes.

mkstemp() often creates the file in 0600 which means the
resulting packfile is not readable by anybody other than the
repository owner. Force 0644 for now, even though this is not
strictly correct.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix crash in t0020 (crlf conversion)Alex Riesen Sun, 22 Apr 2007 14:11:54 +0000 (16:11 +0200)

Fix crash in t0020 (crlf conversion)

Reallocated wrong size.
Noticed on Ubuntu 7.04 probably because it has some malloc diagnostics in libc:
"git-read-tree --reset -u HEAD" aborted in the test. Valgrind sped up the
debugging greatly: took me 10 minutes.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix a typo in crlf conversion codeAlex Riesen Sun, 22 Apr 2007 14:12:22 +0000 (16:12 +0200)

Fix a typo in crlf conversion code

Also, noticed by valgrind: the code caused a read out-of-bounds.
Some comments updated as well (they still reflected old calling
conventions).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Cleanup variables in cat-fileShawn O. Pearce Sun, 22 Apr 2007 01:14:39 +0000 (21:14 -0400)

Cleanup variables in cat-file

I want to add new command line options to cat-file, but
to do that we need to change how we handle argv[] first.
This is a simple cleanup that assigns names to the two
arguments we currently care about.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update draft release notes for v1.5.2Junio C Hamano Sun, 22 Apr 2007 07:26:56 +0000 (00:26 -0700)

Update draft release notes for v1.5.2

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation/Makefile: fix section (5) installationJunio C Hamano Sun, 22 Apr 2007 07:11:41 +0000 (00:11 -0700)

Documentation/Makefile: fix section (5) installation

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update documentation links to point at v1.5.1.2Junio C Hamano Sun, 22 Apr 2007 06:51:27 +0000 (23:51 -0700)

Update documentation links to point at v1.5.1.2

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'lt/objalloc'Junio C Hamano Sun, 22 Apr 2007 00:41:40 +0000 (17:41 -0700)

Merge branch 'lt/objalloc'

* 'lt/objalloc':
Clean up object creation to use more common code
Use proper object allocators for unknown object nodes too

Merge branch 'jc/add'Junio C Hamano Sun, 22 Apr 2007 00:40:48 +0000 (17:40 -0700)

Merge branch 'jc/add'

* jc/add:
git-add -u: match the index with working tree.

Merge branch 'jc/attr'Junio C Hamano Sun, 22 Apr 2007 00:38:00 +0000 (17:38 -0700)

Merge branch 'jc/attr'

* 'jc/attr': (28 commits)
lockfile: record the primary process.
convert.c: restructure the attribute checking part.
Fix bogus linked-list management for user defined merge drivers.
Simplify calling of CR/LF conversion routines
Document gitattributes(5)
Update 'crlf' attribute semantics.
Documentation: support manual section (5) - file formats.
Simplify code to find recursive merge driver.
Counto-fix in merge-recursive
Fix funny types used in attribute value representation
Allow low-level driver to specify different behaviour during internal merge.
Custom low-level merge driver: change the configuration scheme.
Allow the default low-level merge driver to be configured.
Custom low-level merge driver support.
Add a demonstration/test of customized merge.
Allow specifying specialized merge-backend per path.
merge-recursive: separate out xdl_merge() interface.
Allow more than true/false to attributes.
Document git-check-attr
Change attribute negation marker from '!' to '-'.
...

Merge branch 'lt/gitlink'Junio C Hamano Sun, 22 Apr 2007 00:21:10 +0000 (17:21 -0700)

Merge branch 'lt/gitlink'

* lt/gitlink:
Tests for core subproject support
Expose subprojects as special files to "git diff" machinery
Fix some "git ls-files -o" fallout from gitlinks
Teach "git-read-tree -u" to check out submodules as a directory
Teach git list-objects logic to not follow gitlinks
Fix gitlink index entry filesystem matching
Teach "git-read-tree -u" to check out submodules as a directory
Teach git list-objects logic not to follow gitlinks
Don't show gitlink directories when we want "other" files
Teach git-update-index about gitlinks
Teach directory traversal about subprojects
Fix thinko in subproject entry sorting
Teach core object handling functions about gitlinks
Teach "fsck" not to follow subproject links
Add "S_IFDIRLNK" file mode infrastructure for git links
Add 'resolve_gitlink_ref()' helper function
Avoid overflowing name buffer in deep directory structures
diff-lib: use ce_mode_from_stat() rather than messing with modes manually

Merge branch 'np/pack'Junio C Hamano Sun, 22 Apr 2007 00:20:50 +0000 (17:20 -0700)

Merge branch 'np/pack'

* np/pack: (27 commits)
document --index-version for index-pack and pack-objects
pack-objects: remove obsolete comments
pack-objects: better check_object() performances
add get_size_from_delta()
pack-objects: make in_pack_header_size a variable of its own
pack-objects: get rid of create_final_object_list()
pack-objects: get rid of reuse_cached_pack
pack-objects: clean up list sorting
pack-objects: rework check_delta_limit usage
pack-objects: equal objects in size should delta against newer objects
pack-objects: optimize preferred base handling a bit
clean up add_object_entry()
tests for various pack index features
use test-genrandom in tests instead of /dev/urandom
simple random data generator for tests
validate reused pack data with CRC when possible
allow forcing index v2 and 64-bit offset treshold
pack-redundant.c: learn about index v2
show-index.c: learn about index v2
sha1_file.c: learn about index version 2
...

Merge branch 'jp/refs'Junio C Hamano Sun, 22 Apr 2007 00:19:34 +0000 (17:19 -0700)

Merge branch 'jp/refs'

* jp/refs:
refs.c: add a function to sort a ref list, rather then sorting on add

Merge branch 'jc/quickfetch'Junio C Hamano Sun, 22 Apr 2007 00:19:25 +0000 (17:19 -0700)

Merge branch 'jc/quickfetch'

* jc/quickfetch:
Make sure quickfetch is not fooled with a previous, incomplete fetch.
git-fetch: use fetch--tool pick-rref to avoid local fetch from alternate
git-fetch--tool pick-rref

Merge branch 'maint'Junio C Hamano Sun, 22 Apr 2007 00:16:48 +0000 (17:16 -0700)

Merge branch 'maint'

* maint:
GIT 1.5.1.2
perl: install private Error.pm if the site version is older than our own
git-clone: fix dumb protocol transport to clone from pack-pruned ref

GIT 1.5.1.2 v1.5.1.2Junio C Hamano Sat, 21 Apr 2007 20:57:07 +0000 (13:57 -0700)

GIT 1.5.1.2

Signed-off-by: Junio C Hamano <junkio@cox.net>

perl: install private Error.pm if the site version... Eric Wong Sat, 21 Apr 2007 07:55:00 +0000 (00:55 -0700)

perl: install private Error.pm if the site version is older than our own

bdash (on IRC) had a problem with Git.pm (via git-svn) when his
site installation of Error.pm was older than the version we
package.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

lockfile: record the primary process.Junio C Hamano Sat, 21 Apr 2007 10:11:10 +0000 (03:11 -0700)

lockfile: record the primary process.

The usual process flow is the main process opens and holds the lock to
the index, does its thing, perhaps spawning children during the course,
and then writes the resulting index out by releaseing the lock.

However, the lockfile interface uses atexit(3) to clean it up, without
regard to who actually created the lock. This typically leads to a
confusing behaviour of lock being released too early when the child
exits, and then the parent process when it calls commit_lockfile()
finds that it cannot unlock it.

This fixes the problem by recording who created and holds the lock, and
upon atexit(3) handler, child simply ignores the lockfile the parent
created.

Signed-off-by: Junio C Hamano <junkio@cox.net>

convert.c: restructure the attribute checking part.Junio C Hamano Sat, 21 Apr 2007 06:44:02 +0000 (23:44 -0700)

convert.c: restructure the attribute checking part.

This separates the checkattr() call and interpretation of the
returned value specific to the 'crlf' attribute into separate
routines, so that we can run a single call to checkattr() to
check for more than one attributes, and then interprete what
the returned settings mean separately.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix bogus linked-list management for user defined merge... Junio C Hamano Sat, 21 Apr 2007 07:05:31 +0000 (00:05 -0700)

Fix bogus linked-list management for user defined merge drivers.

ll_user_merge_tail is supposed to point at the pointer to be
updated to point at a newly created item.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Simplify calling of CR/LF conversion routinesAlex Riesen Thu, 19 Apr 2007 00:05:03 +0000 (02:05 +0200)

Simplify calling of CR/LF conversion routines

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix a copy-n-paste bug in the object decorator code.Linus Torvalds Sat, 21 Apr 2007 01:30:06 +0000 (18:30 -0700)

Fix a copy-n-paste bug in the object decorator code.

Duh.

When I did the object decorator thing, I made the "loop over the hash"
function use the same logic for updating the hash, ie made them use

if (++j >= size)
j = 0;

for both the hash update for both "insert" and "lookup"

HOWEVER.

For some inexplicable reason I had an extraneous

j++;

in the insert path (probably just from the fact that the old code there
used

j++;
if (j >= size)
j = 0;

and when I made them use the same logic I just didn't remove the old
extraneous line properly.

This fixes it.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-clone: fix dumb protocol transport to clone from... Junio C Hamano Sat, 21 Apr 2007 00:25:27 +0000 (17:25 -0700)

git-clone: fix dumb protocol transport to clone from pack-pruned ref

This forward-ports a fix from 2986c022 to git-clone.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Don't repack existing objects in fast-importShawn O. Pearce Fri, 20 Apr 2007 15:23:45 +0000 (11:23 -0400)

Don't repack existing objects in fast-import

Some users of fast-import have been trying to use it to rewrite
commits and trees, an activity where the all of the relevant blobs
are already available from the existing packfiles. In such a case
we don't want to repack a blob, even if the frontend application
has supplied us the raw data rather than a mark or a SHA-1 name.

I'm intentionally only checking the packfiles that existed when
fast-import started and am always ignoring all loose object files.

We ignore loose objects because fast-import tends to operate on a
very large number of objects in a very short timespan, and it is
usually creating new objects, not reusing existing ones. In such
a situtation the majority of the objects will not be found in the
existing packfiles, nor will they be loose object files. If the
frontend application really wants us to look at loose object files,
then they can just repack the repository before running fast-import.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-add -u: match the index with working tree.Junio C Hamano Fri, 20 Apr 2007 08:39:39 +0000 (01:39 -0700)

git-add -u: match the index with working tree.

This is a shorthand of what "git commit -a" does in preparation
for making a commit, which is:

git diff-files --name-only -z | git update-index --remove -z --stdin

Signed-off-by: Junio C Hamano <junkio@cox.net>

gitview: annotation supportAneesh Kumar K.V Thu, 19 Apr 2007 16:56:03 +0000 (22:26 +0530)

gitview: annotation support

List files modifed as a part of the commit in the diff window
Support annotation of the file listed in the diff window
Support history browsing in the annotation window.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Kill the useless progress meter in merge-recursiveShawn O. Pearce Fri, 20 Apr 2007 06:37:18 +0000 (02:37 -0400)

Kill the useless progress meter in merge-recursive

The mess known as the progress meter in merge-recursive was my own
fault; I put it in thinking that we might be spending a lot of time
resolving unmerged entries in the index that were not handled by
the simple 3-way index merge code.

Turns out we don't really spend that much time there, so the progress
meter was pretty much always jumping to "(n/n) 100%" as soon as
the program started. That isn't a very good indication of progress.

Since I don't have a great solution for how a progress meter should
work here, I'm proposing we back it out entirely.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Remove case-sensitive file in t3030-merge-recursive.Brian Gernhardt Thu, 19 Apr 2007 04:51:06 +0000 (00:51 -0400)

Remove case-sensitive file in t3030-merge-recursive.

Rename "A" to the unused "c"

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git.el: Add a commit description to the reflog.Alexandre Julliard Thu, 19 Apr 2007 11:16:58 +0000 (13:16 +0200)

git.el: Add a commit description to the reflog.

Add a description of the commit to the reflog using the first line of
the log message, the same way the git-commit script does it.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Contribute a fairly paranoid update hookShawn O. Pearce Fri, 20 Apr 2007 06:08:47 +0000 (02:08 -0400)

Contribute a fairly paranoid update hook

I'm using a variant of this update hook in a corporate environment
where we perform some validations of the commits and tags that
are being pushed. The model is a "central repository" type setup,
where users are given access to push to specific branches within
the shared central repository. In this particular installation we
run a specially patched git-receive-pack in setuid mode via SSH,
allowing all writes into the repository as the repository owner,
but only if this hook blesses it.

One of the major checks we perform with this hook is that the
'committer' line of a commit, or the 'tagger' line of a new annotated
tag actually correlates to the UNIX user who is performing the push.
Users can falsify these lines on their local repositories, but
the central repository that management trusts will reject all such
forgery attempts. Of course 'author' lines are still allowed to
be any value, as sometimes changes do come from other individuals.

Another nice feature of this hook is the access control lists for
all repositories on the system can also be stored and tracked in
a supporting Git repository, which can also be access controlled
by itself. This allows full auditing of who-had-what-when-and-why,
thanks to git-blame's data mining capabilities.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Fri, 20 Apr 2007 06:06:21 +0000 (23:06 -0700)

Merge branch 'maint'

* maint:
Update git-config documentation
Fix unmatched emphasis tag in git-tutorial
Update git-cherry-pick documentation
Update git-archive documentation

Fix working directory errno handling when unlinking... Linus Torvalds Fri, 20 Apr 2007 05:48:21 +0000 (22:48 -0700)

Fix working directory errno handling when unlinking a directory

Alex Riesen noticed that the case where a file replaced a directory entry
in the working tree was broken on cygwin. It turns out that the code made
some Linux-specific assumptions, and also ignored errors entirely for the
case where the entry was a symlink rather than a file.

This cleans it up by separating out the common case into a function of its
own, so that both regular files and symlinks can share it, and by making
the error handling more obvious (and not depend on any Linux-specific
behaviour).

Acked-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document gitattributes(5)Junio C Hamano Fri, 20 Apr 2007 03:48:03 +0000 (20:48 -0700)

Document gitattributes(5)

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update 'crlf' attribute semantics.Junio C Hamano Fri, 20 Apr 2007 05:37:19 +0000 (22:37 -0700)

Update 'crlf' attribute semantics.

This updates the semantics of 'crlf' so that .gitattributes file
can say "this is text, even though it may look funny".

Setting the `crlf` attribute on a path is meant to mark the path
as a "text" file. 'core.autocrlf' conversion takes place
without guessing the content type by inspection.

Unsetting the `crlf` attribute on a path is meant to mark the
path as a "binary" file. The path never goes through line
endings conversion upon checkin/checkout.

Unspecified `crlf` attribute tells git to apply the
`core.autocrlf` conversion when the file content looks like
text.

Setting the `crlf` attribut to string value "input" is similar
to setting the attribute to `true`, but also forces git to act
as if `core.autocrlf` is set to `input` for the path.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: support manual section (5) - file formats.Junio C Hamano Fri, 20 Apr 2007 03:47:04 +0000 (20:47 -0700)

Documentation: support manual section (5) - file formats.

Signed-off-by: Junio C Hamano <junkio@cox.net>

document --index-version for index-pack and pack-objectsNicolas Pitre Fri, 20 Apr 2007 02:16:53 +0000 (22:16 -0400)

document --index-version for index-pack and pack-objects

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

pack-objects: remove obsolete commentsNicolas Pitre Fri, 20 Apr 2007 02:28:02 +0000 (22:28 -0400)

pack-objects: remove obsolete comments

The sorted-by-sha ans sorted-by-type arrays are no more.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update git-config documentationAndrew Ruder Thu, 19 Apr 2007 03:03:37 +0000 (22:03 -0500)

Update git-config documentation

Documentation/git-config.txt: Added documentation for --system
Documentation/builtin-config.c: Added --system to the short usage

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix unmatched emphasis tag in git-tutorialAndrew Ruder Thu, 19 Apr 2007 03:03:31 +0000 (22:03 -0500)

Fix unmatched emphasis tag in git-tutorial

In asciidoc 7.1.2 and prior there is no obvious way to get:

'add'ing

to emphasize only the "add", instead it treats the first apostrophe as the
beginning of an emphasis, and the second apostrophe as a regular
apostrophe and makes the rest of the line an emphasis since there is no
closing apostrophe. In the newer asciidoc you can do it pretty easily
with __add__ing but I'm not sure it would be best to make that a prereq
for something as silly as this.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update git-cherry-pick documentationAndrew Ruder Thu, 19 Apr 2007 03:03:26 +0000 (22:03 -0500)

Update git-cherry-pick documentation

Documentation/git-cherry-pick.txt: Remove --replay as it is not
handled by the code (-r is however).

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Update git-archive documentationAndrew Ruder Thu, 19 Apr 2007 03:03:14 +0000 (22:03 -0500)

Update git-archive documentation

Documentation/git-archive.txt: Document -v/--verbose option.
Add -l as short form of --list.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Thu, 19 Apr 2007 02:33:38 +0000 (19:33 -0700)

Merge branch 'maint'

* maint:
fix up strtoul_ui error handling
git-tar-tree: complete deprecation conversion message

fix up strtoul_ui error handlingAndy Whitcroft Thu, 19 Apr 2007 02:08:15 +0000 (03:08 +0100)

fix up strtoul_ui error handling

Two scanf() calls were converted to strtoul_ui() but the return
values were not updated to match. scanf() returns the number of
matched "values" which for this usage is 1 on success. strtoul_ui()
return 0 on success. Update these call sites to match.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Simplify code to find recursive merge driver.Junio C Hamano Thu, 19 Apr 2007 02:22:57 +0000 (19:22 -0700)

Simplify code to find recursive merge driver.

There is no need to intern the string to git_attr, as we are already
dealing with the name of the driver there.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Counto-fix in merge-recursiveJunio C Hamano Thu, 19 Apr 2007 02:05:57 +0000 (19:05 -0700)

Counto-fix in merge-recursive

When the configuration has variables unrelated to low-level
merge drivers (e.g. merge.summary), the code failed to ignore
them but did something totally senseless.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-tar-tree: complete deprecation conversion messageSam Vilain Wed, 18 Apr 2007 23:51:21 +0000 (11:51 +1200)

git-tar-tree: complete deprecation conversion message

The syntax for git-archive is different; warn about it in the
deprecation message on the manual page.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Tests for core subproject supportAlex Riesen Wed, 18 Apr 2007 23:55:45 +0000 (01:55 +0200)

Tests for core subproject support

The following tests available:

- create subprojects: create a directory in the superproject,
initialize a git repo in it, and try adding it in super project.
Make a commit in superproject

- check if fsck ignores the subprojects: it just should give no errors

- check if commit in a subproject detected: make a commit in
subproject, git-diff-files in superproject should detect it

- check if a changed subproject HEAD can be committed: try
"git-commit -a" in superproject. It should commit changed
HEAD of a subproject

- check if diff-index works for subproject elements: compare the index
(changed by previuos tests) with the initial commit (which created
two subprojects). Should show a change for the recently changed subproject

- check if diff-tree works for subproject elements: do the same, just use
git-diff-tree. This test is somewhat redundant, I just added it for
completeness (diff, diff-files, and diff-index are already used)

- check if git diff works for subproject elements: try to limit
the diff for the name of a subproject in superproject:
git diff HEAD^ HEAD -- subproject

- check if clone works: try a clone of superproject and compare
"git ls-files -s" output in superproject and cloned repo

- removing and adding subproject: rename test. Currently implemented
as "git-update-index --force-remove", "mv" and "git-add".

- checkout in superproject: try to checkout the initial commit

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

refs.c: add a function to sort a ref list, rather then... Julian Phillips Tue, 17 Apr 2007 01:42:50 +0000 (02:42 +0100)

refs.c: add a function to sort a ref list, rather then sorting on add

Rather than sorting the refs list while building it, sort in one
go after it is built using a merge sort. This has a large
performance boost with large numbers of refs.

It shouldn't happen that we read duplicate entries into the same
list, but just in case sort_ref_list drops them if the SHA1s are
the same, or dies, as we have no way of knowing which one is the
correct one.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Wed, 18 Apr 2007 23:17:28 +0000 (16:17 -0700)

Merge branch 'maint'

* maint:
git-shortlog: Fix two formatting errors in asciidoc documentation
Fix overwriting of files when applying contextually independent diffs
git-svn: don't allow globs to match regular files

Fix funny types used in attribute value representationJunio C Hamano Wed, 18 Apr 2007 23:16:37 +0000 (16:16 -0700)

Fix funny types used in attribute value representation

It was bothering me a lot that I abused small integer values
casted to (void *) to represent non string values in
gitattributes. This corrects it by making the type of attribute
values (const char *), and using the address of a few statically
allocated character buffer to denote true/false. Unset attributes
are represented as having NULLs as their values.

Added in-header documentation to explain how git_checkattr()
routine should be called.

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-shortlog: Fix two formatting errors in asciidoc... Frank Lichtenheld Wed, 18 Apr 2007 22:10:22 +0000 (00:10 +0200)

git-shortlog: Fix two formatting errors in asciidoc documentation

First use [verse] in the SYNOPSIS so that the line break actually
shows.

Secondly drop the quotes around '.mailmap' since this exposes
a bug in our toolchain (didn't bother enough yet to find out wether
it is asciidoc's fault or that of the XSL templates) that leads to
the dot not getting escaped correctly in the roff output and thereby
swallowing the line.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix overwriting of files when applying contextually... Alex Riesen Wed, 18 Apr 2007 21:58:56 +0000 (23:58 +0200)

Fix overwriting of files when applying contextually independent diffs

Noticed by applying two diffs of different contexts to the same file.

The check for existence of a file was wrong: the test assumed it was
a directory and reset the errno (twice: directly and by calling
lstat). So if an entry existed and was _not_ a directory no attempt
was made to rename into it, because the errno (expected by renaming
code) was already reset to 0. This resulted in error:

fatal: unable to write file file mode 100644

For Linux, removing "errno = 0" is enough, as lstat wont modify errno
if it was successful. The behavior should not be depended upon,
though, so modify the "if" as well.

The test simulates this situation.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: don't allow globs to match regular filesEric Wong Wed, 18 Apr 2007 07:17:33 +0000 (00:17 -0700)

git-svn: don't allow globs to match regular files

git only tracks the histories of full directories, not
that of individual files. Sometimes, SVN users will
place[1] a regular file in the directory designated
for subdirectories of branches or tags.

Thanks to jrockway on #git for pointing this out.

[1] mistakenly or otherwise, such as a README

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Allow low-level driver to specify different behaviour... Junio C Hamano Wed, 18 Apr 2007 19:18:25 +0000 (12:18 -0700)

Allow low-level driver to specify different behaviour during internal merge.

This allows [merge "drivername"] to have a variable "recursive"
that names a different low-level merge driver to be used when
merging common ancestors to come up with a virtual ancestor.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Custom low-level merge driver: change the configuration... Junio C Hamano Wed, 18 Apr 2007 18:27:32 +0000 (11:27 -0700)

Custom low-level merge driver: change the configuration scheme.

This changes the configuration syntax for defining a low-level
merge driver to be:

[merge "<<drivername>>"]
driver = "<<command line>>"
name = "<<driver description>>"

which is much nicer to read and is extensible. Credit goes to
Martin Waitz and Linus.

In addition, when we use an external low-level merge driver, it
is reported as an extra output from merge-recursive, using the
value of merge.<<drivername>.name variable.

The demonstration in t6026 has also been updated.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Allow the default low-level merge driver to be configured.Junio C Hamano Wed, 18 Apr 2007 08:47:21 +0000 (01:47 -0700)

Allow the default low-level merge driver to be configured.

When no 'merge' attribute is given to a path, merge-recursive
uses the built-in xdl-merge as the low-level merge driver.

A new configuration item 'merge.default' can name a low-level
merge driver of user's choice to be used instead.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Custom low-level merge driver support.Junio C Hamano Wed, 18 Apr 2007 05:51:45 +0000 (22:51 -0700)

Custom low-level merge driver support.

This allows users to specify custom low-level merge driver per
path, using the attributes mechanism. Just like you can specify
one of built-in "text", "binary", "union" low-level merge
drivers by saying:

* merge=text
.gitignore merge=union
*.jpg merge=binary

pick a name of your favorite merge driver, and assign it as the
value of the 'merge' attribute.

A custom low-level merge driver is defined via the config
mechanism. This patch introduces 'merge.driver', a multi-valued
configuration. Its value is the name (i.e. the one you use as
the value of 'merge' attribute) followed by a command line
specification. The command line can contain %O, %A, and %B to
be interpolated with the names of temporary files that hold the
common ancestor version, the version from your branch, and the
version from the other branch, and the resulting command is
spawned.

The low-level merge driver is expected to update the temporary
file for your branch (i.e. %A) with the result and exit with
status 0 for a clean merge, and non-zero status for a conflicted
merge.

A new test in t6026 demonstrates a sample usage.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'fl/cvsserver'Junio C Hamano Wed, 18 Apr 2007 05:17:46 +0000 (22:17 -0700)

Merge branch 'fl/cvsserver'

* fl/cvsserver:
config.txt: Add gitcvs.db* variables
cvsserver: Document the GIT branches -> CVS modules mapping more prominently
cvsserver: Reword documentation on necessity of write access
cvsserver: Allow to "add" a removed file
cvsserver: Add asciidoc documentation for new database backend configuration
cvsserver: Corrections to the database backend configuration
cvsserver: Use DBI->table_info instead of DBI->tables
cvsserver: Abort if connect to database fails
cvsserver: Make the database backend configurable
cvsserver: Allow to override the configuration per access method
cvsserver: Handle three part keys in git config correctly
cvsserver: Introduce new state variable 'method'

Conflicts:

Documentation/config.txt