summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-03-12builtin-mailinfo.c infrastrcture changesLibravatar Don Zickus5-248/+287
I am working on a project that required parsing through regular mboxes that didn't necessarily have patches embedded in them. I started by creating my own modified copy of git-am and working from there. Very quickly, I noticed git-mailinfo wasn't able to handle a big chunk of my email. After hacking up numerous solutions and running into more limitations, I decided it was just easier to rewrite a big chunk of it. The following patch has a bunch of fixes and features that I needed in order for me do what I wanted. Note: I'm didn't follow any email rfc papers but I don't think any of the changes I did required much knowledge (besides the boundary stuff). List of major changes/fixes: - can't create empty patch files fix - empty patch files don't fail, this failure will come inside git-am - multipart boundaries are now handled - only output inbody headers if a patch exists otherwise assume those headers are part of the reply and instead output the original headers - decode and filter base64 patches correctly - various other accidental fixes I believe I didn't break any existing functionality or compatibility (other than what I describe above, which is really only the empty patch file). I tested this through various mailing list archives and everything seemed to parse correctly (a couple thousand emails). [jc: squashed in another patch from Don's five patch series to fix the test case, as this patch exposes the bug in the test.] Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'master' of git://repo.or.cz/git-guiLibravatar Junio C Hamano1-0/+5
* 'master' of git://repo.or.cz/git-gui: git-gui: Support of "make -s" in: do not output anything of the build itself
2007-03-12Merge branch 'maint'Libravatar Junio C Hamano5-158/+16
* maint: Don't package the git-gui credits file anymore git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12Merge branch 'master' of git://repo.or.cz/git/fastimportLibravatar Junio C Hamano2-4/+54
* 'master' of git://repo.or.cz/git/fastimport: Remove unnecessary casts from fast-import New fast-import test case for valid tree sorting fast-import: grow tree storage more aggressively
2007-03-12Merge branch 'maint' of git://repo.or.cz/git/fastimport into maintLibravatar Junio C Hamano1-2/+2
* 'maint' of git://repo.or.cz/git/fastimport: fast-import: grow tree storage more aggressively
2007-03-12Fix t5510-fetch's use of sedLibravatar Shawn O. Pearce1-1/+7
POSIX says sed may add a trailing LF if there isn't already one there. We shouldn't rely on it not adding that LF, as some systems (Mac OS X for example) will add it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Simplify closing two fds at once in run-command.cLibravatar Shawn O. Pearce1-6/+9
I started hacking on a change to add stdout redirection support to the run_command family, but found I was using a lot of close calls on two pipes in an array (such as for pipe). So I'm doing a tiny bit of refactoring first to make the next set of changes clearer. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Remove unnecessary casts from fast-importLibravatar Shawn O. Pearce1-2/+2
Jeff King pointed out that these casts are quite unnecessary, as the compiler should be doing them anyway, and may cause problems in the future if the size of the argument for to_atom were to ever be increased. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12Merge branch 'maint'Libravatar Shawn O. Pearce1-2/+2
* maint: fast-import: grow tree storage more aggressively
2007-03-12New fast-import test case for valid tree sortingLibravatar Jeff King1-0/+50
The Git tree sorting convention is more complex than just the name, it needs to include the mode too to make sure trees sort as though their name ends with "/". This is a simple test case that verifies fast-import keeps the tree ordering correct after editing the same tree twice in a single input stream. A recent proposed patch series (that has not yet been applied) will cause this test to fail, due to a bug in the way the series handles sorting within the trees. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12fast-import: grow tree storage more aggressivelyLibravatar Jeff King1-2/+2
When building up a tree for a commit, fast-import dynamically allocates memory for the tree entries. When more space is needed, the allocated memory is increased by a constant amount. For very large trees, this means re-allocating and memcpy()ing the memory O(n) times. To compound this problem, releasing the previous tree resource does not free the memory; it is kept in a pool for future trees. This means that each of the O(n) allocations will consume increasing amounts of memory, giving O(n^2) memory consumption. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12Don't package the git-gui credits file anymoreLibravatar Shawn O. Pearce1-2/+1
Since git-gui 0.6.4 the credits file is no longer produced. This file was removed from git-gui due to build issues that a lot of users and Git developers have reported running into. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'maint' of git://repo.or.cz/git-gui into maintLibravatar Junio C Hamano4-156/+15
* 'maint' of git://repo.or.cz/git-gui: git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12Re-fix get_sha1_oneline()Libravatar Linus Torvalds1-5/+5
What the function wants to return is not if we saw any return from pop_most_recent_commit(), but if we found what was asked for. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-12Merge branch 'maint'Libravatar Shawn O. Pearce4-156/+15
* maint: git-gui: Allow 'git gui version' outside of a repository git-gui: Revert "git-gui: Display all authors of git-gui." git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed." git-gui: Allow committing empty merges
2007-03-12git-gui: Allow 'git gui version' outside of a repositoryLibravatar Shawn O. Pearce1-7/+5
I got a little surprise one day when I tried to run 'git gui version' outside of a Git repository to determine what version of git-gui was installed on that system. Turns out we were doing the repository check long before we got around to command line argument handling. We now look to see if the only argument we have been given is 'version' or '--version', and if so, print out the version and exit immediately; long before we consider looking at the Git version or working directory. This way users can still get to the git-gui version number even if Git's version cannot be read. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Revert "git-gui: Display all authors of git-gui."Libravatar Shawn O. Pearce4-135/+9
This reverts commit 871f4c97ad7e021d1a0a98c80c5da77fcf70e4af. Too many users have complained about the credits generator in git-gui, so I'm backing the entire thing out. This revert will finish that series. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Revert "Don't modify CREDITS-FILE if it hasn't changed."Libravatar Shawn O. Pearce1-19/+6
This reverts commit 92446aba47b0e0db28f7b858ea387efcca30ab44. Too many users have complained about the credits generator in git-gui, so I'm backing the entire thing out. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-12git-gui: Allow committing empty mergesLibravatar Shawn O. Pearce1-1/+1
Johannes Sixt noticed that git-gui would not let the user commit a merge created by `git merge -s ours` as the ours strategy does not alter the tree (that is HEAD^1^{tree} = HEAD^{tree} after the merge). The same issue arises from amending such a merge commit. We now permit an empty commit (no changed files) if we are doing a merge commit. Core Git does this with its command line based git-commit tool, so it makes sense for the GUI to do the same. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-03-11git-bundle: only die if pack would be empty, warn if ref is skippedLibravatar Johannes Schindelin1-3/+8
A use case for git-bundle expected to be quite common is this: $ git bundle create daily.bundle --since=10.days.ago --all The expected outcome is _not_ to error out if only a couple of the refs were not changed during the last 10 days. This patch complains loudly about refs which are skipped due to the pack not containing the corresponding objects, but dies only if no objects would be in the pack _at all_. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11git-send-email: configurable bcc and chain-reply-toLibravatar Avi Kivity2-1/+19
Chain-reply-to is a personal perference, and is unlikely to change from patchset to patchset. Similarly, bcc is likely to have the same values every invocation is one likes to bcc oneself. So, allow both to be set via configuration variables. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Merge branch 'maint'Libravatar Junio C Hamano2-1/+19
* maint: git-send-email: Document configuration options git-merge: warn when -m provided on a fast forward
2007-03-11git-send-email: Document configuration optionsLibravatar Avi Kivity1-0/+13
Wishing to implement an email aliases file, I found that they were already implmented. Document them for the next user. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11git-merge: warn when -m provided on a fast forwardLibravatar J. Bruce Fields1-1/+6
Warn the user that the "-m" option is ignored in the case of a fast forward. That may save some confusion in the case where the user doesn't know about fast forwards yet and may not realize that the behavior here is intentional. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Merge branch 'jc/boundary'Libravatar Junio C Hamano4-197/+243
* jc/boundary: git-bundle: prevent overwriting existing bundles git-bundle: die if a given ref is not included in bundle git-bundle: handle thin packs in subcommand "unbundle" git-bundle: Make thin packs git-bundle: avoid packing objects which are in the prerequisites bundle: fix wrong check of read_header()'s return value & add tests revision --boundary: fix uncounted case. revision --boundary: fix stupid typo git-bundle: make verify a bit more chatty. revision traversal: SHOWN means shown git-bundle: various fixups revision traversal: retire BOUNDARY_SHOW revision walker: Fix --boundary when limited
2007-03-11Change {pre,post}-receive hooks to use stdinLibravatar Shawn O. Pearce3-58/+62
Sergey Vlasov, Andy Parkins and Alex Riesen all pointed out that it is possible for a single invocation of receive-pack to be given more refs than the OS might allow us to pass as command line parameters to a single hook invocation. We don't want to break these up into multiple invocations (like xargs might do) as that makes it impossible for the pre-receive hook to verify multiple related ref updates occur at the same time, and it makes it harder for post-receive to send out a single batch notification. Instead we pass the reference data on a pipe connected to the hook's stdin, supplying one ref per line to the hook. This way a single hook invocation can obtain an infinite amount of ref data, without bumping into any operating system limits. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Split back out update_hook handling in receive-packLibravatar Shawn O. Pearce1-2/+24
Since we have decided to change the calling conventions for the pre-receive and post-receive hooks to take the ref data on stdin rather than on the command line we cannot use the same logic to invoke the update hook anymore. So we take a small step backwards towards what we used to have, and create a specialized function for executing just the update hook. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Refactor run_command error handling in receive-packLibravatar Shawn O. Pearce1-19/+24
I'm pulling the error handling used to decode the result of run_command up into a new function so that I can reuse it. No changes, just a simple code movement. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Teach run_command how to setup a stdin pipeLibravatar Shawn O. Pearce2-1/+37
Sometimes callers trying to use run_command to execute a child process will want to setup a pipe or file descriptor to redirect into the child's stdin. This idea is completely stolen from builtin-bundle's fork_with_pipe, written by Johannes Schindelin. All credit (and blame) should lie with Dscho. ;-) Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Split run_command into two halves (start/finish)Libravatar Shawn O. Pearce2-7/+22
If the calling process wants to send data to stdin of a child process it will need to arrange for a pipe and get the child process running, feed data to it, then wait for the child process to finish. So we split the run function into two halves, allowing callers to first start the child then later finish it. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Start defining a more sophisticated run_commandLibravatar Shawn O. Pearce2-7/+27
There are a number of places where we do some variation of fork()+exec() but we also need to setup redirection in the process, much like what run_command does for us already with its option flags. It would be nice to reuse more of the run_command logic, especially as that non-fork API helps us to port to odd platforms like Win32. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Remove unused run_command variantsLibravatar Shawn O. Pearce3-50/+1
We don't actually use these va_list based variants of run_command anymore. I'm removing them before I make further improvements. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11Switch to run_command_v_opt in revertLibravatar Shawn O. Pearce1-4/+9
Another change by me is removing the va_list variants of run_command, one of which is used by builtin-revert.c. To avoid compile errors I'm refactoring builtin-revert to use the char** variant instead, as that variant is staying. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11cvsserver: Use Merged response instead of Update-existing for merged filesLibravatar Frank Lichtenheld1-3/+3
Using Update-existing leads to the client forgetting about the "locally modified" status of the file which can lead to loss of local changes on later updates. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Acked-by: Martin Langhoff <martin.langhoff@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-11I like the idea of the new ':/<oneline prefix>' notation, and gave itLibravatar Jim Meyering1-2/+6
a try, but all I could get was a segfault. It was dereferencing a NULL commit list. Fix below. With it, this example now works: $ mkdir .j; cd .j; touch f $ git-init; git-add f; git-commit -mc f; echo x >f; git-commit -md f $ git-diff -p :/c :/d diff --git a/f b/f index e69de29..587be6b 100644 --- a/f +++ b/f @@ -0,0 +1 @@ +x Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-10Merge branch 'js/attach'Libravatar Junio C Hamano11-47/+384
* js/attach: format-patch --attach: not folding some long headers. format-patch: add --inline option and make --attach a true attachment
2007-03-10Merge branch 'js/diff-ni'Libravatar Junio C Hamano32-131/+176
* js/diff-ni: Get rid of the dependency to GNU diff in the tests diff --no-index: support /dev/null as filename diff-ni: fix the diff with standard input diff: support reading a file from stdin via "-"
2007-03-10Merge branch 'jc/fsck'Libravatar Junio C Hamano3-15/+41
* jc/fsck: fsck: exit with non-zero status upon errors unpack_sha1_file(): detect corrupt loose object files. fsck: fix broken loose object check.
2007-03-10Merge branch 'pb/commit-i'Libravatar Junio C Hamano2-7/+23
* pb/commit-i: git-commit: add a --interactive option
2007-03-10Merge branch 'js/revert-cherry'Libravatar Junio C Hamano5-203/+407
* js/revert-cherry: cherry-pick: Bug fix 'cherry picked from' message. cherry-pick: Suggest a better method to retain authorship Make git-revert & git-cherry-pick a builtin
2007-03-10Merge branch 'sp/make'Libravatar Junio C Hamano3-44/+76
* sp/make: Allow "make -w" generate its usual output Support of "make -s": do not output anything of the build itself More build output cleaning up Make 'make' quiet by default Make 'make' quieter while building git
2007-03-10Merge branch 'maint'Libravatar Junio C Hamano7-48/+100
* maint: git.el: Retrieve commit log information from .dotest directory. git.el: Avoid appending a signoff line that is already present. setup_git_directory_gently: fix off-by-one error user-manual: install user manual stylesheet with other web documents user-manual: fix rendering of history diagrams user-manual: fix missing colon in git-show example user-manual: fix inconsistent use of pull and merge user-manual: fix inconsistent example glossary: fix overoptimistic automatic linking of defined terms Documentation: s/seperator/separator/ Adjust reflog filemode in shared repository
2007-03-10git.el: Retrieve commit log information from .dotest directory.Libravatar Alexandre Julliard1-24/+53
If a git-am or git-rebase is in progress, fill the commit log buffer from the commit information found in the various files in the .dotest directory. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-10git.el: Avoid appending a signoff line that is already present.Libravatar Alexandre Julliard1-6/+18
Also avoid inserting an extra newline if other signoff lines are present. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-10setup_git_directory_gently: fix off-by-one errorLibravatar Matthias Lederhofer1-1/+1
don't tell getcwd that the buffer has one spare byte for an extra / Signed-off-by: Matthias Lederhofer <matled@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-10Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maintLibravatar Junio C Hamano3-20/+29
* 'maint' of git://linux-nfs.org/~bfields/git: user-manual: install user manual stylesheet with other web documents user-manual: fix rendering of history diagrams user-manual: fix missing colon in git-show example user-manual: fix inconsistent use of pull and merge user-manual: fix inconsistent example glossary: fix overoptimistic automatic linking of defined terms
2007-03-10user-manual: install user manual stylesheet with other web documentsLibravatar J. Bruce Fields1-1/+1
Install the stylesheet needed for the user manual. This should solve the problem of, e.g., http://www.kernel.org/pub/software/scm/git/docs/user-manual.html lacking a lot of formatting. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
2007-03-10user-manual: fix rendering of history diagramsLibravatar J. Bruce Fields1-4/+21
Asciidoc appears to interpret a backslash at the end of a line as escaping the end-of-line character, which screws up the display of history diagrams like o--o--o \ o--... The obvious fix (replacing "\" by "\\") doesn't work. The only workaround I've found is to include all such diagrams in a LiteralBlock. Asciidoc claims that should be equivalent to a literal paragraph, so I don't understand why the difference--perhaps it's an asciidoc bug. Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
2007-03-10user-manual: fix missing colon in git-show exampleLibravatar J. Bruce Fields1-1/+1
There should be a colon in this git-show example. Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
2007-03-10user-manual: fix inconsistent use of pull and mergeLibravatar J. Bruce Fields1-11/+3
I used "git pull ." instead of "git merge" here without any explanation. Stick instead to "git merge" for now (the equivalent pull syntax is still covered in a later chapter). Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>