gitweb.git
Merge branch 'maint'Junio C Hamano Fri, 27 Apr 2007 06:29:09 +0000 (23:29 -0700)

Merge branch 'maint'

* maint:
Update git-http-fetch documentation
Update git-local-fetch documentation
Update git-http-push documentation
Update -L documentation for git-blame/git-annotate
Update git-grep documentation
Update git-fmt-merge documentation
Document additional options for git-fetch
Removing -n option from git-diff-files documentation

Update git-http-fetch documentationAndrew Ruder Fri, 27 Apr 2007 04:59:02 +0000 (23:59 -0500)

Update git-http-fetch documentation

Documentation/git-http-fetch.txt: --recover to resume a failed fetch
operation.

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

Update git-local-fetch documentationAndrew Ruder Fri, 27 Apr 2007 04:59:01 +0000 (23:59 -0500)

Update git-local-fetch documentation

Documentation/git-local-fetch.txt: -s to use
symbolic links instead of file-to-file copy, -l
to use hardlinks, -n to never use file-to-file
copies, --recover to resume a failed fetch.

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

Update git-http-push documentationAndrew Ruder Fri, 27 Apr 2007 04:59:00 +0000 (23:59 -0500)

Update git-http-push documentation

Documentation/git-http-push.txt: Changing --complete to --all. Added
documentation for -d and -D to remote remote refs.

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

Update -L documentation for git-blame/git-annotateAndrew Ruder Fri, 27 Apr 2007 04:58:59 +0000 (23:58 -0500)

Update -L documentation for git-blame/git-annotate

Documenting alternate ways to use -L:

-L /regex/,end
-L start,+offset

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

Update git-grep documentationAndrew Ruder Fri, 27 Apr 2007 04:58:58 +0000 (23:58 -0500)

Update git-grep documentation

Documentation/git-grep.txt: Document -F/--fixed-strings to
search for non-regexp patterns. Document -I to not search
binary files. Document -<num> as a shortcut for -C<num>.

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

Update git-fmt-merge documentationAndrew Ruder Fri, 27 Apr 2007 04:58:57 +0000 (23:58 -0500)

Update git-fmt-merge documentation

Documentation/git-fmt-merge-msg.txt:
--summary to list commit summaries on merge
--no-summary
--file to take merged objects from a file.
Configuration option merge.summary

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

Document additional options for git-fetchAndrew Ruder Fri, 27 Apr 2007 04:58:56 +0000 (23:58 -0500)

Document additional options for git-fetch

Document --quiet/-q and --verbose/-v
Add -n as an alternate for --no-tags
Fix some whitespace issues

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

Removing -n option from git-diff-files documentationAndrew Ruder Fri, 27 Apr 2007 04:58:55 +0000 (23:58 -0500)

Removing -n option from git-diff-files documentation

-n is not a short form of --no-index as the documentation
suggests. Removing it from the documentation and command
usage string.

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

post-receive-email example hook: sed command for gettin... Andy Parkins Thu, 26 Apr 2007 21:37:16 +0000 (22:37 +0100)

post-receive-email example hook: sed command for getting description was wrong

The sed command that extracted the first line of the project description
didn't include the -n switch and hence the project name was being
printed twice. This was ruining the email header generation because it
was assumed that the description was only one line and was included in
the subject. This turned the subject into a two line item and
prematurely finished the header.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

post-receive-email example hook: detect rewind-only... Andy Parkins Thu, 26 Apr 2007 21:36:24 +0000 (22:36 +0100)

post-receive-email example hook: detect rewind-only updates and output sensible message

Sometimes a non-fast-forward update doesn't add new commits, it merely
removes old commits. This patch adds support for detecting that and
outputting a more correct message.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

post-receive-email example hook: fastforward should... Andy Parkins Thu, 26 Apr 2007 21:35:39 +0000 (22:35 +0100)

post-receive-email example hook: fastforward should have been fast_forward

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Ignore merged status of the file-level mergeAlex Riesen Thu, 26 Apr 2007 19:13:49 +0000 (21:13 +0200)

Ignore merged status of the file-level merge

as it is not relevant for whether the result should be written.
Even if no real merge happened, there might be _no_ reason to
rewrite the working tree file. Maybe even more so.

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

Add a test for merging changed and rename-changed branchesAlex Riesen Wed, 25 Apr 2007 20:07:45 +0000 (22:07 +0200)

Add a test for merging changed and rename-changed branches

Also leave a warning for future merge-recursive explorers.

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

Avoid excessive rewrites in merge-recursiveAlex Riesen Wed, 25 Apr 2007 20:06:59 +0000 (22:06 +0200)

Avoid excessive rewrites in merge-recursive

If a file is changed in one branch, and renamed and changed to the
same content in another branch than we can skip the rewrite of this
file in the working directory, as the content does not change.

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

Merge branch 'maint'Junio C Hamano Thu, 26 Apr 2007 06:31:45 +0000 (23:31 -0700)

