- 26 3月, 2006 5 次提交
-
-
由 Junio C Hamano 提交于
This stops using temporary files when we are using the built-in diff (including the complete rewrite). Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
This fixes up a couple of minor issues with the real built-in diff to be more usable: - Omit ---/+++ header unless we emit diff output; - Detect and punt binary diff like GNU does; - Honor GIT_DIFF_OPTS minimally (only -u<number> and --unified=<number> are currently supported); - Omit line count of 1 from "@@ -l,k +m,n @@" hunk header (i.e. when k == 1 or n == 1) - Adjust testsuite for the lack of -p support. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
This uses a simplified libxdiff setup to generate unified diffs _without_ doing fork/execve of GNU "diff". This has several huge advantages, for example: Before: [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null real 0m24.818s user 0m13.332s sys 0m8.664s After: [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null real 0m4.563s user 0m2.944s sys 0m1.580s and the fact that this should be a lot more portable (ie we can ignore all the issues with doing fork/execve under Windows). Perhaps even more importantly, this allows us to do diffs without actually ever writing out the git file contents to a temporary file (and without any of the shell quoting issues on filenames etc etc). NOTE! THIS PATCH DOES NOT DO THAT OPTIMIZATION YET! I was lazy, and the current "diff-core" code actually will always write the temp-files, because it used to be something that you simply had to do. So this current one actually writes a temp-file like before, and then reads it into memory again just to do the diff. Stupid. But if this basic infrastructure is accepted, we can start switching over diff-core to not write temp-files, which should speed things up even further, especially when doing big tree-to-tree diffs. Now, in the interest of full disclosure, I should also point out a few downsides: - the libxdiff algorithm is different, and I bet GNU diff has gotten a lot more testing. And the thing is, generating a diff is not an exact science - you can get two different diffs (and you will), and they can both be perfectly valid. So it's not possible to "validate" the libxdiff output by just comparing it against GNU diff. - GNU diff does some nice eye-candy, like trying to figure out what the last function was, and adding that information to the "@@ .." line. libxdiff doesn't do that. - The libxdiff thing has some known deficiencies. In particular, it gets the "\No newline at end of file" case wrong. So this is currently for the experimental branch only. I hope Davide will help fix it. That said, I think the huge performance advantage, and the fact that it integrates better is definitely worth it. But it should go into a development branch at least due to the missing newline issue. Technical note: this is based on libxdiff-0.17, but I did some surgery to get rid of the extraneous fat - stuff that git doesn't need, and seriously cutting down on mmfile_t, which had much more capabilities than the diff algorithm either needed or used. In this version, "mmfile_t" is just a trivial <pointer,length> tuple. That said, I tried to keep the differences to simple removals, so that you can do a diff between this and the libxdiff origin, and you'll basically see just things getting deleted. Even the mmfile_t simplifications are left in a state where the diffs should be readable. Apologies to Davide, whom I'd love to get feedback on this all from (I wrote my own "fill_mmfile()" for the new simpler mmfile_t format: the old complex format had a helper function for that, but I did my surgery with the goal in mind that eventually we _should_ just do mmfile_t mf; buf = read_sha1_file(sha1, type, &size); mf->ptr = buf; mf->size = size; .. use "mf" directly .. which was really a nightmare with the old "helpful" mmfile_t, and really is that easy with the new cut-down interfaces). [ Btw, as any hawk-eye can see from the diff, this was actually generated with itself, so it is "self-hosting". That's about all the testing it has gotten, along with the above kernel diff, which eye-balls correctly, but shows the newline issue when you double-check it with "git-apply" ] Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Linus Torvalds 提交于
This was triggered by me testing the "@@" numbering shorthand by GNU patch, which not only showed that git-apply thought it meant the number was duplicated (when it means that the second number is 1), but my tests showed than when git-apply mis-understood the number, it would then not raise an alarm about it if the patch ended early. Now, this doesn't actually _matter_, since with a three-line context, the only case that "x,1" will be shorthanded to "x" is when x itself is 1 (in which case git-apply got it right), but the fact that git-apply would also silently accept truncated patches was a missed opportunity for additional sanity-checking. So make git-apply refuse to look at a patch fragment that ends early. Signed-off-by: NLinus Torvalds <torvalds@osdl.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 25 3月, 2006 3 次提交
-
-
由 Jon Loeliger 提交于
Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jon Loeliger 提交于
Clarify update and post-update hooks. Made a few references to the hooks documentation. Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
... found by Matthias Kestenholz. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 24 3月, 2006 4 次提交
-
-
由 Junio C Hamano 提交于
* jc/cvsimport: cvsimport: fix reading from rev-parse cvsimport: honor -i and non -i upon subsequent imports
-
由 Junio C Hamano 提交于
* jc/pull: git-pull: reword "impossible to fast-forward" message. git-pull: further safety while on tracking branch.
-
由 Junio C Hamano 提交于
* jc/fetch: fetch: exit non-zero when fast-forward check fails.
-
由 Junio C Hamano 提交于
git-send-email did not check if the sender is the same as the patch author. Follow the "From: at the beginning" convention to propagate the patch author correctly. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 23 3月, 2006 1 次提交
-
-
由 Francis Daly 提交于
Some documentation "options" were followed by independent preformatted paragraphs. Now they are associated plain text paragraphs. The difference is clear in the generated html. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 22 3月, 2006 5 次提交
-
-
由 Junio C Hamano 提交于
Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
Running 'git pull' while on the tracking branch has a built-in safety valve to fast-forward the index and working tree to match the branch head, but it errs on the safe side too cautiously. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
If you write code after declarations in a block, gcc scolds you with "warning: ISO C90 forbids mixed declarations and code". Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Luck, Tony 提交于
Using "size_t" values for printf field width/precision upsets gcc, it wants to see an "int". Signed-off-by: NTony Luck <tony.luck@intel.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 21 3月, 2006 6 次提交
-
-
由 Eric Wong 提交于
Because committing back to an SVN repository from different machines can result in different lineages, two different repositories running git-svn can result in different commit SHA1s (but of the same tree). Sometimes trees that are tracked independently are merged together (usually via children), resulting in non-unique git-svn-id: lines in rev-list. Signed-off-by: NEric Wong <normalperson@yhbt.net> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Declare remote_dir_exists[] as signed char to be sure that values of -1 are valid. Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Nick Hengeveld 提交于
Processes new command-line arguments -d and -D to remove a remote branch if the following conditions are met: - one branch name is present on the command line - the specified branch name matches exactly one remote branch name - the remote HEAD is a symref - the specified branch is not the remote HEAD - the remote HEAD resolves to an object that exists locally (-d only) - the specified branch resolves to an object that exists locally (-d only) - the specified branch is an ancestor of the remote HEAD (-d only) Signed-off-by: NNick Hengeveld <nickh@reactrix.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Yasushi SHOJI 提交于
verbose option in git-commit.sh lead us to run git-diff-index, which needs a commit-ish we are making diff against. When we are commiting the fist set, we obviously don't have any commit-ish in the repo. So we just skip the git-diff-index run. It might be possible to produce diff against empty but do we need that? Signed-off-by: NYasushi SHOJI <yashi@atmark-techno.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Francis Daly 提交于
This patch makes the html docs right, makes the asciidoc docs a bit odd but consistent with what is there already, and makes the manpages look OK using docbook-xsl 1.68, but miss a paragraph separator when using 1.69. For the manpages, current is like -A <author_file> Read a file with lines on the form username = User's Full Name <email@addr.es> and use "User's Full Name <email@addr.es>" as the GIT With this patch, docbook-xsl v1.68 looks like -A <author_file> Read a file with lines on the form username = User's Full Name <email@addr.es> and use "User's Full Name <email@addr.es>" as the GIT author and while docbook-xsl v1.69 becomes -A <author_file> Read a file with lines on the form username = User's Full Name <email@addr.es> and use "User's Full Name <email@addr.es>" as the GIT author and The extra indentation is to keep the v1.69 manpage looking sane.
-
由 Junio C Hamano 提交于
When a repository otherwise properly prepared is served by a dumb HTTP server that sends "No such page" output with 200 status for human consumption to a request for a page that does not exist, the users will get an alarming "File X corrupt" error message. Hint that they might be dealing with such a server at the end and suggest running fsck-objects to check if the result is OK (the pack-fallback code does the right thing in this case so unless a loose object file was actually corrupt the result should check OK). Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 20 3月, 2006 6 次提交
-
-
由 Junio C Hamano 提交于
Instead of giving multiple commands concatenated with semicolon to sed, write them on separate lines. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Shawn Pearce 提交于
generate-cmdlist.sh is giving errors messages from sed on Mac OS 10.4 due to a missing semicolon. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
Currently we unpack the delta data from the pack and then unpack the base object to apply that delta data to it. When getting an object that is deeply deltified, we can reduce memory footprint by unpacking the base object first and then unpacking the delta data, because we will need to keep at most one delta data in memory that way. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Alexandre Julliard 提交于
git-diff-file-merge-head generates a diff against the first merge head, or with a prefix argument against the nth head. Bound to `d h' by default. Signed-off-by: NAlexandre Julliard <julliard@winehq.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Alexandre Julliard 提交于
If user name or email are not set explicitly, get them from the user.name and user.email configuration values before falling back to the Emacs defaults. Signed-off-by: NAlexandre Julliard <julliard@winehq.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Alexandre Julliard 提交于
Make sure that functions that call a git process and return a string always return nil when the subprocess failed. Signed-off-by: NAlexandre Julliard <julliard@winehq.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 19 3月, 2006 2 次提交
-
-
由 Fredrik Kuivinen 提交于
Signed-off-by: NFredrik Kuivinen <freku045@student.liu.se> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Alexandre Julliard 提交于
Without this patch, the last line of an exclude file is silently ignored if it doesn't end with a newline. Signed-off-by: NAlexandre Julliard <julliard@winehq.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
- 18 3月, 2006 8 次提交
-
-
由 Junio C Hamano 提交于
... as discussed on the list for consistency. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
The updated code reads the tip of the current branch before and after the import runs, but forgot to chomp what we read from the command. The read-tree command did not them with the trailing LF. Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Junio C Hamano 提交于
* jc/empty: revision traversal: --remove-empty fix (take #2). revision traversal: --remove-empty fix. Conflicts: revision.c (adjust for the updates by Fredrik)
-
由 Nicolas Pitre 提交于
This patch makes for 3.4% smaller pack with the git repository, and a bit more than 3% smaller pack with the kernel repository. And so with _no_ measurable CPU difference. Signed-off-by: NNicolas Pitre <nico@cam.org> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jon Loeliger 提交于
Fix a few typo/grammar problems. Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jon Loeliger 提交于
Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jon Loeliger 提交于
Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-
由 Jon Loeliger 提交于
Signed-off-by: NJon Loeliger <jdl@jdl.com> Signed-off-by: NJunio C Hamano <junkio@cox.net>
-