summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Split out mailmap handling out of shortlogJunio C Hamano2007-04-294-82/+101
| | | | | | | | This splits out a few functions to deal with mailmap from shortlog and makes it a bit more usable from other programs. Most notably, it does not clobber input e-mail address anymore. Signed-off-by: Junio C Hamano <junkio@cox.net>
* blame -s: suppress author name and time.Junio C Hamano2007-04-292-6/+18
| | | | | | | With this "git blame -b -s HEAD~n..HEAD" becomes a nicer way to review the result of recent changes in context. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Fall back to $EMAIL for missing GIT_AUTHOR_EMAIL and GIT_COMMITTER_EMAILJosh Triplett2007-04-295-2/+7
| | | | | | | | Some other programs get the user's email address from $EMAIL, so fall back to that if we don't have a Git-specific email address. Signed-off-by: Josh Triplett <josh@freedesktop.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge commit 'gfi/master'Junio C Hamano2007-04-290-0/+0
|\ | | | | | | * commit 'gfi/master':
| * Merge branch 'gfi-maint' into gfi-masterShawn O. Pearce2007-04-282-0/+3
| |\ | | | | | | | | | | | | | | | * gfi-maint: Don't allow empty pathnames in fast-import import-tars: be nice to wrong directory modes
* | \ Merge branch 'maint'Junio C Hamano2007-04-2911-8/+47
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: http.c: Fix problem with repeated calls of http_init Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentation Fix import-tars fix. Update .mailmap with "Michael" Do not barf on too long action description Catch empty pathnames in trees during fsck Don't allow empty pathnames in fast-import import-tars: be nice to wrong directory modes git-svn: Added 'find-rev' command git shortlog documentation: add long options and fix a typo
| * | http.c: Fix problem with repeated calls of http_initJulian Phillips2007-04-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling http_init after calling http_cleanup causes a segfault. This is due to the pragma_header curl_slist being freed but not being set to NULL. The subsequent call to http_init tries to setup the slist again, but it now points to an invalid memory location. Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Add missing reference to GIT_COMMITTER_DATE in git-commit-tree documentationJosh Triplett2007-04-292-0/+2
| | | | | | | | | | | | | | | Signed-off-by: Josh Triplett <josh@freedesktop.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Fix import-tars fix.Junio C Hamano2007-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | | This heeds advice from our resident Perl expert to make sure the script is not confused with a string that ends with /\n Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Update .mailmap with "Michael"Junio C Hamano2007-04-291-0/+1
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Do not barf on too long action descriptionJunio C Hamano2007-04-291-4/+1
| | | | | | | | | | | | | | | | | | | | | Reflog message is primarily about easier identification, and leaving truncated entry is much better than dying. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Merge branch 'maint' of git://repo.or.cz/git/fastimport into maintJunio C Hamano2007-04-282-0/+3
| |\ \ | | |/ | | | | | | | | | | | | * 'maint' of git://repo.or.cz/git/fastimport: Don't allow empty pathnames in fast-import import-tars: be nice to wrong directory modes
| | * Merge commit 'jc/maint' into gfi-maintShawn O. Pearce2007-04-2831-71/+268
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'jc/maint': (35 commits) 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 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. ...
| | * | Don't allow empty pathnames in fast-importShawn O. Pearce2007-04-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | riddochc on #git noticed corruption caused by import-tars. This was fixed in the prior commit by Dscho, but fast-import was wrong to have allowed a tree to be created with an empty string as the filename. No operating system allows this, and Git itself doesn't accept this into the index. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| | * | import-tars: be nice to wrong directory modesJohannes Schindelin2007-04-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some tars seem to have modes 0755 for directories, not 01000755. Do not generate an empty object for them, but ignore them. Noticed by riddochc on IRC. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
| * | | Catch empty pathnames in trees during fsckShawn O. Pearce2007-04-281-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Released versions of fast-import have been able to create a tree that contains files or subtrees that contain no name. Unfortunately these trees aren't valid, but people may have actually tried to create them due to bugs in import-tars.perl or their own fast-import frontend. We now look for this unusual condition and warn the user if at least one of their tree objects contains the problem. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git-svn: Added 'find-rev' commandAdam Roben2007-04-272-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new 'find-rev' command to git-svn that lets you easily translate between SVN revision numbers and git tree-ish. Signed-off-by: Adam Roben <aroben@apple.com> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git shortlog documentation: add long options and fix a typoMichele Ballabio2007-04-271-4/+4
| | |/ | |/| | | | | | | | | | Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'maint'Junio C Hamano2007-04-269-17/+105
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 Ruder2007-04-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-261-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Ruder2007-04-262-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | -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 getting description was wrongAndy Parkins2007-04-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 updates and output ↵Andy Parkins2007-04-261-23/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 have been fast_forwardAndy Parkins2007-04-261-1/+1
| | | | | | | | | | | | | | | 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 Riesen2007-04-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Riesen2007-04-252-0/+28
| | | | | | | | | | | | | | | | | | | | | 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 Riesen2007-04-251-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Hamano2007-04-257-33/+111
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 Hamano2007-04-252-1/+39
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Sanitize @to recipients.Robin H. Johnson2007-04-251-0/+1
| | | | | | | | | | | | | | | | | | | | | 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 Roben2007-04-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Document --dry-run and envelope-sender for git-send-email.Robin H. Johnson2007-04-251-0/+9
| | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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 Net::SMTP.Robin H. Johnson2007-04-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 needed outside of ↵Robin H. Johnson2007-04-251-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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. Johnson2007-04-251-0/+2
| | | | | | | | | | | | | | | | | | | | | 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 Roben2007-04-251-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Riesen2007-04-251-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Pearce2007-04-252-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Add --date={local,relative,default}Junio C Hamano2007-04-259-17/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>