Merge branch 'maint'

* maint:
Start preparing for 1.5.1.3
Sanitize @to recipients.
git-svn: Ignore usernames in URLs in find_by_url
Document --dry-run and envelope-sender for git-send-email.
Allow users to optionally specify their envelope sender.
Ensure clean addresses are always used with Net::SMTP
Validate @recipients before using it for sendmail and Net::SMTP.
Perform correct quoting of recipient names.
Change the scope of the $cc variable as it is not needed outside of send_message.
Debugging cleanup improvements
Prefix Dry- to the message status to denote dry-runs.
Document --dry-run parameter to send-email.
git-svn: Don't rely on $_ after making a function call
Fix handle leak in write_tree
Actually handle some-low memory conditions

Conflicts:

RelNotes
git-send-email.perl

Start preparing for 1.5.1.3Junio C Hamano Thu, 26 Apr 2007 06:27:07 +0000 (23:27 -0700)

Start preparing for 1.5.1.3

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

Sanitize @to recipients.Robin H. Johnson Thu, 26 Apr 2007 04:53:22 +0000 (21:53 -0700)

Sanitize @to recipients.

We need to sanitize @to as well to ensure that names are properly quoted.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: Ignore usernames in URLs in find_by_urlAdam Roben Wed, 25 Apr 2007 19:42:58 +0000 (12:42 -0700)

git-svn: Ignore usernames in URLs in find_by_url

Usernames don't matter for the purposes of find_by_url, so always remove them
before doing any comparisons.

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

Add --date={local,relative,default}Junio C Hamano Wed, 25 Apr 2007 06:36:22 +0000 (23:36 -0700)

Add --date={local,relative,default}

This adds --date={local,relative,default} option to log family of commands,
to allow displaying timestamps in user's local timezone, relative time, or
the default format.

Existing --relative-date option is a synonym of --date=relative; we could
probably deprecate it in the long run.

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

Document --dry-run and envelope-sender for git-send... Robin H. Johnson Thu, 26 Apr 2007 02:37:23 +0000 (19:37 -0700)

Document --dry-run and envelope-sender for git-send-email.

Catch the documentation up with the rest of this patchset.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Allow users to optionally specify their envelope sender.Robin H. Johnson Thu, 26 Apr 2007 02:37:22 +0000 (19:37 -0700)

Allow users to optionally specify their envelope sender.

If your normal user is not the same user you are subscribed to a list with,
then the default envelope sender used will cause your messages to bounce or
silently vanish into the ether.

This patch provides an optional parameter to set the envelope sender.
To use it with the sendmail binary, you must have privileges to use the -f
parameter!

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Ensure clean addresses are always used with Net::SMTPRobin H. Johnson Thu, 26 Apr 2007 02:37:21 +0000 (19:37 -0700)

Ensure clean addresses are always used with Net::SMTP

Always pass in clean addresses to Net::SMTP for the MAIL FROM, and use them on
the SMTP non-quiet output as well.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Validate @recipients before using it for sendmail and... Robin H. Johnson Thu, 26 Apr 2007 02:37:20 +0000 (19:37 -0700)

Validate @recipients before using it for sendmail and Net::SMTP.

Ensure that @recipients is only raw addresses when it is handed to the sendmail
binary OR Net::SMTP, otherwise BCC cases might get an extra <, or wierd stuff
might be passed to the exec.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Perform correct quoting of recipient names.Robin H. Johnson Thu, 26 Apr 2007 02:37:19 +0000 (19:37 -0700)

Perform correct quoting of recipient names.

Always perform quoting of the recipient names if they contain periods,
previously only the author's address was treated this way. This stops sendmail
binaries from exploding the name into bad addresses.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Change the scope of the $cc variable as it is not neede... Robin H. Johnson Thu, 26 Apr 2007 02:37:18 +0000 (19:37 -0700)

Change the scope of the $cc variable as it is not needed outside of send_message.

$cc is only used inside the send_message scope, so lets clean it out of the global scope.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Debugging cleanup improvementsRobin H. Johnson Thu, 26 Apr 2007 02:37:17 +0000 (19:37 -0700)

Debugging cleanup improvements

The debug output is much more helpful if it has the parameters that were used.
Pull the sendmail parameters into a seperate array for that, and also include
similar data during the Net::SMTP case.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Prefix Dry- to the message status to denote dry-runs.Robin H. Johnson Thu, 26 Apr 2007 02:37:16 +0000 (19:37 -0700)

Prefix Dry- to the message status to denote dry-runs.

While doing testing, it's useful to see that a dry run was actually done,
instead of a real one.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document --dry-run parameter to send-email.Robin H. Johnson Thu, 26 Apr 2007 02:37:15 +0000 (19:37 -0700)

Document --dry-run parameter to send-email.

Looks like --dry-run was added to the code, but never to the --help output.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: Don't rely on $_ after making a function callAdam Roben Wed, 25 Apr 2007 18:50:32 +0000 (11:50 -0700)

git-svn: Don't rely on $_ after making a function call

Many functions and operators in perl set $_, so its value cannot be relied upon
after calling arbitrary functions. The solution is simply to copy the value of
$_ into a local variable that will not get overwritten.

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

Fix handle leak in write_treeAlex Riesen Wed, 25 Apr 2007 22:28:17 +0000 (00:28 +0200)

Fix handle leak in write_tree

This is a quick and dirty fix for the broken "git cherry-pick -n" on
some broken OS, which does not remove the directory entry after unlink
succeeded(!) if the file is still open somewher.
The entry is left but "protected": no open, no unlink, no stat.
Very annoying.

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

Actually handle some-low memory conditionsShawn O. Pearce Wed, 25 Apr 2007 08:02:27 +0000 (04:02 -0400)

Actually handle some-low memory conditions

Tim Ansell discovered his Debian server didn't permit git-daemon to
use as much memory as it needed to handle cloning a project with
a 128 MiB packfile. Filtering the strace provided by Tim of the
rev-list child showed this gem of a sequence:

open("./objects/pack/pack-*.pack", O_RDONLY|O_LARGEFILE <unfinished ...>
<... open resumed> ) = 5

OK, so the packfile is fd 5...

mmap2(NULL, 33554432, PROT_READ, MAP_PRIVATE, 5, 0 <unfinished ...>
<... mmap2 resumed> ) = 0xb5e2d000

and we mapped one 32 MiB window from it at position 0...

mmap2(NULL, 31020635, PROT_READ, MAP_PRIVATE, 5, 0x6000 <unfinished ...>
<... mmap2 resumed> ) = -1 ENOMEM (Cannot allocate memory)

And we asked for another window further into the file. But got
denied. In Tim's case this was due to a resource limit on the
git-daemon process, and its children.

Now where are we in the code? We're down inside use_pack(),
after we have called unuse_one_window() enough times to make sure
we stay within our allowed maximum window size. However since we
didn't unmap the prior window at 0xb5e2d000 we aren't exceeding
the current limit (which probably was just the defaults).

But we're actually down inside xmmap()...

So we release the window we do have (by calling release_pack_memory),
assuming there is some memory pressure...

munmap(0xb5e2d000, 33554432 <unfinished ...>
<... munmap resumed> ) = 0
close(5 <unfinished ...>
<... close resumed> ) = 0

And that was the last window in this packfile. So we closed it.
Way to go us. Our xmmap did not expect release_pack_memory to
close the fd its about to map...

mmap2(NULL, 31020635, PROT_READ, MAP_PRIVATE, 5, 0x6000 <unfinished ...>
<... mmap2 resumed> ) = -1 EBADF (Bad file descriptor)

And so the Linux kernel happily tells us f' off.

write(2, "fatal: ", 7 <unfinished ...>
<... write resumed> ) = 7
write(2, "Out of memory? mmap failed: Bad "..., 47 <unfinished ...>
<... write resumed> ) = 47

And we report the bad file descriptor error, and not the ENOMEM,
and die, claiming we are out of memory. But actually that mmap
should have succeeded, as we had enough memory for that window,
seeing as how we released the prior one.

Originally when I developed the sliding window mmap feature I had
this exact same bug in fast-import, and I dealt with it by handing
in the struct packed_git* we want to open the new window for, as the
caller wasn't prepared to reopen the packfile if unuse_one_window
closed it. The same is true here from xmmap, but the caller doesn't
have the struct packed_git* handy. So I'm using the file descriptor
instead to perform the same test.

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

init_buffer(): Kill buf pointerLuiz Fernando N. Capitulino Wed, 25 Apr 2007 14:18:41 +0000 (11:18 -0300)

init_buffer(): Kill buf pointer

We don't need it, it's possible to assign the block of memory to bufp

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <junkio@cox.net>

core-tutorial: minor fixesLuiz Fernando N. Capitulino Wed, 25 Apr 2007 14:18:28 +0000 (11:18 -0300)

core-tutorial: minor fixes

- Do not break the line when it's not needed
- s/Your/You

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <junkio@cox.net>

read_cache_from(): small simplificationLuiz Fernando N. Capitulino Wed, 25 Apr 2007 14:18:17 +0000 (11:18 -0300)

read_cache_from(): small simplification

This change 'opens' the code block which maps the index file into
memory, making the code clearer and easier to read.

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <junkio@cox.net>

entry.c: Use const qualifier for 'struct checkout'... Luiz Fernando N. Capitulino Wed, 25 Apr 2007 14:18:08 +0000 (11:18 -0300)

entry.c: Use const qualifier for 'struct checkout' parameters

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <junkio@cox.net>

remove_subtree(): Use strerror() when possibleLuiz Fernando N. Capitulino Wed, 25 Apr 2007 14:17:56 +0000 (11:17 -0300)

remove_subtree(): Use strerror() when possible

Signed-off-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Junio C Hamano <junkio@cox.net>

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>